Comparing version 0.1.4 to 0.1.5
@@ -35,2 +35,11 @@ "use strict"; | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL19fdGVzdHNfXy9wZXJ0YWluLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsNENBQTBCO0FBQzFCLDZFQUFxRDtBQUVyRCxNQUFNLFdBQVcsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0FBRXJFLElBQUksQ0FBQyxrRkFBa0YsRUFBRSxHQUFHLEVBQUU7SUFDNUYsTUFBTSxXQUFXLEdBQUcsV0FBTyxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdELE1BQU0sV0FBVyxHQUFHLFdBQVc7U0FDNUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxTQUFTLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNkLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUN4QyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxvREFBb0QsRUFBRSxHQUFHLEVBQUU7SUFDOUQsV0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsMkJBQWlCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdELFdBQU8sQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUN6QyxXQUFPLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDekMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNyQixDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxpRUFBaUUsRUFBRSxHQUFHLEVBQUU7SUFDM0UsTUFBTSxPQUFPLEdBQUcsV0FBTyxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQ3pELENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFDbEQsRUFBRSxDQUNILENBQUM7SUFDRixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDcEMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsaUVBQWlFLEVBQUUsR0FBRyxFQUFFO0lBQzNFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFPLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDdkUsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsd0RBQXdELEVBQUUsR0FBRyxFQUFFO0lBQ2xFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFPLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ2pFLENBQUMsQ0FBQyxDQUFDIn0= | ||
test('accepts custom DependencyFinder', () => { | ||
__1.default.clearCache(); | ||
const allTalk = __1.default(projectPath, 'germane.identify', () => [ | ||
'cactus-attitude' | ||
]) | ||
.map(dep => require(dep.path)()) | ||
.join(''); | ||
expect(allTalk).toBe('a bad attitude'); | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL19fdGVzdHNfXy9wZXJ0YWluLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsNENBQTBCO0FBQzFCLDZFQUFxRDtBQUVyRCxNQUFNLFdBQVcsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0FBRXJFLElBQUksQ0FBQyxrRkFBa0YsRUFBRSxHQUFHLEVBQUU7SUFDNUYsTUFBTSxXQUFXLEdBQUcsV0FBTyxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdELE1BQU0sV0FBVyxHQUFHLFdBQVc7U0FDNUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxTQUFTLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNkLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUN4QyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxvREFBb0QsRUFBRSxHQUFHLEVBQUU7SUFDOUQsV0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsMkJBQWlCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdELFdBQU8sQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUN6QyxXQUFPLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDekMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNyQixDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxpRUFBaUUsRUFBRSxHQUFHLEVBQUU7SUFDM0UsTUFBTSxPQUFPLEdBQUcsV0FBTyxDQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQ3pELENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFDbEQsRUFBRSxDQUNILENBQUM7SUFDRixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDcEMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsaUVBQWlFLEVBQUUsR0FBRyxFQUFFO0lBQzNFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFPLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDdkUsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsd0RBQXdELEVBQUUsR0FBRyxFQUFFO0lBQ2xFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFPLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ2pFLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGlDQUFpQyxFQUFFLEdBQUcsRUFBRTtJQUMzQyxXQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckIsTUFBTSxPQUFPLEdBQUcsV0FBTyxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUM3RCxpQkFBaUI7S0FDbEIsQ0FBQztTQUNDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUMvQixJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDWixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDekMsQ0FBQyxDQUFDLENBQUMifQ== |
@@ -0,1 +1,3 @@ | ||
import PackageJson from './PackageJson'; | ||
export declare type DependencyFinder = (found: string[], packageJson: PackageJson, rootDir: string, subject: string) => string[]; | ||
/** | ||
@@ -29,3 +31,3 @@ * A Node package which declares in its `package.json` file that it contains | ||
*/ | ||
declare function pertain(rootDir: string, subject: string): Pertaining[]; | ||
declare function pertain(rootDir: string, subject: string, getDependencies?: DependencyFinder): Pertaining[]; | ||
declare namespace pertain { | ||
@@ -32,0 +34,0 @@ var clearCache: () => void; |
@@ -11,2 +11,11 @@ "use strict"; | ||
const debug = debug_1.default('pertain:main'); | ||
const depsAndDevDeps = (pkg) => { | ||
// Merging the two dependency sets that we look at will dedupe them. | ||
// We don't care whether it comes from devDependencies or dependencies. | ||
// Both are relevant, because many applications with a build step compile | ||
// code from devDependencies. | ||
const allDependencyNames = Object.keys(Object.assign(Object.assign({}, pkg.dependencies), pkg.devDependencies)); | ||
allDependencyNames.push('./'); // rootDir too | ||
return allDependencyNames; | ||
}; | ||
/** | ||
@@ -23,3 +32,3 @@ * Caches the ExplicitDependencySet calculated for a given project root. | ||
*/ | ||
function pertain(rootDir, subject) { | ||
function pertain(rootDir, subject, getDependencies = found => found) { | ||
let depSet = dependencySetCache.get(rootDir); | ||
@@ -31,9 +40,4 @@ if (!depSet) { | ||
const resolve = resolverFactory_1.default(rootDir); | ||
const { dependencies, devDependencies } = new PackageJson_1.default(rootDir); | ||
// Merging the two dependency sets that we look at will dedupe them. | ||
// We don't care whether it comes from devDependencies or dependencies. | ||
// Both are relevant, because many applications with a build step compile | ||
// code from devDependencies. | ||
const allDependencyNames = Object.keys(Object.assign(Object.assign({}, dependencies), devDependencies)); | ||
allDependencyNames.push('./'); // rootDir too | ||
const packageJson = new PackageJson_1.default(rootDir); | ||
const allDependencyNames = getDependencies(depsAndDevDeps(packageJson), packageJson, rootDir, subject); | ||
debug('%s allDependencyNames %s', rootDir, allDependencyNames); | ||
@@ -56,2 +60,2 @@ depSet = new ExplicitDependencySet_1.default(resolve, allDependencyNames); | ||
exports.default = pertain; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wZXJ0YWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQThCO0FBQzlCLG9GQUE0RDtBQUM1RCxnRUFBd0M7QUFDeEMsd0VBQXlDO0FBRXpDLE1BQU0sS0FBSyxHQUFHLGVBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQTBCeEM7Ozs7R0FJRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7QUFFcEU7Ozs7R0FJRztBQUNILFNBQVMsT0FBTyxDQUFDLE9BQWUsRUFBRSxPQUFlO0lBQy9DLElBQUksTUFBTSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1gsS0FBSyxDQUFDLHlCQUF5QixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLDBFQUEwRTtRQUMxRSxhQUFhO1FBQ2IsTUFBTSxPQUFPLEdBQUcseUJBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxNQUFNLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUkscUJBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuRSxvRUFBb0U7UUFDcEUsdUVBQXVFO1FBQ3ZFLHlFQUF5RTtRQUN6RSw2QkFBNkI7UUFDN0IsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsSUFBSSxpQ0FDakMsWUFBWSxHQUNaLGVBQWUsRUFDbEIsQ0FBQztRQUNILGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWM7UUFDN0MsS0FBSyxDQUFDLDBCQUEwQixFQUFFLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sR0FBRyxJQUFJLCtCQUFxQixDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hFLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDekM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDZCxJQUFJLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQVc7UUFDckMsT0FBTztLQUNSLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxPQUFPLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO0FBRXRELGtCQUFlLE9BQU8sQ0FBQyJ9 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wZXJ0YWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQThCO0FBQzlCLG9GQUE0RDtBQUM1RCxnRUFBd0M7QUFDeEMsd0VBQXlDO0FBRXpDLE1BQU0sS0FBSyxHQUFHLGVBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQVN4QyxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQWdCLEVBQVksRUFBRTtJQUNwRCxvRUFBb0U7SUFDcEUsdUVBQXVFO0lBQ3ZFLHlFQUF5RTtJQUN6RSw2QkFBNkI7SUFDN0IsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsSUFBSSxpQ0FDakMsR0FBRyxDQUFDLFlBQVksR0FDaEIsR0FBRyxDQUFDLGVBQWUsRUFDdEIsQ0FBQztJQUNILGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWM7SUFDN0MsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDLENBQUM7QUEwQkY7Ozs7R0FJRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7QUFFcEU7Ozs7R0FJRztBQUNILFNBQVMsT0FBTyxDQUNkLE9BQWUsRUFDZixPQUFlLEVBQ2Ysa0JBQW9DLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSztJQUVsRCxJQUFJLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxQywwRUFBMEU7UUFDMUUsYUFBYTtRQUNiLE1BQU0sT0FBTyxHQUFHLHlCQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxxQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUN4QyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQzNCLFdBQVcsRUFDWCxPQUFPLEVBQ1AsT0FBTyxDQUNSLENBQUM7UUFDRixLQUFLLENBQUMsMEJBQTBCLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDL0QsTUFBTSxHQUFHLElBQUksK0JBQXFCLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDaEUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztLQUN6QztJQUNELE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBVztRQUNyQyxPQUFPO0tBQ1IsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE9BQU8sQ0FBQyxVQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUM7QUFFdEQsa0JBQWUsT0FBTyxDQUFDIn0= |
@@ -30,2 +30,11 @@ import path from 'path'; | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL19fdGVzdHNfXy9wZXJ0YWluLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sT0FBTyxNQUFNLEtBQUssQ0FBQztBQUMxQixPQUFPLGlCQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBRXJELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLDBCQUEwQixDQUFDLENBQUM7QUFFckUsSUFBSSxDQUFDLGtGQUFrRixFQUFFLEdBQUcsRUFBRTtJQUM1RixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDN0QsTUFBTSxXQUFXLEdBQUcsV0FBVztTQUM1QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLFNBQVMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ3hDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLG9EQUFvRCxFQUFFLEdBQUcsRUFBRTtJQUM5RCxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0QsT0FBTyxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3JCLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGlFQUFpRSxFQUFFLEdBQUcsRUFBRTtJQUMzRSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FDekQsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUNsRCxFQUFFLENBQ0gsQ0FBQztJQUNGLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUNwQyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxpRUFBaUUsRUFBRSxHQUFHLEVBQUU7SUFDM0UsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN2RSxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyx3REFBd0QsRUFBRSxHQUFHLEVBQUU7SUFDbEUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakUsQ0FBQyxDQUFDLENBQUMifQ== | ||
test('accepts custom DependencyFinder', () => { | ||
pertain.clearCache(); | ||
const allTalk = pertain(projectPath, 'germane.identify', () => [ | ||
'cactus-attitude' | ||
]) | ||
.map(dep => require(dep.path)()) | ||
.join(''); | ||
expect(allTalk).toBe('a bad attitude'); | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL19fdGVzdHNfXy9wZXJ0YWluLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sT0FBTyxNQUFNLEtBQUssQ0FBQztBQUMxQixPQUFPLGlCQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBRXJELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLDBCQUEwQixDQUFDLENBQUM7QUFFckUsSUFBSSxDQUFDLGtGQUFrRixFQUFFLEdBQUcsRUFBRTtJQUM1RixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDN0QsTUFBTSxXQUFXLEdBQUcsV0FBVztTQUM1QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLFNBQVMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ3hDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLG9EQUFvRCxFQUFFLEdBQUcsRUFBRTtJQUM5RCxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0QsT0FBTyxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3JCLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGlFQUFpRSxFQUFFLEdBQUcsRUFBRTtJQUMzRSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FDekQsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUNsRCxFQUFFLENBQ0gsQ0FBQztJQUNGLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUNwQyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxpRUFBaUUsRUFBRSxHQUFHLEVBQUU7SUFDM0UsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN2RSxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyx3REFBd0QsRUFBRSxHQUFHLEVBQUU7SUFDbEUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakUsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO0lBQzNDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQzdELGlCQUFpQjtLQUNsQixDQUFDO1NBQ0MsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQy9CLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNaLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN6QyxDQUFDLENBQUMsQ0FBQyJ9 |
@@ -0,1 +1,3 @@ | ||
import PackageJson from './PackageJson'; | ||
export declare type DependencyFinder = (found: string[], packageJson: PackageJson, rootDir: string, subject: string) => string[]; | ||
/** | ||
@@ -29,3 +31,3 @@ * A Node package which declares in its `package.json` file that it contains | ||
*/ | ||
declare function pertain(rootDir: string, subject: string): Pertaining[]; | ||
declare function pertain(rootDir: string, subject: string, getDependencies?: DependencyFinder): Pertaining[]; | ||
declare namespace pertain { | ||
@@ -32,0 +34,0 @@ var clearCache: () => void; |
@@ -6,2 +6,14 @@ import makeDebug from 'debug'; | ||
const debug = makeDebug('pertain:main'); | ||
const depsAndDevDeps = (pkg) => { | ||
// Merging the two dependency sets that we look at will dedupe them. | ||
// We don't care whether it comes from devDependencies or dependencies. | ||
// Both are relevant, because many applications with a build step compile | ||
// code from devDependencies. | ||
const allDependencyNames = Object.keys({ | ||
...pkg.dependencies, | ||
...pkg.devDependencies | ||
}); | ||
allDependencyNames.push('./'); // rootDir too | ||
return allDependencyNames; | ||
}; | ||
/** | ||
@@ -18,3 +30,3 @@ * Caches the ExplicitDependencySet calculated for a given project root. | ||
*/ | ||
function pertain(rootDir, subject) { | ||
function pertain(rootDir, subject, getDependencies = found => found) { | ||
let depSet = dependencySetCache.get(rootDir); | ||
@@ -26,12 +38,4 @@ if (!depSet) { | ||
const resolve = resolver(rootDir); | ||
const { dependencies, devDependencies } = new PackageJson(rootDir); | ||
// Merging the two dependency sets that we look at will dedupe them. | ||
// We don't care whether it comes from devDependencies or dependencies. | ||
// Both are relevant, because many applications with a build step compile | ||
// code from devDependencies. | ||
const allDependencyNames = Object.keys({ | ||
...dependencies, | ||
...devDependencies | ||
}); | ||
allDependencyNames.push('./'); // rootDir too | ||
const packageJson = new PackageJson(rootDir); | ||
const allDependencyNames = getDependencies(depsAndDevDeps(packageJson), packageJson, rootDir, subject); | ||
debug('%s allDependencyNames %s', rootDir, allDependencyNames); | ||
@@ -54,2 +58,2 @@ depSet = new ExplicitDependencySet(resolve, allDependencyNames); | ||
export default pertain; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wZXJ0YWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sU0FBUyxNQUFNLE9BQU8sQ0FBQztBQUM5QixPQUFPLHFCQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sV0FBVyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUV6QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7QUEwQnhDOzs7O0dBSUc7QUFDSCxNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO0FBRXBFOzs7O0dBSUc7QUFDSCxTQUFTLE9BQU8sQ0FBQyxPQUFlLEVBQUUsT0FBZTtJQUMvQyxJQUFJLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxQywwRUFBMEU7UUFDMUUsYUFBYTtRQUNiLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxNQUFNLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5FLG9FQUFvRTtRQUNwRSx1RUFBdUU7UUFDdkUseUVBQXlFO1FBQ3pFLDZCQUE2QjtRQUM3QixNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDckMsR0FBRyxZQUFZO1lBQ2YsR0FBRyxlQUFlO1NBQ25CLENBQUMsQ0FBQztRQUNILGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWM7UUFDN0MsS0FBSyxDQUFDLDBCQUEwQixFQUFFLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sR0FBRyxJQUFJLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hFLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDekM7SUFDRCxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDZCxJQUFJLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQVc7UUFDckMsT0FBTztLQUNSLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxPQUFPLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO0FBRXRELGVBQWUsT0FBTyxDQUFDIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wZXJ0YWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sU0FBUyxNQUFNLE9BQU8sQ0FBQztBQUM5QixPQUFPLHFCQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sV0FBVyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUV6QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7QUFTeEMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxHQUFnQixFQUFZLEVBQUU7SUFDcEQsb0VBQW9FO0lBQ3BFLHVFQUF1RTtJQUN2RSx5RUFBeUU7SUFDekUsNkJBQTZCO0lBQzdCLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUNyQyxHQUFHLEdBQUcsQ0FBQyxZQUFZO1FBQ25CLEdBQUcsR0FBRyxDQUFDLGVBQWU7S0FDdkIsQ0FBQyxDQUFDO0lBQ0gsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYztJQUM3QyxPQUFPLGtCQUFrQixDQUFDO0FBQzVCLENBQUMsQ0FBQztBQTBCRjs7OztHQUlHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQztBQUVwRTs7OztHQUlHO0FBQ0gsU0FBUyxPQUFPLENBQ2QsT0FBZSxFQUNmLE9BQWUsRUFDZixrQkFBb0MsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLO0lBRWxELElBQUksTUFBTSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1gsS0FBSyxDQUFDLHlCQUF5QixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLDBFQUEwRTtRQUMxRSxhQUFhO1FBQ2IsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUN4QyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQzNCLFdBQVcsRUFDWCxPQUFPLEVBQ1AsT0FBTyxDQUNSLENBQUM7UUFDRixLQUFLLENBQUMsMEJBQTBCLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDL0QsTUFBTSxHQUFHLElBQUkscUJBQXFCLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDaEUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztLQUN6QztJQUNELE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBVztRQUNyQyxPQUFPO0tBQ1IsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE9BQU8sQ0FBQyxVQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUM7QUFFdEQsZUFBZSxPQUFPLENBQUMifQ== |
@@ -5,2 +5,9 @@ # Changelog | ||
### [0.1.5](https://github.com/zetlen/pertain/compare/v0.1.4...v0.1.5) (2020-03-12) | ||
### Features | ||
* custom dependency finder ([a10529c](https://github.com/zetlen/pertain/commit/a10529cd752c814b290d537817499d5aac0e9912)) | ||
### [0.1.4](https://github.com/zetlen/pertain/compare/v0.1.3...v0.1.4) (2020-02-20) | ||
@@ -7,0 +14,0 @@ |
{ | ||
"name": "pertain", | ||
"version": "0.1.4", | ||
"version": "0.1.5", | ||
"publishConfig": { | ||
@@ -5,0 +5,0 @@ "access": "public" |
@@ -274,5 +274,32 @@ # pertain 📋 <img alt="NodeJS" src="https://img.shields.io/node/v/pertain?logo=javascript&style=for-the-badge" align="right" valign="bottom"> | ||
Supply a custom `getDependencies(found, packageJson, rootDir, subject)` function to customize how pertain finds the list of dependency names. | ||
Its first argument is a union of `dependencies` and `devDependencies`, and by default it simply returns that argument. | ||
This is useful for when you are developing a pertinent package and linking it via `npm link` to the consuming package. | ||
```js | ||
const pertain = require('pertain'); | ||
const desserts = pertain( | ||
process.cwd(), | ||
'potluck.desserts', | ||
deps => deps.concat(['neighbor-window-pie']) | ||
); | ||
const dessertTable = {}; | ||
for (const dessertFile of desserts) { | ||
// Require and execute the module. | ||
const Dessert = require(dessertFile.path); | ||
// Expect that a dessert will be a class. Provide it with the table | ||
// everything else has set, so it can interact with other dependencies. | ||
const dessert = new Dessert(dessertTable); | ||
// Expect Dessert#serve() to run a side effect. | ||
dessert.serve(); | ||
} | ||
``` | ||
### API | ||
#### `pertain(workingDirectory, subject)` | ||
#### `pertain(workingDirectory, subject, getDependencies?)` | ||
@@ -279,0 +306,0 @@ Return an array of module info, sorted in peer dependency order, for all modules declared as _direct dependencies_ of the package root of `workingDirectory`. Filter those modules for only those which: |
@@ -8,2 +8,22 @@ import makeDebug from 'debug'; | ||
export type DependencyFinder = ( | ||
found: string[], | ||
packageJson: PackageJson, | ||
rootDir: string, | ||
subject: string | ||
) => string[]; | ||
const depsAndDevDeps = (pkg: PackageJson): string[] => { | ||
// Merging the two dependency sets that we look at will dedupe them. | ||
// We don't care whether it comes from devDependencies or dependencies. | ||
// Both are relevant, because many applications with a build step compile | ||
// code from devDependencies. | ||
const allDependencyNames = Object.keys({ | ||
...pkg.dependencies, | ||
...pkg.devDependencies | ||
}); | ||
allDependencyNames.push('./'); // rootDir too | ||
return allDependencyNames; | ||
}; | ||
/** | ||
@@ -45,3 +65,7 @@ * A Node package which declares in its `package.json` file that it contains | ||
*/ | ||
function pertain(rootDir: string, subject: string): Pertaining[] { | ||
function pertain( | ||
rootDir: string, | ||
subject: string, | ||
getDependencies: DependencyFinder = found => found | ||
): Pertaining[] { | ||
let depSet = dependencySetCache.get(rootDir); | ||
@@ -53,13 +77,9 @@ if (!depSet) { | ||
const resolve = resolver(rootDir); | ||
const { dependencies, devDependencies } = new PackageJson(rootDir); | ||
// Merging the two dependency sets that we look at will dedupe them. | ||
// We don't care whether it comes from devDependencies or dependencies. | ||
// Both are relevant, because many applications with a build step compile | ||
// code from devDependencies. | ||
const allDependencyNames = Object.keys({ | ||
...dependencies, | ||
...devDependencies | ||
}); | ||
allDependencyNames.push('./'); // rootDir too | ||
const packageJson = new PackageJson(rootDir); | ||
const allDependencyNames = getDependencies( | ||
depsAndDevDeps(packageJson), | ||
packageJson, | ||
rootDir, | ||
subject | ||
); | ||
debug('%s allDependencyNames %s', rootDir, allDependencyNames); | ||
@@ -66,0 +86,0 @@ depSet = new ExplicitDependencySet(resolve, allDependencyNames); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
110150
1475
319
11