UNPKG

webpack

Version:

Packs ECMAScript/CommonJs/AMD modules for the browser. Allows you to split your codebase into multiple bundles, which can be loaded on demand. Supports loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.

77 lines (66 loc) 3.18 kB
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; /** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */ /** @typedef {import("./ChunkGraph")} ChunkGraph */ /** @typedef {import("./CodeGenerationResults")} CodeGenerationResults */ /** @typedef {import("./ConcatenationScope")} ConcatenationScope */ /** @typedef {import("./Dependency")} Dependency */ /** @typedef {import("./Dependency").RuntimeSpec} RuntimeSpec */ /** @typedef {import("./DependencyTemplates")} DependencyTemplates */ /** @typedef {import("./Generator").GenerateContext} GenerateContext */ /** @typedef {import("./Module")} Module */ /** @typedef {import("./Module").RuntimeRequirements} RuntimeRequirements */ /** @typedef {import("./ModuleGraph")} ModuleGraph */ /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */ /** * Defines the init fragment type used by this module. * @template T * @typedef {import("./InitFragment")<T>} InitFragment */ /** * Defines the dependency template context type used by this module. * @typedef {object} DependencyTemplateContext * @property {RuntimeTemplate} runtimeTemplate the runtime template * @property {DependencyTemplates} dependencyTemplates the dependency templates * @property {ModuleGraph} moduleGraph the module graph * @property {ChunkGraph} chunkGraph the chunk graph * @property {RuntimeRequirements} runtimeRequirements the requirements for runtime * @property {Module} module current module * @property {RuntimeSpec} runtime current runtimes, for which code is generated * @property {InitFragment<GenerateContext>[]} initFragments mutable array of init fragments for the current module * @property {ConcatenationScope=} concatenationScope when in a concatenated module, information about other concatenated modules * @property {CodeGenerationResults} codeGenerationResults the code generation results * @property {InitFragment<GenerateContext>[]} chunkInitFragments chunkInitFragments */ /** * Defines the css dependency template context extras type used by this module. * @typedef {object} CssDependencyTemplateContextExtras * @property {CssData} cssData the css exports data * @property {string} type the css exports data */ /** * Defines the css data type used by this module. * @typedef {object} CssData * @property {boolean} esModule whether export __esModule * @property {Map<string, string>} exports the css exports */ /** @typedef {DependencyTemplateContext & CssDependencyTemplateContextExtras} CssDependencyTemplateContext */ class DependencyTemplate { /* istanbul ignore next */ /** * Applies the plugin by registering its hooks on the compiler. * @abstract * @param {Dependency} dependency the dependency for which the template should be applied * @param {ReplaceSource} source the current replace source which can be modified * @param {DependencyTemplateContext} templateContext the context object * @returns {void} */ apply(dependency, source, templateContext) { const AbstractMethodError = require("./AbstractMethodError"); throw new AbstractMethodError(); } } module.exports = DependencyTemplate;