1
1
import RegisterLoader from 'es-module-loader/core/register-loader.js' ;
2
- import { InternalModuleNamespace as ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js' ;
2
+ import { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js' ;
3
3
4
4
import { isNode , baseURI , pathToFileUrl , fileUrlToPath } from 'es-module-loader/core/common.js' ;
5
- import { resolveUrlToParentIfNotPlain } from 'es-module-loader/core/resolve.js' ;
5
+ import { resolveIfNotPlain } from 'es-module-loader/core/resolve.js' ;
6
6
7
7
var babel = require ( 'babel-core' ) ;
8
+ var modulesRegister = require ( 'babel-plugin-transform-es2015-modules-systemjs' ) ;
9
+ var importSyntax = require ( 'babel-plugin-syntax-dynamic-import' ) ;
8
10
var path = require ( 'path' ) ;
9
11
var Module = require ( 'module' ) ;
10
12
var fs = require ( 'fs' ) ;
@@ -28,7 +30,7 @@ function NodeESModuleLoader(baseKey, rcPath) {
28
30
throw new Error ( 'Node module loader can only be used in Node' ) ;
29
31
30
32
if ( baseKey )
31
- baseKey = resolveUrlToParentIfNotPlain ( baseKey , baseURI ) || resolveUrlToParentIfNotPlain ( './' + baseKey , baseURI ) ;
33
+ baseKey = resolveIfNotPlain ( baseKey , baseURI ) || resolveIfNotPlain ( './' + baseKey , baseURI ) ;
32
34
33
35
if ( rcPath ) {
34
36
if ( typeof rcPath !== 'string' )
@@ -49,8 +51,9 @@ function NodeESModuleLoader(baseKey, rcPath) {
49
51
NodeESModuleLoader . prototype = Object . create ( RegisterLoader . prototype ) ;
50
52
51
53
// normalize is never given a relative name like "./x", that part is already handled
52
- NodeESModuleLoader . prototype [ RegisterLoader . resolve ] = function ( key , parent , metadata ) {
53
- key = RegisterLoader . prototype [ RegisterLoader . resolve ] . call ( this , key , parent , metadata ) || key ;
54
+ NodeESModuleLoader . prototype [ RegisterLoader . resolve ] = function ( key , parent ) {
55
+ parent = parent || baseURI ;
56
+ key = RegisterLoader . prototype [ RegisterLoader . resolve ] . call ( this , key , parent ) || key ;
54
57
55
58
return Promise . resolve ( )
56
59
. then ( function ( ) {
@@ -66,7 +69,7 @@ NodeESModuleLoader.prototype[RegisterLoader.resolve] = function(key, parent, met
66
69
67
70
// instantiate just needs to run System.register
68
71
// so we fetch the source, convert into the Babel System module format, then evaluate it
69
- NodeESModuleLoader . prototype [ RegisterLoader . instantiate ] = function ( key , metadata , processAnonRegister ) {
72
+ NodeESModuleLoader . prototype [ RegisterLoader . instantiate ] = function ( key , processAnonRegister ) {
70
73
var loader = this ;
71
74
72
75
// first, try to load the module as CommonJS
@@ -90,7 +93,7 @@ NodeESModuleLoader.prototype[RegisterLoader.instantiate] = function(key, metadat
90
93
sourceFileName : key ,
91
94
moduleIds : false ,
92
95
sourceMaps : 'both' ,
93
- plugins : [ require ( 'babel-plugin-transform-es2015-modules-systemjs' ) ] ,
96
+ plugins : [ importSyntax , modulesRegister ] ,
94
97
extends : loader . rcPath
95
98
} ) ;
96
99
0 commit comments