extract `buildExpression` to ParserHelpers.addParsedVariableToModule
rewrite affected modules
This commit is contained in:
parent
c6a8891367
commit
d056ba7d40
|
@ -3,6 +3,8 @@
|
|||
Author Tobias Koppers @sokra
|
||||
*/
|
||||
"use strict";
|
||||
const path = require("path");
|
||||
|
||||
const BasicEvaluatedExpression = require("./BasicEvaluatedExpression");
|
||||
const ConstDependency = require("./dependencies/ConstDependency");
|
||||
const UnsupportedFeatureWarning = require("./UnsupportedFeatureWarning");
|
||||
|
@ -25,6 +27,14 @@ ParserHelpers.addParsedVariableToModule = function(parser, name, expression) {
|
|||
return true;
|
||||
};
|
||||
|
||||
ParserHelpers.requireFileAsExpression = function(context, pathToModule) {
|
||||
var moduleJsPath = path.relative(context, pathToModule);
|
||||
if(!/^[A-Z]:/i.test(moduleJsPath)) {
|
||||
moduleJsPath = "./" + moduleJsPath.replace(/\\/g, "/");
|
||||
}
|
||||
return "require(" + JSON.stringify(moduleJsPath) + ")";
|
||||
};
|
||||
|
||||
ParserHelpers.toConstantDependency = function(value) {
|
||||
return function constDependency(expr) {
|
||||
var dep = new ConstDependency(value, expr.range);
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
Author Tobias Koppers @sokra
|
||||
*/
|
||||
"use strict";
|
||||
const path = require("path");
|
||||
|
||||
const ParserHelpers = require("../ParserHelpers");
|
||||
|
||||
class SystemPlugin {
|
||||
|
@ -33,15 +31,9 @@ class SystemPlugin {
|
|||
setNotSupported("System.get");
|
||||
setNotSupported("System.register");
|
||||
parser.plugin("expression System", function() {
|
||||
function buildExpression(context, pathToModule) {
|
||||
var moduleJsPath = path.relative(context, pathToModule);
|
||||
if(!/^[A-Z]:/i.test(moduleJsPath)) {
|
||||
moduleJsPath = "./" + moduleJsPath.replace(/\\/g, "/");
|
||||
}
|
||||
return "require(" + JSON.stringify(moduleJsPath) + ")";
|
||||
}
|
||||
|
||||
return ParserHelpers.addParsedVariableToModule(this, "System", buildExpression(this.state.module.context, require.resolve("../../buildin/system.js")));
|
||||
const systemPolyfillRequire = ParserHelpers.requireFileAsExpression(
|
||||
this.state.module.context, require.resolve("../../buildin/system.js"));
|
||||
return ParserHelpers.addParsedVariableToModule(this, "System", systemPolyfillRequire);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
MIT License http://www.opensource.org/licenses/mit-license.php
|
||||
Author Tobias Koppers @sokra
|
||||
*/
|
||||
var path = require("path");
|
||||
var AliasPlugin = require("enhanced-resolve/lib/AliasPlugin");
|
||||
var ParserHelpers = require("../ParserHelpers");
|
||||
var nodeLibsBrowser = require("node-libs-browser");
|
||||
|
@ -25,19 +24,12 @@ NodeSourcePlugin.prototype.apply = function(compiler) {
|
|||
} else return module;
|
||||
}
|
||||
|
||||
function buildExpression(context, pathToModule) {
|
||||
var moduleJsPath = path.relative(context, pathToModule);
|
||||
if(!/^[A-Z]:/i.test(moduleJsPath)) {
|
||||
moduleJsPath = "./" + moduleJsPath.replace(/\\/g, "/");
|
||||
}
|
||||
return "require(" + JSON.stringify(moduleJsPath) + ")";
|
||||
}
|
||||
|
||||
function addExpression(parser, name, module, type, suffix) {
|
||||
suffix = suffix || "";
|
||||
parser.plugin("expression " + name, function() {
|
||||
if(this.state.module && this.state.module.resource === getPathToModule(module, type)) return;
|
||||
return ParserHelpers.addParsedVariableToModule(this, name, buildExpression(this.state.module.context, getPathToModule(module, type)) + suffix);
|
||||
var mockModule = ParserHelpers.requireFileAsExpression(this.state.module.context, getPathToModule(module, type));
|
||||
return ParserHelpers.addParsedVariableToModule(this, name, mockModule + suffix);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -53,7 +45,8 @@ NodeSourcePlugin.prototype.apply = function(compiler) {
|
|||
|
||||
if(localOptions.global) {
|
||||
parser.plugin("expression global", function() {
|
||||
return ParserHelpers.addParsedVariableToModule(this, "global", buildExpression(this.state.module.context, require.resolve("../../buildin/global.js")));
|
||||
var retrieveGlobalModule = ParserHelpers.requireFileAsExpression(this.state.module.context, require.resolve("../../buildin/global.js"));
|
||||
return ParserHelpers.addParsedVariableToModule(this, "global", retrieveGlobalModule);
|
||||
});
|
||||
}
|
||||
if(localOptions.process) {
|
||||
|
|
Loading…
Reference in New Issue