You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
768 B

4 years ago
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
"use strict";
const NullDependency = require("./NullDependency");
class LocalModuleDependency extends NullDependency {
constructor(localModule, range, callNew) {
super();
localModule.flagUsed();
this.localModule = localModule;
this.range = range;
this.callNew = callNew;
}
}
LocalModuleDependency.Template = class LocalModuleDependencyTemplate {
apply(dep, source) {
if (!dep.range) return;
const moduleInstance = dep.callNew
? `new (function () { return ${dep.localModule.variableName()}; })()`
: dep.localModule.variableName();
source.replace(dep.range[0], dep.range[1] - 1, moduleInstance);
}
};
module.exports = LocalModuleDependency;