in src/get-licences.js [77:154]
export default function (modules, params, callback) {
try {
nlf.find(params, function processModules(err, licenses) {
if (err) {
throw err
}
const throwOrWriteError = (({
surviveLicenseErrors = false,
teamcityMessageStatus = 'ERROR',
ignoreTeamcity = false
}) => text => {
if (!surviveLicenseErrors) {
if (!ignoreTeamcity && process.env.TEAMCITY_VERSION) {
tsm.buildProblem({
description: text
})
} else {
throw new Error(text)
}
} else if (!ignoreTeamcity && process.env.TEAMCITY_VERSION) {
tsm.message({
status: teamcityMessageStatus,
text
})
} else {
console.error(text)
}
return text
})(params)
const result = modules.
sort().
filter(module => module.indexOf('jetbrains-') !== 0 && module.indexOf('ring-ui') !== 0).
map(name => licenses.find(module => module.name === name)).
filter(module => module).
map(module => {
const sources = module.licenseSources
const licensesCount =
sources.package.sources.length +
sources.license.sources.length +
sources.readme.sources.length
let license
if (!licensesCount) {
license = {
name: throwOrWriteError(`No license found for package ${module.name}`),
url: 'N/A'
}
} else {
license =
chooseLicense(sources.package.sources) ||
chooseLicense(sources.license.sources) ||
chooseLicense(sources.readme.sources)
if (!license) {
license = {
name: throwOrWriteError(`No *permissive* license found for package ${module.name}`),
url: 'N/A'
}
}
}
return {
license,
name: module.name,
version: module.version,
url: npmUrlPrefix + module.name
}
})
callback(null, result)
})
} catch (e) {
callback(e)
}
}