Skip to content

Commit a2a98bc

Browse files
satya164zamotany
authored andcommitted
fix: get dependencies during evaluation (#338)
closes #330
1 parent ba45d81 commit a2a98bc

File tree

3 files changed

+7
-37
lines changed

3 files changed

+7
-37
lines changed

src/__tests__/__snapshots__/preval.test.js.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ CSS:
407407
;
408408
}
409409
410-
Dependencies: NA
410+
Dependencies: core-js/modules/es6.string.raw
411411
412412
`;
413413

src/babel/evaluate.js

Lines changed: 2 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -107,41 +107,6 @@ module.exports = function evaluate(
107107
});
108108
}
109109

110-
// Collect the list of dependencies that we import
111-
const dependencies = requirements.reduce((deps, req) => {
112-
if (t.isImportDeclaration(req.path.parentPath)) {
113-
deps.push(req.path.parentPath.node.source.value);
114-
} else {
115-
req.path.traverse({
116-
CallExpression(p) {
117-
const { callee, arguments: args } = p.node;
118-
119-
let name;
120-
121-
if (callee.name === 'require' && args.length === 1) {
122-
if (
123-
args[0].type === 'Literal' ||
124-
args[0].type === 'StringLiteral'
125-
) {
126-
name = args[0].value;
127-
} else if (
128-
args[0].type === 'TemplateLiteral' &&
129-
args[0].quasis.length === 1
130-
) {
131-
name = args[0].quasis[0].value.cooked;
132-
}
133-
}
134-
135-
if (name) {
136-
deps.push(name);
137-
}
138-
},
139-
});
140-
}
141-
142-
return deps;
143-
}, []);
144-
145110
const expression = t.expressionStatement(
146111
t.assignmentExpression(
147112
'=',
@@ -182,6 +147,7 @@ module.exports = function evaluate(
182147

183148
const m = new Module(filename);
184149

150+
m.dependencies = [];
185151
m.transform =
186152
typeof transformer !== 'undefined'
187153
? transformer
@@ -278,6 +244,6 @@ module.exports = function evaluate(
278244

279245
return {
280246
value: m.exports,
281-
dependencies,
247+
dependencies: ((m.dependencies: any): string[]),
282248
};
283249
};

src/babel/module.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ class Module {
8181

8282
extensions: string[];
8383

84+
dependencies: ?(string[]);
85+
8486
transform: ?(text: string) => { code: string };
8587

8688
constructor(filename: string) {
@@ -159,6 +161,8 @@ class Module {
159161
);
160162
}
161163

164+
this.dependencies && this.dependencies.push(id);
165+
162166
let m = cache[filename];
163167

164168
if (!m) {

0 commit comments

Comments
 (0)