pertain
Advanced tools
Comparing version 0.2.0 to 0.2.1
@@ -11,3 +11,3 @@ "use strict"; | ||
test('provides info about pertaining dependencies, in dependency order', () => { | ||
expect(__1.default(projectPath, 'germane.draw') | ||
expect((0, __1.default)(projectPath, 'germane.draw') | ||
// hide absolute paths so snapshot is portable | ||
@@ -22,3 +22,3 @@ .map((dep) => ({ | ||
test('pertains to "germane.identify" in dep order to list ingredients in a cool cactus', () => { | ||
const identifiers = __1.default(projectPath, 'germane.identify'); | ||
const identifiers = (0, __1.default)(projectPath, 'germane.identify'); | ||
const ingredients = identifiers | ||
@@ -32,4 +32,4 @@ .map((i) => `- ${i.name} adds ${require(i.path)()}`) | ||
const sort = jest.spyOn(TopologicalSorter_1.default.prototype, 'sort'); | ||
__1.default(projectPath, 'germane.identify'); | ||
__1.default(projectPath, 'germane.identify'); | ||
(0, __1.default)(projectPath, 'germane.identify'); | ||
(0, __1.default)(projectPath, 'germane.identify'); | ||
expect(sort).toHaveBeenCalledTimes(1); | ||
@@ -39,14 +39,14 @@ sort.mockRestore(); | ||
test('pertains to "germane.draw" in dep order to draw the cool cactus', () => { | ||
const picture = __1.default(projectPath, 'germane.draw').reduce((drawing, artist) => require(artist.path)(drawing), ''); | ||
const picture = (0, __1.default)(projectPath, 'germane.draw').reduce((drawing, artist) => require(artist.path)(drawing), ''); | ||
expect(picture).toMatchSnapshot(); | ||
}); | ||
test('throws informative error if a dep declares an invalid pertainer', () => { | ||
expect(() => __1.default(projectPath, 'lies')).toThrow('could not find'); | ||
expect(() => (0, __1.default)(projectPath, 'lies')).toThrow('could not find'); | ||
}); | ||
test('throws informative error if circular deps are detected', () => { | ||
expect(() => __1.default(projectPath, 'humpty')).toThrow('Cyclic'); | ||
expect(() => (0, __1.default)(projectPath, 'humpty')).toThrow('Cyclic'); | ||
}); | ||
test('accepts custom DependencyFinder', () => { | ||
__1.default.clearCache(); | ||
const allTalk = __1.default(projectPath, 'germane.identify', () => [ | ||
const allTalk = (0, __1.default)(projectPath, 'germane.identify', () => [ | ||
'cactus-attitude', | ||
@@ -58,2 +58,2 @@ ]) | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL19fdGVzdHNfXy9wZXJ0YWluLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsNENBQTBCO0FBQzFCLDZFQUFxRDtBQUVyRCxNQUFNLFdBQVcsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0FBRXJFLElBQUksQ0FBQyxrRUFBa0UsRUFBRSxHQUFHLEVBQUU7SUFDNUUsTUFBTSxDQUNKLFdBQU8sQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDO1FBQ2xDLDhDQUE4QztTQUM3QyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDYixJQUFJLEVBQUUsY0FBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQztRQUMxQyxVQUFVLEVBQUUsY0FBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUN0RCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDZCxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87S0FDckIsQ0FBQyxDQUFDLENBQ04sQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUN0QixDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxrRkFBa0YsRUFBRSxHQUFHLEVBQUU7SUFDNUYsTUFBTSxXQUFXLEdBQUcsV0FBTyxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdELE1BQU0sV0FBVyxHQUFHLFdBQVc7U0FDNUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLFNBQVMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ3hDLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLG9EQUFvRCxFQUFFLEdBQUcsRUFBRTtJQUM5RCxXQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQywyQkFBaUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0QsV0FBTyxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pDLFdBQU8sQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3JCLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGlFQUFpRSxFQUFFLEdBQUcsRUFBRTtJQUMzRSxNQUFNLE9BQU8sR0FBRyxXQUFPLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FDekQsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUNsRCxFQUFFLENBQ0gsQ0FBQztJQUNGLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUNwQyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxpRUFBaUUsRUFBRSxHQUFHLEVBQUU7SUFDM0UsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN2RSxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyx3REFBd0QsRUFBRSxHQUFHLEVBQUU7SUFDbEUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQU8sQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDakUsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO0lBQzNDLFdBQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyQixNQUFNLE9BQU8sR0FBRyxXQUFPLENBQUMsV0FBVyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQzdELGlCQUFpQjtLQUNsQixDQUFDO1NBQ0MsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7U0FDakMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1osTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3pDLENBQUMsQ0FBQyxDQUFDIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL19fdGVzdHNfXy9wZXJ0YWluLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsNENBQTBCO0FBQzFCLDZFQUFxRDtBQUVyRCxNQUFNLFdBQVcsR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0FBRXJFLElBQUksQ0FBQyxrRUFBa0UsRUFBRSxHQUFHLEVBQUU7SUFDNUUsTUFBTSxDQUNKLElBQUEsV0FBTyxFQUFDLFdBQVcsRUFBRSxjQUFjLENBQUM7UUFDbEMsOENBQThDO1NBQzdDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNiLElBQUksRUFBRSxjQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQzFDLFVBQVUsRUFBRSxjQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ3RELElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtRQUNkLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztLQUNyQixDQUFDLENBQUMsQ0FDTixDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ3RCLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGtGQUFrRixFQUFFLEdBQUcsRUFBRTtJQUM1RixNQUFNLFdBQVcsR0FBRyxJQUFBLFdBQU8sRUFBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUM3RCxNQUFNLFdBQVcsR0FBRyxXQUFXO1NBQzVCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxTQUFTLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNkLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUN4QyxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxvREFBb0QsRUFBRSxHQUFHLEVBQUU7SUFDOUQsV0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsMkJBQWlCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdELElBQUEsV0FBTyxFQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pDLElBQUEsV0FBTyxFQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDckIsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsaUVBQWlFLEVBQUUsR0FBRyxFQUFFO0lBQzNFLE1BQU0sT0FBTyxHQUFHLElBQUEsV0FBTyxFQUFDLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQ3pELENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFDbEQsRUFBRSxDQUNILENBQUM7SUFDRixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDcEMsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsaUVBQWlFLEVBQUUsR0FBRyxFQUFFO0lBQzNFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLFdBQU8sRUFBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN2RSxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyx3REFBd0QsRUFBRSxHQUFHLEVBQUU7SUFDbEUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUEsV0FBTyxFQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNqRSxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxHQUFHLEVBQUU7SUFDM0MsV0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3JCLE1BQU0sT0FBTyxHQUFHLElBQUEsV0FBTyxFQUFDLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUM3RCxpQkFBaUI7S0FDbEIsQ0FBQztTQUNDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQ2pDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNaLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN6QyxDQUFDLENBQUMsQ0FBQyJ9 |
@@ -10,3 +10,3 @@ "use strict"; | ||
const base = path_1.default.resolve(__dirname, '../../'); | ||
const resolve = __1.resolver(base); | ||
const resolve = (0, __1.resolver)(base); | ||
test('resolves node_modules', () => { | ||
@@ -23,3 +23,3 @@ const typescriptPath = resolve('typescript'); | ||
const coolCactus = path_1.default.resolve(__dirname, './__fixtures__/cool-cactus'); | ||
const resolve = __1.resolver(coolCactus); | ||
const resolve = (0, __1.resolver)(coolCactus); | ||
test('resolves node_modules with an entry point', () => { | ||
@@ -40,2 +40,2 @@ expect(resolve('treachery')).toBe(path_1.default.resolve(coolCactus, './node_modules/treachery')); | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJGYWN0b3J5LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvX190ZXN0c19fL3Jlc29sdmVyRmFjdG9yeS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBQ3hCLDJCQUFrRDtBQUVsRCxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtJQUN2QixNQUFNLElBQUksR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvQyxNQUFNLE9BQU8sR0FBRyxZQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdEMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtRQUNqQyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFXLENBQUM7UUFDdkQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sQ0FDSixPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FDekQsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqQixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUU7UUFDakQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsRUFBRTtJQUMzQyxNQUFNLFVBQVUsR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sT0FBTyxHQUFHLFlBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUU1QyxJQUFJLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxFQUFFO1FBQ3JELE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQy9CLGNBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLDBCQUEwQixDQUFDLENBQ3JELENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQywyQ0FBMkMsRUFBRSxHQUFHLEVBQUU7UUFDckQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNwQyxjQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSwrQkFBK0IsQ0FBQyxDQUMxRCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsbUNBQW1DLEVBQUUsR0FBRyxFQUFFO1FBQzdDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQVcsQ0FBQztRQUN2RCxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEMsTUFBTSxDQUNKLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUN6RCxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtRQUNqRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJGYWN0b3J5LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvX190ZXN0c19fL3Jlc29sdmVyRmFjdG9yeS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBQ3hCLDJCQUFrRDtBQUVsRCxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtJQUN2QixNQUFNLElBQUksR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvQyxNQUFNLE9BQU8sR0FBRyxJQUFBLFlBQWUsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUV0QyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxFQUFFO1FBQ2pDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQVcsQ0FBQztRQUN2RCxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEMsTUFBTSxDQUNKLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUN6RCxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtRQUNqRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO0lBQzNDLE1BQU0sVUFBVSxHQUFHLGNBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLDRCQUE0QixDQUFDLENBQUM7SUFDekUsTUFBTSxPQUFPLEdBQUcsSUFBQSxZQUFlLEVBQUMsVUFBVSxDQUFDLENBQUM7SUFFNUMsSUFBSSxDQUFDLDJDQUEyQyxFQUFFLEdBQUcsRUFBRTtRQUNyRCxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMvQixjQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSwwQkFBMEIsQ0FBQyxDQUNyRCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxFQUFFO1FBQ3JELE1BQU0sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDcEMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsK0JBQStCLENBQUMsQ0FDMUQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDLG1DQUFtQyxFQUFFLEdBQUcsRUFBRTtRQUM3QyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFXLENBQUM7UUFDdkQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sQ0FDSixPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FDekQsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqQixDQUFDLENBQUMsQ0FBQztJQUVILElBQUksQ0FBQyx1Q0FBdUMsRUFBRSxHQUFHLEVBQUU7UUFDakQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0= |
@@ -10,3 +10,3 @@ "use strict"; | ||
const PertainError_1 = __importDefault(require("./PertainError")); | ||
const debug = debug_1.default('pertain:ExplicitDependency'); | ||
const debug = (0, debug_1.default)('pertain:ExplicitDependency'); | ||
/** | ||
@@ -18,6 +18,2 @@ * A Node module that the consuming project (the one calling `pertain()`) has | ||
class ExplicitDependency { | ||
constructor(modulePath) { | ||
this.modulePath = modulePath; | ||
this.pkg = new PackageJson_1.default(modulePath); | ||
} | ||
/** | ||
@@ -29,2 +25,6 @@ * Name of this package; for use in dependency detection. | ||
} | ||
constructor(modulePath) { | ||
this.modulePath = modulePath; | ||
this.pkg = new PackageJson_1.default(modulePath); | ||
} | ||
/** | ||
@@ -45,3 +45,3 @@ * Returns true if this module has declared an explicit peer dependency on | ||
dependsOn(name) { | ||
return this.pkg.peerDependencies.hasOwnProperty(name); | ||
return Reflect.has(this.pkg.peerDependencies, name); | ||
} | ||
@@ -60,3 +60,3 @@ /** | ||
pertains(subject) { | ||
const pertaining = PackageJson_1.default.lookup(this.pkg, subject); | ||
const pertaining = this.pkg.lookup(subject); | ||
// Only strings can be file paths, so anything else does not pertain | ||
@@ -85,2 +85,2 @@ if (!pertaining || typeof pertaining !== 'string') { | ||
exports.default = ExplicitDependency; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbGljaXREZXBlbmRlbmN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V4cGxpY2l0RGVwZW5kZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtEQUE4QjtBQUM5QixnREFBd0I7QUFDeEIsZ0VBQXdDO0FBQ3hDLGtFQUEwQztBQUUxQyxNQUFNLEtBQUssR0FBRyxlQUFTLENBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUV0RDs7OztHQUlHO0FBQ0gsTUFBcUIsa0JBQWtCO0lBaUJyQyxZQUFZLFVBQWtCO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxxQkFBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFWRDs7T0FFRztJQUNILElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQU9EOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSSxTQUFTLENBQUMsSUFBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksUUFBUSxDQUFDLE9BQWU7UUFDN0IsTUFBTSxVQUFVLEdBQUcscUJBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV6RCxvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7WUFDakQsS0FBSyxDQUNILCtCQUErQixFQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFDYixPQUFPLEVBQ1AsVUFBVSxDQUNYLENBQUM7WUFDRixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsS0FBSyxDQUNILDJDQUEyQyxFQUMzQyxPQUFPLEVBQ1AsVUFBVSxFQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUNkLENBQUM7UUFFRixxRUFBcUU7UUFDckUsTUFBTSxVQUFVLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFELElBQUk7WUFDRixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckQsS0FBSyxDQUFDLDZCQUE2QixFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDdkQsT0FBTyxnQkFBZ0IsQ0FBQztTQUN6QjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLHNCQUFZLENBQ3BCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLGlCQUFpQixPQUFPLHFFQUFxRSxVQUFVLEdBQUcsQ0FDNUgsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELDBCQUEwQjtJQUNuQixRQUFRO1FBQ2IsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0NBQ0Y7QUF6RkQscUNBeUZDIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbGljaXREZXBlbmRlbmN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V4cGxpY2l0RGVwZW5kZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtEQUE4QjtBQUM5QixnREFBd0I7QUFDeEIsZ0VBQXdDO0FBQ3hDLGtFQUEwQztBQUUxQyxNQUFNLEtBQUssR0FBRyxJQUFBLGVBQVMsRUFBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBRXREOzs7O0dBSUc7QUFDSCxNQUFxQixrQkFBa0I7SUFVckM7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFZLFVBQWtCO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxxQkFBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0ksU0FBUyxDQUFDLElBQVk7UUFDM0IsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxRQUFRLENBQUMsT0FBZTtRQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU1QyxvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7WUFDakQsS0FBSyxDQUNILCtCQUErQixFQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFDYixPQUFPLEVBQ1AsVUFBVSxDQUNYLENBQUM7WUFDRixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsS0FBSyxDQUNILDJDQUEyQyxFQUMzQyxPQUFPLEVBQ1AsVUFBVSxFQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUNkLENBQUM7UUFFRixxRUFBcUU7UUFDckUsTUFBTSxVQUFVLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFELElBQUk7WUFDRixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckQsS0FBSyxDQUFDLDZCQUE2QixFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDdkQsT0FBTyxnQkFBZ0IsQ0FBQztTQUN6QjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLHNCQUFZLENBQ3BCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLGlCQUFpQixPQUFPLHFFQUFxRSxVQUFVLEdBQUcsQ0FDNUgsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELDBCQUEwQjtJQUNuQixRQUFRO1FBQ2IsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0NBQ0Y7QUF6RkQscUNBeUZDIn0= |
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.TopologicalSorter = exports.ExplicitDependency = exports.ExplicitDependencySet = exports.resolver = exports.default = void 0; | ||
var pertain_1 = require("./pertain"); | ||
exports.default = pertain_1.default; | ||
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(pertain_1).default; } }); | ||
var resolverFactory_1 = require("./resolverFactory"); | ||
exports.resolver = resolverFactory_1.default; | ||
Object.defineProperty(exports, "resolver", { enumerable: true, get: function () { return __importDefault(resolverFactory_1).default; } }); | ||
var ExplicitDependencySet_1 = require("./ExplicitDependencySet"); | ||
exports.ExplicitDependencySet = ExplicitDependencySet_1.default; | ||
Object.defineProperty(exports, "ExplicitDependencySet", { enumerable: true, get: function () { return __importDefault(ExplicitDependencySet_1).default; } }); | ||
var ExplicitDependency_1 = require("./ExplicitDependency"); | ||
exports.ExplicitDependency = ExplicitDependency_1.default; | ||
Object.defineProperty(exports, "ExplicitDependency", { enumerable: true, get: function () { return __importDefault(ExplicitDependency_1).default; } }); | ||
var TopologicalSorter_1 = require("./TopologicalSorter"); | ||
exports.TopologicalSorter = TopologicalSorter_1.default; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBb0M7QUFBM0IsNEJBQUEsT0FBTyxDQUFBO0FBQ2hCLHFEQUF3RDtBQUEvQyxxQ0FBQSxPQUFPLENBQVk7QUFDNUIsaUVBQTJFO0FBQWxFLHdEQUFBLE9BQU8sQ0FBeUI7QUFDekMsMkRBQXFFO0FBQTVELGtEQUFBLE9BQU8sQ0FBc0I7QUFDdEMseURBQW1FO0FBQTFELGdEQUFBLE9BQU8sQ0FBcUIifQ== | ||
Object.defineProperty(exports, "TopologicalSorter", { enumerable: true, get: function () { return __importDefault(TopologicalSorter_1).default; } }); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscUNBQW9DO0FBQTNCLG1IQUFBLE9BQU8sT0FBQTtBQUNoQixxREFBd0Q7QUFBL0MsNEhBQUEsT0FBTyxPQUFZO0FBQzVCLGlFQUEyRTtBQUFsRSwrSUFBQSxPQUFPLE9BQXlCO0FBQ3pDLDJEQUFxRTtBQUE1RCx5SUFBQSxPQUFPLE9BQXNCO0FBQ3RDLHlEQUFtRTtBQUExRCx1SUFBQSxPQUFPLE9BQXFCIn0= |
@@ -1,4 +0,8 @@ | ||
export interface JsonMap<T> { | ||
[key: string]: T; | ||
} | ||
import objectPath from 'object-path'; | ||
type PkgData = { | ||
name: string; | ||
dependencies: Record<string, string>; | ||
devDependencies: Record<string, string>; | ||
peerDependencies: Record<string, string>; | ||
}; | ||
/** | ||
@@ -14,12 +18,8 @@ * Lazy-loading proxy for package.json. A subset of properties are available, | ||
export default class PackageJson { | ||
/** | ||
* Look up a custom dot-path on a package.json instance. Abstracting this | ||
* simple operation behind a static method helps us to keep this loading lazy. | ||
*/ | ||
static lookup(pkg: PackageJson, dotPath: string): unknown; | ||
get dependencies(): JsonMap<string>; | ||
get devDependencies(): JsonMap<string>; | ||
json: objectPath.ObjectPathBound<PkgData>; | ||
lookup<T>(dotPath: string, fallback?: T): T; | ||
get dependencies(): Record<string, string>; | ||
get devDependencies(): Record<string, string>; | ||
get name(): string; | ||
get peerDependencies(): JsonMap<string>; | ||
private json; | ||
get peerDependencies(): Record<string, string>; | ||
private modulePath; | ||
@@ -29,1 +29,2 @@ constructor(modulePath: string); | ||
} | ||
export {}; |
@@ -6,3 +6,4 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
const dot_prop_1 = __importDefault(require("dot-prop")); | ||
const object_path_1 = __importDefault(require("object-path")); | ||
const fs_1 = require("fs"); | ||
const path_1 = __importDefault(require("path")); | ||
@@ -19,27 +20,23 @@ /** | ||
class PackageJson { | ||
constructor(modulePath) { | ||
this.modulePath = modulePath; | ||
lookup(dotPath, fallback) { | ||
return this.getJson().get(dotPath) || fallback; | ||
} | ||
/** | ||
* Look up a custom dot-path on a package.json instance. Abstracting this | ||
* simple operation behind a static method helps us to keep this loading lazy. | ||
*/ | ||
static lookup(pkg, dotPath) { | ||
return dot_prop_1.default.get(pkg.getJson(), dotPath); | ||
} | ||
get dependencies() { | ||
return this.getJson().dependencies || {}; | ||
return this.lookup('dependencies', {}); | ||
} | ||
get devDependencies() { | ||
return this.getJson().devDependencies || {}; | ||
return this.lookup('devDependencies', {}); | ||
} | ||
get name() { | ||
return this.getJson().name; | ||
return this.lookup('name'); | ||
} | ||
get peerDependencies() { | ||
return this.getJson().peerDependencies || {}; | ||
return this.lookup('peerDependencies', {}); | ||
} | ||
constructor(modulePath) { | ||
this.modulePath = modulePath; | ||
} | ||
getJson() { | ||
if (!this.json) { | ||
this.json = require(path_1.default.join(this.modulePath, 'package.json')); | ||
this.json = (0, object_path_1.default)(JSON.parse((0, fs_1.readFileSync)(path_1.default.join(this.modulePath, 'package.json'), 'utf8'))); | ||
} | ||
@@ -50,2 +47,2 @@ return this.json; | ||
exports.default = PackageJson; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZUpzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUGFja2FnZUpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3REFBK0I7QUFDL0IsZ0RBQXdCO0FBTXhCOzs7Ozs7OztHQVFHO0FBQ0gsTUFBcUIsV0FBVztJQXNCOUIsWUFBWSxVQUFrQjtRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBdkJEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBZ0IsRUFBRSxPQUFlO1FBQ3BELE9BQU8sa0JBQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUNELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQWMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFNTyxPQUFPO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUMzQixJQUFJLENBQUMsVUFBVSxFQUNmLGNBQWMsQ0FDZixDQUFpQixDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQWxDRCw4QkFrQ0MifQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZUpzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUGFja2FnZUpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4REFBcUM7QUFDckMsMkJBQWtDO0FBQ2xDLGdEQUF3QjtBQVN4Qjs7Ozs7Ozs7R0FRRztBQUNILE1BQXFCLFdBQVc7SUFFdkIsTUFBTSxDQUFJLE9BQWUsRUFBRSxRQUFZO1FBQzVDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxRQUFRLENBQUM7SUFDakQsQ0FBQztJQUNELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsWUFBWSxVQUFrQjtRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBQ08sT0FBTztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFBLHFCQUFVLEVBQ3BCLElBQUksQ0FBQyxLQUFLLENBQ1IsSUFBQSxpQkFBWSxFQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FDakUsQ0FDRixDQUFDO1NBQ0g7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBL0JELDhCQStCQyJ9 |
import PackageJson from './PackageJson'; | ||
export declare type DependencyFinder = (found: string[], packageJson: PackageJson, rootDir: string, subject: string) => string[]; | ||
export type DependencyFinder = (found: string[], packageJson: PackageJson, rootDir: string, subject: string) => string[]; | ||
/** | ||
@@ -4,0 +4,0 @@ * A Node package which declares in its `package.json` file that it contains |
@@ -10,3 +10,3 @@ "use strict"; | ||
const resolverFactory_1 = __importDefault(require("./resolverFactory")); | ||
const debug = debug_1.default('pertain:main'); | ||
const debug = (0, debug_1.default)('pertain:main'); | ||
const depsAndDevDeps = (pkg) => { | ||
@@ -38,3 +38,3 @@ // Merging the two dependency sets that we look at will dedupe them. | ||
// algorithm. | ||
const resolve = resolverFactory_1.default(rootDir); | ||
const resolve = (0, resolverFactory_1.default)(rootDir); | ||
const packageJson = new PackageJson_1.default(rootDir); | ||
@@ -60,2 +60,2 @@ const allDependencyNames = getDependencies(depsAndDevDeps(packageJson), packageJson, rootDir, subject); | ||
exports.default = pertain; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wZXJ0YWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQThCO0FBQzlCLG9GQUE0RDtBQUM1RCxnRUFBd0M7QUFDeEMsd0VBQXlDO0FBRXpDLE1BQU0sS0FBSyxHQUFHLGVBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQVN4QyxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQWdCLEVBQVksRUFBRTtJQUNwRCxvRUFBb0U7SUFDcEUsdUVBQXVFO0lBQ3ZFLHlFQUF5RTtJQUN6RSw2QkFBNkI7SUFDN0IsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsSUFBSSxpQ0FDakMsR0FBRyxDQUFDLFlBQVksR0FDaEIsR0FBRyxDQUFDLGVBQWUsRUFDdEIsQ0FBQztJQUNILGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWM7SUFDN0MsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDLENBQUM7QUErQkY7Ozs7R0FJRztBQUNILE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7QUFFcEU7Ozs7R0FJRztBQUNILFNBQVMsT0FBTyxDQUNkLE9BQWUsRUFDZixPQUFlLEVBQ2Ysa0JBQW9DLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLO0lBRXBELElBQUksTUFBTSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1gsS0FBSyxDQUFDLHlCQUF5QixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLDBFQUEwRTtRQUMxRSxhQUFhO1FBQ2IsTUFBTSxPQUFPLEdBQUcseUJBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxNQUFNLFdBQVcsR0FBRyxJQUFJLHFCQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsTUFBTSxrQkFBa0IsR0FBRyxlQUFlLENBQ3hDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFDM0IsV0FBVyxFQUNYLE9BQU8sRUFDUCxPQUFPLENBQ1IsQ0FBQztRQUNGLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUMvRCxNQUFNLEdBQUcsSUFBSSwrQkFBcUIsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUNoRSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQ3pDO0lBQ0QsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDZCxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7UUFDMUIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFXO1FBQ3JDLE9BQU87S0FDUixDQUFDLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsT0FBTyxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUV0RCxrQkFBZSxPQUFPLENBQUMifQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVydGFpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wZXJ0YWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsa0RBQThCO0FBQzlCLG9GQUE0RDtBQUM1RCxnRUFBd0M7QUFDeEMsd0VBQXlDO0FBRXpDLE1BQU0sS0FBSyxHQUFHLElBQUEsZUFBUyxFQUFDLGNBQWMsQ0FBQyxDQUFDO0FBU3hDLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBZ0IsRUFBWSxFQUFFO0lBQ3BELG9FQUFvRTtJQUNwRSx1RUFBdUU7SUFDdkUseUVBQXlFO0lBQ3pFLDZCQUE2QjtJQUM3QixNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxJQUFJLGlDQUNqQyxHQUFHLENBQUMsWUFBWSxHQUNoQixHQUFHLENBQUMsZUFBZSxFQUN0QixDQUFDO0lBQ0gsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYztJQUM3QyxPQUFPLGtCQUFrQixDQUFDO0FBQzVCLENBQUMsQ0FBQztBQStCRjs7OztHQUlHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQztBQUVwRTs7OztHQUlHO0FBQ0gsU0FBUyxPQUFPLENBQ2QsT0FBZSxFQUNmLE9BQWUsRUFDZixrQkFBb0MsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUs7SUFFcEQsSUFBSSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxLQUFLLENBQUMseUJBQXlCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUMsMEVBQTBFO1FBQzFFLGFBQWE7UUFDYixNQUFNLE9BQU8sR0FBRyxJQUFBLHlCQUFRLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxxQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sa0JBQWtCLEdBQUcsZUFBZSxDQUN4QyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQzNCLFdBQVcsRUFDWCxPQUFPLEVBQ1AsT0FBTyxDQUNSLENBQUM7UUFDRixLQUFLLENBQUMsMEJBQTBCLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDL0QsTUFBTSxHQUFHLElBQUksK0JBQXFCLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDaEUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztLQUN6QztJQUNELE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1FBQ2QsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1FBQzFCLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBVztRQUNyQyxPQUFPO0tBQ1IsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE9BQU8sQ0FBQyxVQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUM7QUFFdEQsa0JBQWUsT0FBTyxDQUFDIn0= |
@@ -1,2 +0,2 @@ | ||
export declare type Resolver = (modulePath: string) => string | undefined; | ||
export type Resolver = (modulePath: string) => string | undefined; | ||
/** | ||
@@ -3,0 +3,0 @@ * Returns a function which resolves filesystem base directories, given module |
@@ -7,3 +7,3 @@ "use strict"; | ||
const path_1 = __importDefault(require("path")); | ||
const pkg_dir_1 = __importDefault(require("pkg-dir")); | ||
const find_root_1 = __importDefault(require("find-root")); | ||
const resolve_pkg_1 = __importDefault(require("resolve-pkg")); | ||
@@ -18,8 +18,8 @@ /** | ||
if (path_1.default.isAbsolute(modulePath) || modulePath.startsWith('.')) { | ||
return pkg_dir_1.default.sync(path_1.default.resolve(cwd, modulePath)); | ||
return (0, find_root_1.default)(path_1.default.resolve(cwd, modulePath)); | ||
} | ||
return resolve_pkg_1.default(modulePath, { cwd }); | ||
return (0, resolve_pkg_1.default)(modulePath, { cwd }); | ||
}; | ||
} | ||
exports.default = resolver; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jlc29sdmVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4QixzREFBNkI7QUFDN0IsOERBQXFDO0FBSXJDOzs7O0dBSUc7QUFDSCxTQUF3QixRQUFRLENBQUMsR0FBVztJQUMxQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDcEIsSUFBSSxjQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0QsT0FBTyxpQkFBTSxDQUFDLElBQUksQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsT0FBTyxxQkFBVSxDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQVBELDJCQU9DIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jlc29sdmVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdEQUF3QjtBQUN4QiwwREFBaUM7QUFDakMsOERBQXFDO0FBSXJDOzs7O0dBSUc7QUFDSCxTQUF3QixRQUFRLENBQUMsR0FBVztJQUMxQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDcEIsSUFBSSxjQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0QsT0FBTyxJQUFBLG1CQUFRLEVBQUMsY0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNoRDtRQUNELE9BQU8sSUFBQSxxQkFBVSxFQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQVBELDJCQU9DIn0= |
@@ -7,3 +7,3 @@ "use strict"; | ||
const PertainError_1 = __importDefault(require("./PertainError")); | ||
/* tslint:disable */ | ||
/* eslint-disable */ | ||
/** | ||
@@ -10,0 +10,0 @@ * Topologically sort a list of items of any type, given a list of items and |
@@ -12,7 +12,11 @@ import makeDebug from 'debug'; | ||
export default class ExplicitDependency { | ||
constructor(modulePath) { | ||
this.modulePath = modulePath; | ||
this.pkg = new PackageJson(modulePath); | ||
} | ||
/** | ||
* Lazy-loading package.json data. | ||
*/ | ||
pkg; | ||
/** | ||
* Real path on disk of this module. | ||
*/ | ||
modulePath; | ||
/** | ||
* Name of this package; for use in dependency detection. | ||
@@ -23,2 +27,6 @@ */ | ||
} | ||
constructor(modulePath) { | ||
this.modulePath = modulePath; | ||
this.pkg = new PackageJson(modulePath); | ||
} | ||
/** | ||
@@ -39,3 +47,3 @@ * Returns true if this module has declared an explicit peer dependency on | ||
dependsOn(name) { | ||
return this.pkg.peerDependencies.hasOwnProperty(name); | ||
return Reflect.has(this.pkg.peerDependencies, name); | ||
} | ||
@@ -54,3 +62,3 @@ /** | ||
pertains(subject) { | ||
const pertaining = PackageJson.lookup(this.pkg, subject); | ||
const pertaining = this.pkg.lookup(subject); | ||
// Only strings can be file paths, so anything else does not pertain | ||
@@ -78,2 +86,2 @@ if (!pertaining || typeof pertaining !== 'string') { | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbGljaXREZXBlbmRlbmN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V4cGxpY2l0RGVwZW5kZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFNBQVMsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sV0FBVyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLFlBQVksTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUV0RDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxrQkFBa0I7SUFpQnJDLFlBQVksVUFBa0I7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBVkQ7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFPRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0ksU0FBUyxDQUFDLElBQVk7UUFDM0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLFFBQVEsQ0FBQyxPQUFlO1FBQzdCLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV6RCxvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7WUFDakQsS0FBSyxDQUNILCtCQUErQixFQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFDYixPQUFPLEVBQ1AsVUFBVSxDQUNYLENBQUM7WUFDRixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsS0FBSyxDQUNILDJDQUEyQyxFQUMzQyxPQUFPLEVBQ1AsVUFBVSxFQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUNkLENBQUM7UUFFRixxRUFBcUU7UUFDckUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFELElBQUk7WUFDRixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckQsS0FBSyxDQUFDLDZCQUE2QixFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDdkQsT0FBTyxnQkFBZ0IsQ0FBQztTQUN6QjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsTUFBTSxJQUFJLFlBQVksQ0FDcEIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksaUJBQWlCLE9BQU8scUVBQXFFLFVBQVUsR0FBRyxDQUM1SCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsMEJBQTBCO0lBQ25CLFFBQVE7UUFDYixPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2pELENBQUM7Q0FDRiJ9 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbGljaXREZXBlbmRlbmN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V4cGxpY2l0RGVwZW5kZW5jeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFNBQVMsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sV0FBVyxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLFlBQVksTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUV0RDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxrQkFBa0I7SUFDckM7O09BRUc7SUFDSyxHQUFHLENBQWM7SUFDekI7O09BRUc7SUFDSSxVQUFVLENBQVM7SUFFMUI7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFZLFVBQWtCO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSSxTQUFTLENBQUMsSUFBWTtRQUMzQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLFFBQVEsQ0FBQyxPQUFlO1FBQzdCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVDLG9FQUFvRTtRQUNwRSxJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUNqRCxLQUFLLENBQ0gsK0JBQStCLEVBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUNiLE9BQU8sRUFDUCxVQUFVLENBQ1gsQ0FBQztZQUNGLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxLQUFLLENBQ0gsMkNBQTJDLEVBQzNDLE9BQU8sRUFDUCxVQUFVLEVBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQ2QsQ0FBQztRQUVGLHFFQUFxRTtRQUNyRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDMUQsSUFBSTtZQUNGLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNyRCxLQUFLLENBQUMsNkJBQTZCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUN2RCxPQUFPLGdCQUFnQixDQUFDO1NBQ3pCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLElBQUksWUFBWSxDQUNwQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxpQkFBaUIsT0FBTyxxRUFBcUUsVUFBVSxHQUFHLENBQzVILENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCwwQkFBMEI7SUFDbkIsUUFBUTtRQUNiLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakQsQ0FBQztDQUNGIn0= |
@@ -7,2 +7,9 @@ import ExplicitDependency from './ExplicitDependency'; | ||
export default class ExplicitDependencySet { | ||
resolve; | ||
dependencies; | ||
/** | ||
* Cache storage to prevent unnecessary recalculation of the same list. | ||
* The same subject should result in the same list while this object exists. | ||
*/ | ||
sortedBySubject; | ||
constructor(resolve, names) { | ||
@@ -46,2 +53,2 @@ this.resolve = resolve; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbGljaXREZXBlbmRlbmN5U2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V4cGxpY2l0RGVwZW5kZW5jeVNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGtCQUFrQixNQUFNLHNCQUFzQixDQUFDO0FBRXRELE9BQU8saUJBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFFcEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLHFCQUFxQjtJQVV4QyxZQUFZLE9BQWlCLEVBQUUsS0FBZTtRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDakMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLFVBQVUsR0FBeUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQy9ELENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUM3QyxDQUFDO1lBQ0Ysa0VBQWtFO1lBQ2xFLGlFQUFpRTtZQUNqRSxvQkFBb0I7WUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFVBQThCLEVBQUUsRUFBRSxDQUMxRCxVQUFVLENBQUMsTUFBTSxDQUNmLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FDWixTQUFTLEtBQUssVUFBVSxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUNuRSxDQUFDO1lBQ0osTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBaUIsQ0FDbEMsZ0JBQWdCLENBQ2pCLENBQUM7WUFDRixNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDM0M7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssR0FBRyxDQUFDLElBQVk7UUFDdEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxJQUFJLFVBQVUsRUFBRTtZQUNkLE1BQU0sVUFBVSxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDcEM7SUFDSCxDQUFDO0NBQ0YifQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbGljaXREZXBlbmRlbmN5U2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0V4cGxpY2l0RGVwZW5kZW5jeVNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGtCQUFrQixNQUFNLHNCQUFzQixDQUFDO0FBRXRELE9BQU8saUJBQWlCLE1BQU0scUJBQXFCLENBQUM7QUFFcEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLHFCQUFxQjtJQUNoQyxPQUFPLENBQVc7SUFDbEIsWUFBWSxDQUF1QjtJQUUzQzs7O09BR0c7SUFDSyxlQUFlLENBQW9DO0lBRTNELFlBQVksT0FBaUIsRUFBRSxLQUFlO1FBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNqQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxDQUFDLE9BQWU7UUFDL0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE1BQU0sVUFBVSxHQUF5QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FDL0QsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQzdDLENBQUM7WUFDRixrRUFBa0U7WUFDbEUsaUVBQWlFO1lBQ2pFLG9CQUFvQjtZQUNwQixNQUFNLGdCQUFnQixHQUFHLENBQUMsVUFBOEIsRUFBRSxFQUFFLENBQzFELFVBQVUsQ0FBQyxNQUFNLENBQ2YsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUNaLFNBQVMsS0FBSyxVQUFVLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQ25FLENBQUM7WUFDSixNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFpQixDQUNsQyxnQkFBZ0IsQ0FDakIsQ0FBQztZQUNGLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztTQUMzQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxHQUFHLENBQUMsSUFBWTtRQUN0QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksVUFBVSxFQUFFO1lBQ2QsTUFBTSxVQUFVLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7Q0FDRiJ9 |
@@ -1,4 +0,8 @@ | ||
export interface JsonMap<T> { | ||
[key: string]: T; | ||
} | ||
import objectPath from 'object-path'; | ||
type PkgData = { | ||
name: string; | ||
dependencies: Record<string, string>; | ||
devDependencies: Record<string, string>; | ||
peerDependencies: Record<string, string>; | ||
}; | ||
/** | ||
@@ -14,12 +18,8 @@ * Lazy-loading proxy for package.json. A subset of properties are available, | ||
export default class PackageJson { | ||
/** | ||
* Look up a custom dot-path on a package.json instance. Abstracting this | ||
* simple operation behind a static method helps us to keep this loading lazy. | ||
*/ | ||
static lookup(pkg: PackageJson, dotPath: string): unknown; | ||
get dependencies(): JsonMap<string>; | ||
get devDependencies(): JsonMap<string>; | ||
json: objectPath.ObjectPathBound<PkgData>; | ||
lookup<T>(dotPath: string, fallback?: T): T; | ||
get dependencies(): Record<string, string>; | ||
get devDependencies(): Record<string, string>; | ||
get name(): string; | ||
get peerDependencies(): JsonMap<string>; | ||
private json; | ||
get peerDependencies(): Record<string, string>; | ||
private modulePath; | ||
@@ -29,1 +29,2 @@ constructor(modulePath: string); | ||
} | ||
export {}; |
@@ -1,2 +0,3 @@ | ||
import dotProp from 'dot-prop'; | ||
import objectPath from 'object-path'; | ||
import { readFileSync } from 'fs'; | ||
import path from 'path'; | ||
@@ -13,27 +14,25 @@ /** | ||
export default class PackageJson { | ||
constructor(modulePath) { | ||
this.modulePath = modulePath; | ||
json; | ||
lookup(dotPath, fallback) { | ||
return this.getJson().get(dotPath) || fallback; | ||
} | ||
/** | ||
* Look up a custom dot-path on a package.json instance. Abstracting this | ||
* simple operation behind a static method helps us to keep this loading lazy. | ||
*/ | ||
static lookup(pkg, dotPath) { | ||
return dotProp.get(pkg.getJson(), dotPath); | ||
} | ||
get dependencies() { | ||
return this.getJson().dependencies || {}; | ||
return this.lookup('dependencies', {}); | ||
} | ||
get devDependencies() { | ||
return this.getJson().devDependencies || {}; | ||
return this.lookup('devDependencies', {}); | ||
} | ||
get name() { | ||
return this.getJson().name; | ||
return this.lookup('name'); | ||
} | ||
get peerDependencies() { | ||
return this.getJson().peerDependencies || {}; | ||
return this.lookup('peerDependencies', {}); | ||
} | ||
modulePath; | ||
constructor(modulePath) { | ||
this.modulePath = modulePath; | ||
} | ||
getJson() { | ||
if (!this.json) { | ||
this.json = require(path.join(this.modulePath, 'package.json')); | ||
this.json = objectPath(JSON.parse(readFileSync(path.join(this.modulePath, 'package.json'), 'utf8'))); | ||
} | ||
@@ -43,2 +42,2 @@ return this.json; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZUpzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUGFja2FnZUpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBQy9CLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQU14Qjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8sV0FBVztJQXNCOUIsWUFBWSxVQUFrQjtRQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBdkJEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBZ0IsRUFBRSxPQUFlO1FBQ3BELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFDRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBYyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQU1PLE9BQU87UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQzNCLElBQUksQ0FBQyxVQUFVLEVBQ2YsY0FBYyxDQUNmLENBQWlCLENBQUM7U0FDcEI7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZUpzb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvUGFja2FnZUpzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDbEMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBU3hCOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sT0FBTyxXQUFXO0lBQzlCLElBQUksQ0FBdUM7SUFDcEMsTUFBTSxDQUFJLE9BQWUsRUFBRSxRQUFZO1FBQzVDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxRQUFRLENBQUM7SUFDakQsQ0FBQztJQUNELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFDRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ08sVUFBVSxDQUFTO0lBQzNCLFlBQVksVUFBa0I7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUNPLE9BQU87UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUNwQixJQUFJLENBQUMsS0FBSyxDQUNSLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQ2pFLENBQ0YsQ0FBQztTQUNIO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FDRiJ9 |
import PackageJson from './PackageJson'; | ||
export declare type DependencyFinder = (found: string[], packageJson: PackageJson, rootDir: string, subject: string) => string[]; | ||
export type DependencyFinder = (found: string[], packageJson: PackageJson, rootDir: string, subject: string) => string[]; | ||
/** | ||
@@ -4,0 +4,0 @@ * A Node package which declares in its `package.json` file that it contains |
@@ -1,2 +0,2 @@ | ||
export declare type Resolver = (modulePath: string) => string | undefined; | ||
export type Resolver = (modulePath: string) => string | undefined; | ||
/** | ||
@@ -3,0 +3,0 @@ * Returns a function which resolves filesystem base directories, given module |
import path from 'path'; | ||
import pkgDir from 'pkg-dir'; | ||
import findRoot from 'find-root'; | ||
import resolvePkg from 'resolve-pkg'; | ||
@@ -12,3 +12,3 @@ /** | ||
if (path.isAbsolute(modulePath) || modulePath.startsWith('.')) { | ||
return pkgDir.sync(path.resolve(cwd, modulePath)); | ||
return findRoot(path.resolve(cwd, modulePath)); | ||
} | ||
@@ -18,2 +18,2 @@ return resolvePkg(modulePath, { cwd }); | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jlc29sdmVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQzdCLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUlyQzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxRQUFRLENBQUMsR0FBVztJQUMxQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDcEIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDbkQ7UUFDRCxPQUFPLFVBQVUsQ0FBQyxVQUFVLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQztBQUNKLENBQUMifQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jlc29sdmVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUlyQzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxRQUFRLENBQUMsR0FBVztJQUMxQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDcEIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDN0QsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNoRDtRQUNELE9BQU8sVUFBVSxDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9 |
import PertainError from './PertainError'; | ||
/* tslint:disable */ | ||
/* eslint-disable */ | ||
/** | ||
@@ -14,2 +14,3 @@ * Topologically sort a list of items of any type, given a list of items and | ||
export default class TopologicalSorter { | ||
outgoingFrom; | ||
constructor(outgoingFrom) { | ||
@@ -58,2 +59,2 @@ this.outgoingFrom = outgoingFrom; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9wb2xvZ2ljYWxTb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVG9wb2xvZ2ljYWxTb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsb0JBQW9CO0FBRXBCOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8saUJBQWlCO0lBRXBDLFlBQVksWUFBOEI7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUNNLElBQUksQ0FBQyxLQUFVO1FBQ3BCLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDMUIsTUFBTSxNQUFNLEdBQVEsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEMsTUFBTSxPQUFPLEdBQStCLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDZixxREFBcUQ7UUFDckQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1QyxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRTlCLE9BQU8sQ0FBQyxFQUFFLEVBQUU7WUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDaEQ7UUFFRCxPQUFPLE1BQU0sQ0FBQztRQUVkLFNBQVMsS0FBSyxDQUFDLElBQU8sRUFBRSxDQUFTLEVBQUUsWUFBb0I7WUFDckQsSUFBSSxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMxQixNQUFNLElBQUksWUFBWSxDQUFDLHdCQUF3QixJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ3hEO1lBRUQsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUFFLE9BQU87WUFDdkIsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztZQUVsQixNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFcEMsSUFBSSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3pCLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLEdBQUc7b0JBQ0QsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQzFCLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztpQkFDNUQsUUFBUSxDQUFDLEVBQUU7Z0JBQ1osWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMzQjtZQUVELE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUNPLGFBQWEsQ0FBQyxHQUFRO1FBQzVCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFhLENBQUM7UUFDakMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5QyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNwQjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9wb2xvZ2ljYWxTb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvVG9wb2xvZ2ljYWxTb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsb0JBQW9CO0FBRXBCOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8saUJBQWlCO0lBQzVCLFlBQVksQ0FBbUI7SUFDdkMsWUFBWSxZQUE4QjtRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBQ00sSUFBSSxDQUFDLEtBQVU7UUFDcEIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMxQixNQUFNLE1BQU0sR0FBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxNQUFNLE9BQU8sR0FBK0IsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNmLHFEQUFxRDtRQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVDLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFOUIsT0FBTyxDQUFDLEVBQUUsRUFBRTtZQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNoRDtRQUVELE9BQU8sTUFBTSxDQUFDO1FBRWQsU0FBUyxLQUFLLENBQUMsSUFBTyxFQUFFLENBQVMsRUFBRSxZQUFvQjtZQUNyRCxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzFCLE1BQU0sSUFBSSxZQUFZLENBQUMsd0JBQXdCLElBQUksRUFBRSxDQUFDLENBQUM7YUFDeEQ7WUFFRCxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQUUsT0FBTztZQUN2QixPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBRWxCLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVwQyxJQUFJLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDekIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkIsR0FBRztvQkFDRCxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDMUIsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO2lCQUM1RCxRQUFRLENBQUMsRUFBRTtnQkFDWixZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzNCO1lBRUQsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBQ08sYUFBYSxDQUFDLEdBQVE7UUFDNUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQWEsQ0FBQztRQUNqQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0NBQ0YifQ== |
@@ -5,2 +5,4 @@ # Changelog | ||
### [0.2.1](https://github.com/zetlen/pertain/compare/v0.2.0...v0.2.1) (2023-05-22) | ||
## [0.2.0](https://github.com/zetlen/pertain/compare/v0.1.11...v0.2.0) (2020-04-22) | ||
@@ -7,0 +9,0 @@ |
@@ -7,3 +7,3 @@ module.exports = { | ||
collectCoverage: true, | ||
collectCoverageFrom: ['./src/*.ts'], | ||
collectCoverageFrom: ['./src/*.ts', '!./src/**/index.ts'], | ||
coverageThreshold: { | ||
@@ -18,5 +18,4 @@ global: { | ||
moduleDirectories: ['node_modules', 'src/__tests__/__fixtures__'], | ||
testEnvironment: 'node', | ||
testMatch: ['**/__tests__/*.ts'], | ||
testPathIgnorePatterns: ['.d.ts'] | ||
}; |
{ | ||
"name": "pertain", | ||
"version": "0.2.0", | ||
"version": "0.2.1", | ||
"publishConfig": { | ||
@@ -24,3 +24,3 @@ "access": "public" | ||
"ci:all": "run-s clean ci:typescript test:lint ci:unit ci:sendcov", | ||
"ci:typescript": "run-s \"build:* -- --noEmit --extendedDiagnostics --traceResolution\"", | ||
"ci:typescript": "run-s \"build:* -- --noEmit --extendedDiagnostics\"", | ||
"ci:sendcov": "codecov", | ||
@@ -30,6 +30,7 @@ "ci:unit": "jest --runInBand --no-bail", | ||
"fix:prettier": "prettier \"src/**/*.ts\" --write", | ||
"fix:tslint": "tslint --fix --project .", | ||
"fix:lint": "eslint --fix .", | ||
"lint": "npm run -s test:lint", | ||
"test": "run-s build test:*", | ||
"test:lint": "tslint --project . && prettier \"src/**/*.ts\" --list-different", | ||
"test:unit": "jest", | ||
"test:lint": "eslint .", | ||
"test:universal": "node testCjs.js", | ||
@@ -41,2 +42,3 @@ "watch": "run-s \"test:unit -- --watch\"", | ||
"clean": "rimraf build test", | ||
"prepare": "husky install", | ||
"prepare-release": "run-s reset test version" | ||
@@ -50,7 +52,2 @@ }, | ||
"homepage": "https://github.com/zetlen/pertain", | ||
"husky": { | ||
"hooks": { | ||
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS" | ||
} | ||
}, | ||
"engines": { | ||
@@ -60,25 +57,28 @@ "node": ">=10" | ||
"dependencies": { | ||
"debug": "~4.1.1", | ||
"dot-prop": "^5.2.0", | ||
"pkg-dir": "^4.2.0", | ||
"debug": "^4.3.4", | ||
"find-root": "^1.1.0", | ||
"object-path": "^0.11.8", | ||
"resolve-pkg": "^2.0.0" | ||
}, | ||
"devDependencies": { | ||
"@commitlint/cli": "^8.2.0", | ||
"@commitlint/config-conventional": "^8.2.0", | ||
"@types/debug": "^4.1.5", | ||
"@types/jest": "^25.2.1", | ||
"@types/node": "^13.13.2", | ||
"@commitlint/cli": "^17.6.3", | ||
"@commitlint/config-conventional": "^17.6.3", | ||
"@types/debug": "^4.1.7", | ||
"@types/find-root": "^1.1.2", | ||
"@types/jest": "^29.5.1", | ||
"@types/node": "^20.2.3", | ||
"@types/object-path": "^0.11.1", | ||
"@typescript-eslint/eslint-plugin": "^5.59.6", | ||
"@typescript-eslint/parser": "^5.59.6", | ||
"codecov": "^3.5.0", | ||
"husky": "^4.2.5", | ||
"jest": "^25.4.0", | ||
"eslint": "^8.41.0", | ||
"husky": "^8.0.3", | ||
"jest": "^29.5.0", | ||
"npm-run-all": "^4.1.5", | ||
"open-cli": "^6.0.1", | ||
"prettier": "^2.0.5", | ||
"rimraf": "^3.0.2", | ||
"standard-version": "^7.1.0", | ||
"ts-jest": "^25.4.0", | ||
"tslint": "^6.1.1", | ||
"tslint-config-prettier": "^1.18.0", | ||
"typescript": "^3.8.3" | ||
"open-cli": "^7.2.0", | ||
"prettier": "^2.8.8", | ||
"rimraf": "^5.0.1", | ||
"standard-version": "^9.5.0", | ||
"ts-jest": "^29.1.0", | ||
"typescript": "^5.0.4" | ||
}, | ||
@@ -85,0 +85,0 @@ "prettier": { |
@@ -50,3 +50,3 @@ import makeDebug from 'debug'; | ||
public dependsOn(name: string) { | ||
return this.pkg.peerDependencies.hasOwnProperty(name); | ||
return Reflect.has(this.pkg.peerDependencies,name); | ||
} | ||
@@ -66,3 +66,3 @@ | ||
public pertains(subject: string) { | ||
const pertaining = PackageJson.lookup(this.pkg, subject); | ||
const pertaining = this.pkg.lookup(subject); | ||
@@ -69,0 +69,0 @@ // Only strings can be file paths, so anything else does not pertain |
@@ -1,7 +0,11 @@ | ||
import dotProp from 'dot-prop'; | ||
import objectPath from 'object-path'; | ||
import { readFileSync } from 'fs'; | ||
import path from 'path'; | ||
export interface JsonMap<T> { | ||
[key: string]: T; | ||
} | ||
type PkgData = { | ||
name: string; | ||
dependencies: Record<string, string>; | ||
devDependencies: Record<string, string>; | ||
peerDependencies: Record<string, string>; | ||
}; | ||
@@ -18,22 +22,18 @@ /** | ||
export default class PackageJson { | ||
/** | ||
* Look up a custom dot-path on a package.json instance. Abstracting this | ||
* simple operation behind a static method helps us to keep this loading lazy. | ||
*/ | ||
public static lookup(pkg: PackageJson, dotPath: string) { | ||
return dotProp.get(pkg.getJson(), dotPath); | ||
json!: objectPath.ObjectPathBound<PkgData>; | ||
public lookup<T>(dotPath: string, fallback?: T): T { | ||
return this.getJson().get(dotPath) || fallback; | ||
} | ||
public get dependencies(): JsonMap<string> { | ||
return this.getJson().dependencies || {}; | ||
public get dependencies(): Record<string, string> { | ||
return this.lookup('dependencies', {}); | ||
} | ||
public get devDependencies(): JsonMap<string> { | ||
return this.getJson().devDependencies || {}; | ||
public get devDependencies(): Record<string, string> { | ||
return this.lookup('devDependencies', {}); | ||
} | ||
public get name(): string { | ||
return this.getJson().name as string; | ||
return this.lookup('name'); | ||
} | ||
public get peerDependencies(): JsonMap<string> { | ||
return this.getJson().peerDependencies || {}; | ||
public get peerDependencies(): Record<string, string> { | ||
return this.lookup('peerDependencies', {}); | ||
} | ||
private json: JsonMap<any> | undefined; | ||
private modulePath: string; | ||
@@ -43,8 +43,9 @@ constructor(modulePath: string) { | ||
} | ||
private getJson(): JsonMap<any> { | ||
private getJson() { | ||
if (!this.json) { | ||
this.json = require(path.join( | ||
this.modulePath, | ||
'package.json' | ||
)) as JsonMap<any>; | ||
this.json = objectPath( | ||
JSON.parse( | ||
readFileSync(path.join(this.modulePath, 'package.json'), 'utf8') | ||
) | ||
); | ||
} | ||
@@ -51,0 +52,0 @@ return this.json; |
import path from 'path'; | ||
import pkgDir from 'pkg-dir'; | ||
import findRoot from 'find-root'; | ||
import resolvePkg from 'resolve-pkg'; | ||
@@ -15,3 +15,3 @@ | ||
if (path.isAbsolute(modulePath) || modulePath.startsWith('.')) { | ||
return pkgDir.sync(path.resolve(cwd, modulePath)); | ||
return findRoot(path.resolve(cwd, modulePath)); | ||
} | ||
@@ -18,0 +18,0 @@ return resolvePkg(modulePath, { cwd }); |
import PertainError from './PertainError'; | ||
/* tslint:disable */ | ||
/* eslint-disable */ | ||
@@ -4,0 +4,0 @@ /** |
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
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
127285
70
1675
20
+ Addedfind-root@^1.1.0
+ Addedobject-path@^0.11.8
+ Addeddebug@4.3.4(transitive)
+ Addedfind-root@1.1.0(transitive)
+ Addedms@2.1.2(transitive)
+ Addedobject-path@0.11.8(transitive)
- Removeddot-prop@^5.2.0
- Removedpkg-dir@^4.2.0
- Removeddebug@4.1.1(transitive)
- Removeddot-prop@5.3.0(transitive)
- Removedfind-up@4.1.0(transitive)
- Removedis-obj@2.0.0(transitive)
- Removedlocate-path@5.0.0(transitive)
- Removedms@2.1.3(transitive)
- Removedp-limit@2.3.0(transitive)
- Removedp-locate@4.1.0(transitive)
- Removedp-try@2.2.0(transitive)
- Removedpath-exists@4.0.0(transitive)
- Removedpkg-dir@4.2.0(transitive)
Updateddebug@^4.3.4