when we encounter a different NodePath instance, ignore it and create a new one. this is going to thrash the tree and memory but npm and node module resolution is atrociously bad

This commit is contained in:
Sebastian McKenzie 2015-11-02 06:36:07 +00:00
parent 740c76e53a
commit 24f5ef50b0

View File

@ -77,15 +77,23 @@ export default class NodePath {
}
}
if (!(path instanceof NodePath)) {
if (path.constructor.name === "NodePath") {
// we're going to absolutley thrash the tree and allocate way too many node paths
// than is necessary but there's no way around this as the node module resolution
// algorithm is ridiculous
path = null;
} else {
// badly deserialised probably
throw new Error("We found a path that isn't a NodePath instance. Possiblly due to bad serialisation.");
}
}
if (!path) {
path = new NodePath(hub, parent);
paths.push(path);
}
if (!(path instanceof NodePath)) {
throw new Error("We found a path that isn't a NodePath instance");
}
path.setup(parentPath, container, listKey, key);
return path;