module-deps
Advanced tools
Comparing version 0.14.0 to 0.15.0
44
index.js
@@ -29,2 +29,3 @@ var fs = require('fs'); | ||
var pending = 0; | ||
var currentOrder = 0; | ||
@@ -36,2 +37,23 @@ var output = through(); | ||
var pushResult = (function () { | ||
var slots = {}; | ||
var upto = 0; | ||
return function (row, order) { | ||
if (row === null) { | ||
output.queue(null); | ||
} | ||
else if (order === upto) { | ||
output.queue(row); | ||
for (upto ++; slots[upto] !== undefined; upto++) { | ||
if (slots[upto]) output.queue(slots[upto]); | ||
delete slots[upto]; | ||
} | ||
} | ||
else { | ||
slots[order] = row; | ||
} | ||
}; | ||
})(); | ||
var top = { id: '/', filename: '/', paths: [] }; | ||
@@ -55,2 +77,3 @@ mains.forEach(function (main, ix) { | ||
pending ++; | ||
var order = currentOrder ++; | ||
@@ -67,3 +90,3 @@ if (typeof id === 'object') { | ||
var trx = getTransform(pkg); | ||
applyTransforms(id.file, trx, src, pkg); | ||
applyTransforms(id.file, trx, src, pkg, order); | ||
}); | ||
@@ -95,3 +118,4 @@ })); | ||
if (visited[file]) { | ||
if (--pending === 0) output.queue(null); | ||
pushResult(undefined, order); | ||
if (--pending === 0) pushResult(null); | ||
return; | ||
@@ -104,7 +128,7 @@ } | ||
if (cache && cache[file]) { | ||
parseDeps(file, cache[file], pkg); | ||
parseDeps(file, cache[file], pkg, order); | ||
} | ||
else fs.readFile(file, 'utf8', function (err, src) { | ||
if (err) return output.emit('error', err); | ||
applyTransforms(file, trx, src, pkg); | ||
applyTransforms(file, trx, src, pkg, order); | ||
}); | ||
@@ -126,3 +150,3 @@ }); | ||
function applyTransforms (file, trx, src, pkg) { | ||
function applyTransforms (file, trx, src, pkg, order) { | ||
var isTopLevel = mains.some(function (main) { | ||
@@ -150,10 +174,10 @@ var m = path.relative(path.dirname(main), file); | ||
function done () { | ||
parseDeps(file, src, pkg); | ||
parseDeps(file, src, pkg, order); | ||
} | ||
} | ||
function parseDeps (file, src, pkg) { | ||
function parseDeps (file, src, pkg, order) { | ||
var deps; | ||
if (!Buffer.isBuffer(src) && typeof src === 'object') { | ||
deps = Object.keys(src.deps); | ||
deps = Object.keys(src.deps).sort(); | ||
src = src.source; | ||
@@ -203,4 +227,4 @@ } | ||
} | ||
output.queue(rec); | ||
if (--pending === 0) output.queue(null); | ||
pushResult(rec, order); | ||
if (--pending === 0) pushResult(null); | ||
} | ||
@@ -207,0 +231,0 @@ } |
{ | ||
"name": "module-deps", | ||
"version": "0.14.0", | ||
"version": "0.15.0", | ||
"description": "walk the dependency graph to generate json output that can be fed into browser-pack", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
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
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
28628
665