mirror of
https://github.com/systemjs/systemjs.git
synced 2026-02-01 15:59:54 +00:00
treat transpilers as plugins
This commit is contained in:
parent
232f994b74
commit
8fa13b5669
17
lib/esm.js
17
lib/esm.js
@ -44,7 +44,14 @@
|
||||
// do transpilation
|
||||
return (loader._loader.transpilerPromise || (
|
||||
loader._loader.transpilerPromise = Promise.resolve(
|
||||
__global[loader.transpiler == 'typescript' ? 'ts' : loader.transpiler] || (loader.pluginLoader || loader)['import'](loader.transpiler)
|
||||
__global[loader.transpiler == 'typescript' ? 'ts' : loader.transpiler] || (loader.pluginLoader || loader).normalize(loader.transpiler)
|
||||
.then(function(normalized) {
|
||||
loader._loader.transpilerNormalized = normalized;
|
||||
return (loader.pluginLoader || loader).load(normalized)
|
||||
.then(function() {
|
||||
return (loader.pluginLoader || loader).get(normalized);
|
||||
});
|
||||
})
|
||||
))).then(function(transpiler) {
|
||||
loader._loader.loadedTranspilerRuntime = true;
|
||||
|
||||
@ -53,6 +60,8 @@
|
||||
// if transpiler is the same as the plugin loader, then don't run twice
|
||||
if (transpiler == load.metadata.loaderModule)
|
||||
return load.source;
|
||||
load.metadata.loaderModule = transpiler;
|
||||
load.metadata.loader = loader._loader.transpilerNormalized;
|
||||
|
||||
// convert the source map into an object for transpilation chaining
|
||||
if (typeof load.metadata.sourceMap == 'string')
|
||||
@ -64,7 +73,7 @@
|
||||
var sourceMap = load.metadata.sourceMap;
|
||||
if (sourceMap && typeof sourceMap == 'object') {
|
||||
var originalName = load.address.split('!')[0];
|
||||
|
||||
|
||||
// force set the filename of the original file
|
||||
if (!sourceMap.file || sourceMap.file == load.address)
|
||||
sourceMap.file = originalName + '!transpiled';
|
||||
@ -83,14 +92,14 @@
|
||||
// legacy builder support
|
||||
if (loader.builder)
|
||||
load.metadata.originalSource = load.source;
|
||||
|
||||
|
||||
// defined in es6-module-loader/src/transpile.js
|
||||
return transpile.call(loader, load)
|
||||
.then(function(source) {
|
||||
// clear sourceMap as transpiler embeds it
|
||||
load.metadata.sourceMap = undefined;
|
||||
return source;
|
||||
});
|
||||
});
|
||||
}, function(err) {
|
||||
throw addToError(err, 'Unable to load transpiler to transpile ' + load.name);
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user