Skip to content
This repository was archived by the owner on Dec 4, 2022. It is now read-only.

Commit 5cb1b6c

Browse files
authored
fix es6 with dynamic import to not show as missing dependencies (#96)
1 parent 115af0b commit 5cb1b6c

File tree

4 files changed

+28
-3
lines changed

4 files changed

+28
-3
lines changed

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
77

88
## [unreleased]
99

10-
## [2.0.5-dev.1] - 2019-03-10
10+
## [2.0.5-dev.2] - 2019-04-17
11+
12+
- fix es6 with dynamic import to not show as missing dependencies
13+
14+
## [2.0.5-dev.1] - 2019-04-16
1115

1216
- improve performance by lazy load all external packages and internal files
1317

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "bit-javascript",
3-
"version": "2.0.5-dev.1",
3+
"version": "2.0.5-dev.2",
44
"scripts": {
55
"flow": "flow; test $? -eq 0 -o $? -eq 2",
66
"lint": "eslint src && flow check || true",

src/dependency-builder/dependency-tree/index.spec.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -865,4 +865,23 @@ describe('dependencyTree', function () {
865865
expect(dependencies).to.be.ok;
866866
});
867867
});
868+
describe('files with dynamic import', () => {
869+
it('should not', () => {
870+
mockfs({
871+
[`${__dirname}/dynamic`]: {
872+
'foo.js': 'const a = "./b"; import(a); require(a);'
873+
}
874+
});
875+
const directory = path.normalize(`${__dirname}/dynamic`);
876+
const filename = path.normalize(`${directory}/foo.js`);
877+
const visited = {};
878+
879+
dependencyTree({
880+
filename,
881+
directory,
882+
visited
883+
});
884+
expect(visited[filename].missing).to.be.undefined;
885+
});
886+
});
868887
});

src/dependency-builder/detectives/detective-es6/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,13 @@ module.exports = function (src) {
6868
}
6969
break;
7070
case 'CallExpression':
71-
if (node.callee.type === 'Import' && node.arguments.length) {
71+
if (node.callee.type === 'Import' && node.arguments.length && node.arguments[0].value) {
7272
addDependency(node.arguments[0].value);
7373
}
7474
if (
7575
node.callee.type === 'Identifier' && // taken from detective-cjs
7676
node.callee.name === 'require' &&
77+
node.arguments[0].value &&
7778
node.arguments &&
7879
node.arguments.length &&
7980
(node.arguments[0].type === 'Literal' || node.arguments[0].type === 'StringLiteral')
@@ -88,6 +89,7 @@ module.exports = function (src) {
8889
node.object.callee.name === 'require' &&
8990
node.object.arguments &&
9091
node.object.arguments.length &&
92+
node.object.arguments[0].value &&
9193
(node.object.arguments[0].type === 'Literal' || node.object.arguments[0].type === 'StringLiteral')
9294
) {
9395
const depValue = node.object.arguments[0].value;

0 commit comments

Comments
 (0)