Skip to content

Commit 0446930

Browse files
committed
Annotate README examples
1 parent f152d13 commit 0446930

File tree

1 file changed

+58
-40
lines changed

1 file changed

+58
-40
lines changed

README.md

Lines changed: 58 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -5,56 +5,27 @@ Give me a string and I'll tell you if it's a valid npm package license string.
55

66
```javascript
77
var valid = require('validate-npm-package-license');
8-
var assert = require('assert');
8+
```
9+
10+
SPDX license identifiers are valid license strings:
911

12+
```javascript
13+
14+
var assert = require('assert');
1015
var validSPDXExpression = {
1116
validForNewPackages: true,
1217
validForOldPackages: true,
1318
spdx: true
1419
};
1520

16-
// SPDX license identifier for common open-source licenses
1721
assert.deepEqual(valid('MIT'), validSPDXExpression);
1822
assert.deepEqual(valid('BSD-2-Clause'), validSPDXExpression);
1923
assert.deepEqual(valid('Apache-2.0'), validSPDXExpression);
2024
assert.deepEqual(valid('ISC'), validSPDXExpression);
25+
```
26+
The function will return a warning and suggestion for nearly-correct license identifiers:
2127

22-
// Simple SPDX license expression for dual licensing
23-
assert.deepEqual(
24-
valid('(GPL-3.0 OR BSD-2-Clause)'),
25-
validSPDXExpression
26-
);
27-
28-
// Refer to a non-standard license found in the package
29-
30-
assert.deepEqual(
31-
valid('SEE LICENSE IN LICENSE.txt'),
32-
{
33-
validForNewPackages: true,
34-
validForOldPackages: true,
35-
inFile: 'LICENSE.txt'
36-
}
37-
);
38-
39-
assert.deepEqual(
40-
valid('SEE LICENSE IN license.md'),
41-
{
42-
validForNewPackages: true,
43-
validForOldPackages: true,
44-
inFile: 'license.md'
45-
}
46-
);
47-
48-
// No license
49-
var unlicensed = {
50-
validForNewPackages: true,
51-
validForOldPackages: true,
52-
unlicensed: true
53-
};
54-
assert.deepEqual(valid('UNLICENSED'), unlicensed);
55-
assert.deepEqual(valid('UNLICENCED'), unlicensed);
56-
57-
// Almost a valid SPDX license identifier
28+
```javascript
5829
assert.deepEqual(
5930
valid('Apache 2.0'),
6031
{
@@ -69,7 +40,21 @@ assert.deepEqual(
6940
]
7041
}
7142
);
43+
```
44+
45+
SPDX expressions are valid, too ...
46+
47+
```javascript
48+
// Simple SPDX license expression for dual licensing
49+
assert.deepEqual(
50+
valid('(GPL-3.0 OR BSD-2-Clause)'),
51+
validSPDXExpression
52+
);
53+
```
54+
55+
... except if they contain `LicenseRef`:
7256

57+
```javascript
7358
var warningAboutLicenseRef = {
7459
validForOldPackages: false,
7560
validForNewPackages: false,
@@ -82,14 +67,47 @@ var warningAboutLicenseRef = {
8267
]
8368
};
8469

85-
// LicenseRef-* identifiers are valid SPDX expressions,
86-
// but not valid in package.json
8770
assert.deepEqual(
8871
valid('LicenseRef-Made-Up'),
8972
warningAboutLicenseRef
9073
);
74+
9175
assert.deepEqual(
9276
valid('(MIT OR LicenseRef-Made-Up)'),
9377
warningAboutLicenseRef
9478
);
9579
```
80+
81+
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:
82+
83+
```javascript
84+
assert.deepEqual(
85+
valid('SEE LICENSE IN LICENSE.txt'),
86+
{
87+
validForNewPackages: true,
88+
validForOldPackages: true,
89+
inFile: 'LICENSE.txt'
90+
}
91+
);
92+
93+
assert.deepEqual(
94+
valid('SEE LICENSE IN license.md'),
95+
{
96+
validForNewPackages: true,
97+
validForOldPackages: true,
98+
inFile: 'license.md'
99+
}
100+
);
101+
```
102+
103+
If there aren't any licensing terms, use `UNLICENSED`:
104+
105+
```javascript
106+
var unlicensed = {
107+
validForNewPackages: true,
108+
validForOldPackages: true,
109+
unlicensed: true
110+
};
111+
assert.deepEqual(valid('UNLICENSED'), unlicensed);
112+
assert.deepEqual(valid('UNLICENCED'), unlicensed);
113+
```

0 commit comments

Comments
 (0)