2.0.1 • Published 3 years ago
@procore/license-check v2.0.1
@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, pnpmThen run the command:
yarn license-check checknpx @procore/license-check checkInstall in project
yarn add -D @procore/license-check # or npm, pnpmThen 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 numberAPI 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 itspackage.jsonfile.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: runsprettieron the project.test: runs the unit test suite, reporting coverage.test:dev: run the unit test suite in watch mode.