Skip to content

Commit d729f5f

Browse files
committed
feat(experimental): dynamic import
1 parent 8803005 commit d729f5f

File tree

5 files changed

+13
-1
lines changed

5 files changed

+13
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"cheerio": "0.20.0",
2727
"color-logger": "0.0.3",
2828
"escape-html": "1.0.3",
29-
"babylon": "6.11.2",
29+
"babylon": "6.14.1",
3030
"babel-generator": "6.11.4",
3131
"babel-traverse": "6.12.0",
3232
"fs-extra": "0.30.0",

src/Parser/ESParser.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ export default class ESParser {
6969
if (experimental.asyncGenerators) option.plugins.push('asyncGenerators');
7070
if (experimental.decorators) option.plugins.push('decorators');
7171
if (experimental.exportExtensions) option.plugins.push('exportExtensions');
72+
if (experimental.dynamicImport) option.plugins.push('dynamicImport');
7273
}
7374

7475
return option;

src/Typedef/typedef.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
* @property {boolean} experimentalProposal.asyncGenerators
3838
* @property {boolean} experimentalProposal.decorators
3939
* @property {boolean} experimentalProposal.exportExtensions
40+
* @property {boolean} experimentalProposal.dynamicImport
4041
* @see https://esdoc.org/config.html
4142
*/
4243

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
for (let i = 0; i < 10; i++) {
2+
import(`mod${$i}.js`)
3+
.then(module => console.log(module))
4+
.catch(err => console.log(err));
5+
}

test/src/ParserTest/ESParserTest.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,9 @@ describe('ESParser', ()=>{
2727
const ast = ESParser.parse({experimentalProposal: {exportExtensions: true}}, './test/fixture/syntax/ExportExtensions.js');
2828
assert(ast.program.sourceType === 'module');
2929
});
30+
31+
it('can parse "dynamic import"', ()=>{
32+
const ast = ESParser.parse({experimentalProposal: {dynamicImport: true}}, './test/fixture/syntax/DynamicImport.js');
33+
assert(ast.program.sourceType === 'module');
34+
});
3035
});

0 commit comments

Comments
 (0)