@onebeyond/spdx-license-satisfies
v1.0.1
Published
test whether SPDX expressions satisfy licensing criteria
Downloads
108
Readme
spdx-license-satisfies
This project is a fork from jslicense/spdx-satisfies.js. Please, note that the interface is slightly different.
satisfies(first, second)
Checks if first
satisfies second
. Both arguments must be a string with a simple license or a SPDX expressions. Disjunctive OR
operator, conjunctive AND
operator and exception WITH
operator are allowed.
const { satisfies } = require('spdx-license-satisfies');
satisfies('MIT AND (Apache-2.0 OR GPL-1.0)', 'MIT AND Apache-2.0') // true
satisfies('MIT AND Apache-2.0', 'Apache-2.0') // false
satisfiesAny(first, second)
Checks if first
satisfies any license in second
.
first
must be a string with a license or a SPDX expression. DisjunctiveOR
operator, conjunctiveAND
operator and exceptionWITH
operator are allowed.second
must be an array of licenses. DisjunctiveOR
operator and conjunctiveAND
operator are not allowed.
const { satisfiesAny } = require('spdx-license-satisfies');
satisfiesAny('(MIT AND GPL-1.0) OR Apache-2.0', ['Apache-2.0']) // true
satisfiesAny('MIT OR GPL-1.0', ['Apache-2.0']) // false
satisfiesAll(first, second)
Checks if first
satisfies all the licenses in second
.
first
must be a string with a license or a SPDX expression. DisjunctiveOR
operator, conjunctiveAND
operator and exceptionWITH
operator are allowed.second
must be an array of licenses. DisjunctiveOR
operator and conjunctiveAND
operator are not allowed.
const { satisfiesAll } = require('spdx-license-satisfies');
satisfiesAll('MIT AND GPL-1.0 OR Apache-2.0', ['Apache-2.0']) // true
satisfiesAll('MIT OR GPL-1.0', ['MIT','GPL-1.0']) // false
Examples
See a list with more examples.
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!