2.0.1 • Published 1 year ago

@procore/license-check v2.0.1

Weekly downloads
-
License
SEE LICENSE IN LI...
Repository
github
Last release
1 year ago

@procore/license-check

Validates that the licenses of a project do not violate Procore's software license requirements. Works for both monorepos as well as single-module projects.

Quick Start

This package can either be installed in a project or run directly using npx/pnpx. Additionally, the package provides an API that can be invoked in code.

yarn add -D @procore/license-check # or npm, pnpm

Then run the command:

yarn license-check check
npx @procore/license-check check

Install in project

yarn add -D @procore/license-check # or npm, pnpm

Then use!

import { checkLicenses } from '@procore/license-check'

const startDir = process.cwd()
const forbiddenLicenses = ['GPL-3.0-only']

await checkLicenses(startDir, forbiddenLicenses)

CLI Commands

Usage:
  $ license-check

Commands:
  check [startDir]  license check


For more info, run any command with the `--help` flag:
  $ license-check check --help
  $ license-check --help

Options:
  -h, --help     Display this message
  -v, --version  Display version number

API Methods

checkLicenses(startDir: string, forbiddenLicenses?: Array<string>): Promise<Array<{ name: string; invalid: Array<string>}>>

Returns a list of each workspace in project, along with which licenses are invalid

Parameters:

  • startDir: string: the root directory of the project to evaluate.
  • forbiddenLicenses: Array<string> (defaults to Procore's forbidden licenses): the list of licenses that should be considered invalid.

Returns:

An array of results objects containing the following properties:

  • name: string: the name of the project, as specified in its package.json file.
  • invalid: Array<string>: the package names and versions that violated the license check.
import { checkLicenses } from '@procore/license-check'

const startDir = process.cwd()
const results = await checkLicenses(startDir)

checkLicensesCLI(startDir: string, forbiddenLicenses?: Array<string>): Promise<void>

Executes the license, and formats the output into an easy-to-read format.

Parameters:

  • startDir: string: the root directory of the project to evaluate.
  • forbiddenLicenses: Array<string> (defaults to Procore's forbidden licenses): the list of licenses that should be considered invalid.

NOTE:

  • If there are invalid licenses, the output will be written to stderr, and program will exit with an exit code of -1.
  • If all licenses are valid, and short message will be output to stdout.
import { checkLicensesCLI } from '@procore/license-check'

const startDir = process.cwd()
await checkLicensesCLI(startDir)

Development

This project uses pnpm, and supports the following commands:

  • build: builds and bundles the project.
  • format: runs prettier on the project.
  • test: runs the unit test suite, reporting coverage.
  • test:dev: run the unit test suite in watch mode.