UNPKG

1.64 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.BaseIncludePlugin = void 0;
4const IncludeDependency_1 = require("./IncludeDependency");
5const webpack = require("webpack");
6const TAP_NAME = "Aurelia:BaseInclude";
7const NullDependency = webpack.dependencies.NullDependency;
8class BaseIncludePlugin {
9 apply(compiler) {
10 compiler.hooks.compilation.tap(TAP_NAME, (compilation, data) => {
11 const normalModuleFactory = data.normalModuleFactory;
12 compilation.dependencyFactories.set(IncludeDependency_1.IncludeDependency, normalModuleFactory);
13 compilation.dependencyTemplates.set(IncludeDependency_1.IncludeDependency, new NullDependency.Template());
14 const handler = (parser) => {
15 const addDependency = (request) => {
16 let options = typeof request === 'object' ? request : undefined;
17 let name = options ? options.name : request;
18 parser.state.current.addDependency(new IncludeDependency_1.IncludeDependency(name, options));
19 };
20 this.parser(compilation, parser, addDependency);
21 };
22 normalModuleFactory.hooks.parser.for("javascript/auto").tap(TAP_NAME, handler);
23 normalModuleFactory.hooks.parser.for("javascript/dynamic").tap(TAP_NAME, handler);
24 normalModuleFactory.hooks.parser.for("javascript/esm").tap(TAP_NAME, handler);
25 });
26 }
27 parser(compilation, parser, add) {
28 /* Meant to be overriden */
29 }
30}
31exports.BaseIncludePlugin = BaseIncludePlugin;