flora-colossus
Advanced tools
Comparing version 1.0.0 to 1.0.1
@@ -6,5 +6,5 @@ export declare enum DepType { | ||
DEV_OPTIONAL = 3, | ||
ROOT = 4, | ||
ROOT = 4 | ||
} | ||
export declare const depTypeGreater: (newType: DepType, existing: DepType) => boolean; | ||
export declare const childDepType: (parentType: DepType, childType: DepType) => DepType.PROD | DepType.DEV | DepType.OPTIONAL | DepType.DEV_OPTIONAL; | ||
export declare const childDepType: (parentType: DepType, childType: DepType) => DepType.PROD | DepType.PROD | DepType.DEV | DepType.DEV | DepType.OPTIONAL | DepType.OPTIONAL | DepType.DEV_OPTIONAL | DepType.DEV_OPTIONAL; |
@@ -0,0 +0,0 @@ "use strict"; |
export * from './Walker'; | ||
export * from './depTypes'; |
@@ -0,0 +0,0 @@ "use strict"; |
import { DepType } from './depTypes'; | ||
import { NativeModuleType } from './nativeModuleTypes'; | ||
export declare type VersionRange = string; | ||
@@ -18,2 +19,3 @@ export interface PackageJSON { | ||
depType: DepType; | ||
nativeModuleType: NativeModuleType; | ||
name: string; | ||
@@ -26,6 +28,7 @@ } | ||
constructor(modulePath: string); | ||
private relativeModule(rootPath, moduleName); | ||
private loadPackageJSON(modulePath); | ||
private walkDependenciesForModuleInModule(moduleName, modulePath, depType); | ||
private walkDependenciesForModule(modulePath, depType); | ||
private relativeModule; | ||
private loadPackageJSON; | ||
private walkDependenciesForModuleInModule; | ||
private detectNativeModuleType; | ||
private walkDependenciesForModule; | ||
private cache; | ||
@@ -32,0 +35,0 @@ walkTree(): Promise<Module[]>; |
@@ -17,4 +17,4 @@ "use strict"; | ||
while (_) try { | ||
if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [0, t.value]; | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
@@ -43,2 +43,3 @@ case 0: case 1: t = op; break; | ||
var depTypes_1 = require("./depTypes"); | ||
var nativeModuleTypes_1 = require("./nativeModuleTypes"); | ||
var d = debug('flora-colossus'); | ||
@@ -123,7 +124,25 @@ var Walker = /** @class */ (function () { | ||
}; | ||
Walker.prototype.detectNativeModuleType = function (modulePath, pJ) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
if (!pJ.dependencies['prebuild-install']) return [3 /*break*/, 1]; | ||
return [2 /*return*/, nativeModuleTypes_1.NativeModuleType.PREBUILD]; | ||
case 1: return [4 /*yield*/, fs.pathExists(path.join(modulePath, 'binding.gyp'))]; | ||
case 2: | ||
if (_a.sent()) { | ||
return [2 /*return*/, nativeModuleTypes_1.NativeModuleType.NODE_GYP]; | ||
} | ||
_a.label = 3; | ||
case 3: return [2 /*return*/, nativeModuleTypes_1.NativeModuleType.NONE]; | ||
} | ||
}); | ||
}); | ||
}; | ||
Walker.prototype.walkDependenciesForModule = function (modulePath, depType) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var existingModule, pJ, _a, _b, _i, moduleName, _c, _d, _e, moduleName, _f, _g, _h, moduleName; | ||
return __generator(this, function (_j) { | ||
switch (_j.label) { | ||
var existingModule, pJ, _a, _b, _c, _d, _e, _i, moduleName, _f, _g, _h, moduleName, _j, _k, _l, moduleName; | ||
return __generator(this, function (_m) { | ||
switch (_m.label) { | ||
case 0: | ||
@@ -145,3 +164,3 @@ d('walk reached:', modulePath, ' Type is:', depTypes_1.DepType[depType]); | ||
case 1: | ||
pJ = _j.sent(); | ||
pJ = _m.sent(); | ||
// If the module doesn't have a package.json file it is probably a | ||
@@ -155,15 +174,20 @@ // dead install from yarn (they dont clean up for some reason) | ||
this.walkHistory.add(modulePath); | ||
this.modules.push({ | ||
depType: depType, | ||
path: modulePath, | ||
name: pJ.name, | ||
}); | ||
_a = []; | ||
for (_b in pJ.dependencies) | ||
_a.push(_b); | ||
_b = (_a = this.modules).push; | ||
_c = { | ||
depType: depType | ||
}; | ||
return [4 /*yield*/, this.detectNativeModuleType(modulePath, pJ)]; | ||
case 2: | ||
_b.apply(_a, [(_c.nativeModuleType = _m.sent(), | ||
_c.path = modulePath, | ||
_c.name = pJ.name, | ||
_c)]); | ||
_d = []; | ||
for (_e in pJ.dependencies) | ||
_d.push(_e); | ||
_i = 0; | ||
_j.label = 2; | ||
case 2: | ||
if (!(_i < _a.length)) return [3 /*break*/, 5]; | ||
moduleName = _a[_i]; | ||
_m.label = 3; | ||
case 3: | ||
if (!(_i < _d.length)) return [3 /*break*/, 6]; | ||
moduleName = _d[_i]; | ||
// npm decides it's a funny thing to put optional dependencies in the "dependencies" section | ||
@@ -173,30 +197,12 @@ // after install, because that makes perfect sense | ||
d("found " + moduleName + " in prod deps of " + modulePath + " but it is also marked optional"); | ||
return [3 /*break*/, 4]; | ||
return [3 /*break*/, 5]; | ||
} | ||
return [4 /*yield*/, this.walkDependenciesForModuleInModule(moduleName, modulePath, depTypes_1.childDepType(depType, depTypes_1.DepType.PROD))]; | ||
case 3: | ||
_j.sent(); | ||
_j.label = 4; | ||
case 4: | ||
_m.sent(); | ||
_m.label = 5; | ||
case 5: | ||
_i++; | ||
return [3 /*break*/, 2]; | ||
case 5: | ||
if (!(depType === depTypes_1.DepType.ROOT)) return [3 /*break*/, 9]; | ||
d('we\'re still at the beginning, walking down the dev route'); | ||
_c = []; | ||
for (_d in pJ.devDependencies) | ||
_c.push(_d); | ||
_e = 0; | ||
_j.label = 6; | ||
return [3 /*break*/, 3]; | ||
case 6: | ||
if (!(_e < _c.length)) return [3 /*break*/, 9]; | ||
moduleName = _c[_e]; | ||
return [4 /*yield*/, this.walkDependenciesForModuleInModule(moduleName, modulePath, depTypes_1.childDepType(depType, depTypes_1.DepType.DEV))]; | ||
case 7: | ||
_j.sent(); | ||
_j.label = 8; | ||
case 8: | ||
_e++; | ||
return [3 /*break*/, 6]; | ||
case 9: | ||
_f = []; | ||
@@ -206,14 +212,32 @@ for (_g in pJ.optionalDependencies) | ||
_h = 0; | ||
_j.label = 10; | ||
case 10: | ||
if (!(_h < _f.length)) return [3 /*break*/, 13]; | ||
_m.label = 7; | ||
case 7: | ||
if (!(_h < _f.length)) return [3 /*break*/, 10]; | ||
moduleName = _f[_h]; | ||
return [4 /*yield*/, this.walkDependenciesForModuleInModule(moduleName, modulePath, depTypes_1.childDepType(depType, depTypes_1.DepType.OPTIONAL))]; | ||
case 8: | ||
_m.sent(); | ||
_m.label = 9; | ||
case 9: | ||
_h++; | ||
return [3 /*break*/, 7]; | ||
case 10: | ||
if (!(depType === depTypes_1.DepType.ROOT)) return [3 /*break*/, 14]; | ||
d('we\'re still at the beginning, walking down the dev route'); | ||
_j = []; | ||
for (_k in pJ.devDependencies) | ||
_j.push(_k); | ||
_l = 0; | ||
_m.label = 11; | ||
case 11: | ||
_j.sent(); | ||
_j.label = 12; | ||
if (!(_l < _j.length)) return [3 /*break*/, 14]; | ||
moduleName = _j[_l]; | ||
return [4 /*yield*/, this.walkDependenciesForModuleInModule(moduleName, modulePath, depTypes_1.childDepType(depType, depTypes_1.DepType.DEV))]; | ||
case 12: | ||
_h++; | ||
return [3 /*break*/, 10]; | ||
case 13: return [2 /*return*/]; | ||
_m.sent(); | ||
_m.label = 13; | ||
case 13: | ||
_l++; | ||
return [3 /*break*/, 11]; | ||
case 14: return [2 /*return*/]; | ||
} | ||
@@ -220,0 +244,0 @@ }); |
{ | ||
"name": "flora-colossus", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"description": "Walks your node_modules tree", | ||
@@ -10,2 +10,3 @@ "main": "lib/index.js", | ||
"prepublish": "npm run build", | ||
"pretest": "cd test/fixtures/xml2js && yarn --frozen-lockfile", | ||
"test": "mocha --require ts-node/register test/*_spec.ts" | ||
@@ -20,17 +21,19 @@ }, | ||
"devDependencies": { | ||
"@types/chai": "^4.0.10", | ||
"@types/debug": "^0.0.30", | ||
"@types/fs-extra": "^4.0.0", | ||
"@types/mocha": "^2.2.45", | ||
"@types/yargs": "^8.0.1", | ||
"chai": "^4.1.2", | ||
"mocha": "^4.1.0", | ||
"@types/chai": "^4.1.7", | ||
"@types/debug": "^0.0.31", | ||
"@types/fs-extra": "^5.0.4", | ||
"@types/mocha": "^5.2.5", | ||
"chai": "^4.2.0", | ||
"mocha": "^5.2.0", | ||
"sane": "^2.5.0", | ||
"ts-node": "^4.1.0", | ||
"typescript": "^2.4.2" | ||
"ts-node": "^7.0.1", | ||
"typescript": "^3.2.2" | ||
}, | ||
"dependencies": { | ||
"debug": "^3.1.0", | ||
"fs-extra": "^4.0.0" | ||
"debug": "^4.1.1", | ||
"fs-extra": "^7.0.0" | ||
}, | ||
"engines": { | ||
"node": ">= 6.0.0" | ||
} | ||
} |
@@ -0,0 +0,0 @@ Flora Colossus |
@@ -0,0 +0,0 @@ { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
9
17
474
80099
+ Addeddebug@4.4.0(transitive)
+ Addedfs-extra@7.0.1(transitive)
- Removeddebug@3.2.7(transitive)
- Removedfs-extra@4.0.3(transitive)
Updateddebug@^4.1.1
Updatedfs-extra@^7.0.0