Skip to content

Commit 1c71c22

Browse files
committed
Fix crash when file has a transform and a syntax error
`parseDeps` returns undefined on a syntax error, so `deps.concat`ing it does not work. This patch early returns from `getDeps` if `deps` is undefined. This also changes `_transformDeps` to be initialised lazily once the first 'dep' event happens, so that we're not unnecessarily concating when there are no additional deps.
1 parent 2f82449 commit 1c71c22

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

index.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -263,9 +263,9 @@ Deps.prototype.getTransforms = function (file, pkg, opts) {
263263
if (typeof tr === 'function') {
264264
var t = tr(file, trOpts);
265265
// allow transforms to `stream.emit('dep', path)` to add dependencies for this file
266-
self._transformDeps[file] = [];
267266
t.on('dep', function (dep) {
268-
self._transformDeps[file].push(dep);
267+
if (!self._transformDeps[file]) self._transformDeps[file] = [];
268+
self._transformDeps[file].push(dep);
269269
});
270270
self.emit('transform', t, file);
271271
nextTick(cb, null, wrapTransform(t));
@@ -309,9 +309,9 @@ Deps.prototype.getTransforms = function (file, pkg, opts) {
309309

310310
var trs = r(file, trOpts);
311311
// allow transforms to `stream.emit('dep', path)` to add dependencies for this file
312-
self._transformDeps[file] = [];
313312
trs.on('dep', function (dep) {
314-
self._transformDeps[file].push(dep);
313+
if (!self._transformDeps[file]) self._transformDeps[file] = [];
314+
self._transformDeps[file].push(dep);
315315
});
316316
self.emit('transform', trs, file);
317317
cb(null, trs);
@@ -434,6 +434,7 @@ Deps.prototype.walk = function (id, parent, cb) {
434434

435435
function getDeps (file, src) {
436436
var deps = rec.noparse ? [] : self.parseDeps(file, src);
437+
if (!deps) return;
437438
// dependencies emitted by transforms
438439
if (self._transformDeps[file]) deps = deps.concat(self._transformDeps[file]);
439440
return deps;

0 commit comments

Comments
 (0)