first commit

This commit is contained in:
DanielRamirezGe
2020-01-14 20:43:08 -06:00
parent 3557894f7f
commit 5eecfbf6cd
26326 changed files with 2434803 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
"use strict";
const RequireEnsureItemDependency = require("./RequireEnsureItemDependency");
const RequireEnsureDependency = require("./RequireEnsureDependency");
const NullFactory = require("../NullFactory");
const RequireEnsureDependenciesBlockParserPlugin = require("./RequireEnsureDependenciesBlockParserPlugin");
const ParserHelpers = require("../ParserHelpers");
class RequireEnsurePlugin {
apply(compiler) {
compiler.hooks.compilation.tap(
"RequireEnsurePlugin",
(compilation, { normalModuleFactory }) => {
compilation.dependencyFactories.set(
RequireEnsureItemDependency,
normalModuleFactory
);
compilation.dependencyTemplates.set(
RequireEnsureItemDependency,
new RequireEnsureItemDependency.Template()
);
compilation.dependencyFactories.set(
RequireEnsureDependency,
new NullFactory()
);
compilation.dependencyTemplates.set(
RequireEnsureDependency,
new RequireEnsureDependency.Template()
);
const handler = (parser, parserOptions) => {
if (
parserOptions.requireEnsure !== undefined &&
!parserOptions.requireEnsure
)
return;
new RequireEnsureDependenciesBlockParserPlugin().apply(parser);
parser.hooks.evaluateTypeof
.for("require.ensure")
.tap(
"RequireEnsurePlugin",
ParserHelpers.evaluateToString("function")
);
parser.hooks.typeof
.for("require.ensure")
.tap(
"RequireEnsurePlugin",
ParserHelpers.toConstantDependency(
parser,
JSON.stringify("function")
)
);
};
normalModuleFactory.hooks.parser
.for("javascript/auto")
.tap("RequireEnsurePlugin", handler);
normalModuleFactory.hooks.parser
.for("javascript/dynamic")
.tap("RequireEnsurePlugin", handler);
}
);
}
}
module.exports = RequireEnsurePlugin;