mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-06 12:01:40 +08:00
DISABLE_THIRD_PARTY_CHECK=Package needs updating with node_modules Change-Id: I889f1b86c586e37307a3e13ad762aa56d1ece150 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1946468 Commit-Queue: Paul Lewis <aerotwist@chromium.org> Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
var arrayFindIndex = require('array-find-index')
|
|
var parse = require('spdx-expression-parse')
|
|
|
|
var ranges = require('spdx-ranges')
|
|
|
|
var notALicenseIdentifier = ' is not a simple license identifier'
|
|
|
|
var rangeComparison = function (comparison) {
|
|
return function (first, second) {
|
|
var firstAST = parse(first)
|
|
if (!firstAST.hasOwnProperty('license')) {
|
|
throw new Error('"' + first + '"' + notALicenseIdentifier)
|
|
}
|
|
var secondAST = parse(second)
|
|
if (!secondAST.hasOwnProperty('license')) {
|
|
throw new Error('"' + second + '"' + notALicenseIdentifier)
|
|
}
|
|
return ranges.some(function (range) {
|
|
var firstLicense = firstAST.license
|
|
var indexOfFirst = arrayFindIndex(range, function (element) {
|
|
return (
|
|
element === firstLicense ||
|
|
(
|
|
Array.isArray(element) &&
|
|
element.indexOf(firstLicense) !== -1
|
|
)
|
|
)
|
|
})
|
|
if (indexOfFirst < 0) {
|
|
return false
|
|
}
|
|
var secondLicense = secondAST.license
|
|
var indexOfSecond = arrayFindIndex(range, function (element) {
|
|
return (
|
|
element === secondLicense ||
|
|
(
|
|
Array.isArray(element) &&
|
|
element.indexOf(secondLicense) !== -1
|
|
)
|
|
)
|
|
})
|
|
if (indexOfSecond < 0) {
|
|
return false
|
|
}
|
|
return comparison(indexOfFirst, indexOfSecond)
|
|
})
|
|
}
|
|
}
|
|
|
|
exports.gt = rangeComparison(function (first, second) {
|
|
return first > second
|
|
})
|
|
|
|
exports.lt = rangeComparison(function (first, second) {
|
|
return first < second
|
|
})
|
|
|
|
exports.eq = rangeComparison(function (first, second) {
|
|
return first === second
|
|
})
|