@procore/license-check
v2.0.1
Published
Validates that packages use correctly-licensed npm packages.
Downloads
64
Maintainers
Readme
@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 itspackage.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
: runsprettier
on the project.test
: runs the unit test suite, reporting coverage.test:dev
: run the unit test suite in watch mode.