Neutered Paranoid Meerkat
Join us to discuss the challenges, solutions and best practices for in-house JavaScript code sharing. Tuesday, 12/17 at 10am PT/1pm ET.Sign up here »

@peril/utils

1.0.3 • Public • Published

@peril/utils

Maybe this will turn into a mono-repo with a lot of smaller packages, but for now - this is fine.

Generating a Peril Settings Repo

export const fileMapForPerilSettingsRepo = async (api: octokit, options: NewRepoOptions)

Which returns a fileMap for an example Peril settings repo. There are a few options.

Usage:

const map = await fileMapForPerilSettingsRepo(api, {
  isPublic: true,
  setupTests: true,
  useTypeScript: true,
  repo: {
    name: "Fake Repo",
    owner: {
      login: "User Name",
    },
  },
})

Linting

Mainly one function:

export function lint(
  settingsReference: string,
  api: octokit,
  currentSettings?: FileRelatedPartOfJSON
): Promise<ErrorReport>

You pass in the dangerfile reference URL for the settings repo, an already set-up OctoKit api object (so you handle auth basically) and you can optionally pass in the currentSettings - if you don't this lib will grab the version in the settingsReference.

Usage:

import { lint } from "peril-settings-linter"
 
const runLinter = async () => {
  const results = await lint("artsy/peril-settings@settings.json", api)
  if (results.networkErrors.length) {
    console.error(`Could not find files at: ${results.networkErrors.join(",")}`)
  }
 
  if (results.schemaErrors.length) {
    console.error(`Settings file did not pass schema validation: ${results.schemaHumanReadableErrors}`)
    console.error(`Settings file did not pass schema validation: ${results.schemaErrors}`)
  }
}

How do I work on this?

git clone https://github.com/orta/peril-settings-linter.git
cd peril-settings-linter
yarn install
 
# Open VS Code with `code .` 
code .
 
# Run tests 
yarn jest
yarn type-check

How do I deploy this?

yarn release

Keywords

none

Install

npm i @peril/utils

DownloadsWeekly Downloads

1

Version

1.0.3

License

MIT

Unpacked Size

49.2 kB

Total Files

22

Last publish

Collaborators

  • avatar