|
|
- validate-npm-package-license
- ============================
-
- Give me a string and I'll tell you if it's a valid npm package license string.
-
- ```javascript
- var valid = require('validate-npm-package-license');
- ```
-
- SPDX license identifiers are valid license strings:
-
- ```javascript
-
- var assert = require('assert');
- var validSPDXExpression = {
- validForNewPackages: true,
- validForOldPackages: true,
- spdx: true
- };
-
- assert.deepEqual(valid('MIT'), validSPDXExpression);
- assert.deepEqual(valid('BSD-2-Clause'), validSPDXExpression);
- assert.deepEqual(valid('Apache-2.0'), validSPDXExpression);
- assert.deepEqual(valid('ISC'), validSPDXExpression);
- ```
- The function will return a warning and suggestion for nearly-correct license identifiers:
-
- ```javascript
- assert.deepEqual(
- valid('Apache 2.0'),
- {
- validForOldPackages: false,
- validForNewPackages: false,
- warnings: [
- 'license should be ' +
- 'a valid SPDX license expression (without "LicenseRef"), ' +
- '"UNLICENSED", or ' +
- '"SEE LICENSE IN <filename>"',
- 'license is similar to the valid expression "Apache-2.0"'
- ]
- }
- );
- ```
-
- SPDX expressions are valid, too ...
-
- ```javascript
- // Simple SPDX license expression for dual licensing
- assert.deepEqual(
- valid('(GPL-3.0-only OR BSD-2-Clause)'),
- validSPDXExpression
- );
- ```
-
- ... except if they contain `LicenseRef`:
-
- ```javascript
- var warningAboutLicenseRef = {
- validForOldPackages: false,
- validForNewPackages: false,
- spdx: true,
- warnings: [
- 'license should be ' +
- 'a valid SPDX license expression (without "LicenseRef"), ' +
- '"UNLICENSED", or ' +
- '"SEE LICENSE IN <filename>"',
- ]
- };
-
- assert.deepEqual(
- valid('LicenseRef-Made-Up'),
- warningAboutLicenseRef
- );
-
- assert.deepEqual(
- valid('(MIT OR LicenseRef-Made-Up)'),
- warningAboutLicenseRef
- );
- ```
-
- If you can't describe your licensing terms with standardized SPDX identifiers, put the terms in a file in the package and point users there:
-
- ```javascript
- assert.deepEqual(
- valid('SEE LICENSE IN LICENSE.txt'),
- {
- validForNewPackages: true,
- validForOldPackages: true,
- inFile: 'LICENSE.txt'
- }
- );
-
- assert.deepEqual(
- valid('SEE LICENSE IN license.md'),
- {
- validForNewPackages: true,
- validForOldPackages: true,
- inFile: 'license.md'
- }
- );
- ```
-
- If there aren't any licensing terms, use `UNLICENSED`:
-
- ```javascript
- var unlicensed = {
- validForNewPackages: true,
- validForOldPackages: true,
- unlicensed: true
- };
- assert.deepEqual(valid('UNLICENSED'), unlicensed);
- assert.deepEqual(valid('UNLICENCED'), unlicensed);
- ```
|