[6a3a178] | 1 | /*
|
---|
| 2 | MIT License http://www.opensource.org/licenses/mit-license.php
|
---|
| 3 | Author Tobias Koppers @sokra
|
---|
| 4 | */
|
---|
| 5 |
|
---|
| 6 | "use strict";
|
---|
| 7 |
|
---|
| 8 | /** @typedef {import("../declarations/WebpackOptions").ResolveOptions} ResolveOptions */
|
---|
| 9 | /** @typedef {import("./Dependency")} Dependency */
|
---|
| 10 | /** @typedef {import("./Module")} Module */
|
---|
| 11 |
|
---|
| 12 | /**
|
---|
| 13 | * @typedef {Object} ModuleFactoryResult
|
---|
| 14 | * @property {Module=} module the created module or unset if no module was created
|
---|
| 15 | * @property {Set<string>=} fileDependencies
|
---|
| 16 | * @property {Set<string>=} contextDependencies
|
---|
| 17 | * @property {Set<string>=} missingDependencies
|
---|
| 18 | */
|
---|
| 19 |
|
---|
| 20 | /**
|
---|
| 21 | * @typedef {Object} ModuleFactoryCreateDataContextInfo
|
---|
| 22 | * @property {string} issuer
|
---|
| 23 | * @property {string | null=} issuerLayer
|
---|
| 24 | * @property {string} compiler
|
---|
| 25 | */
|
---|
| 26 |
|
---|
| 27 | /**
|
---|
| 28 | * @typedef {Object} ModuleFactoryCreateData
|
---|
| 29 | * @property {ModuleFactoryCreateDataContextInfo} contextInfo
|
---|
| 30 | * @property {ResolveOptions=} resolveOptions
|
---|
| 31 | * @property {string} context
|
---|
| 32 | * @property {Dependency[]} dependencies
|
---|
| 33 | */
|
---|
| 34 |
|
---|
| 35 | class ModuleFactory {
|
---|
| 36 | /* istanbul ignore next */
|
---|
| 37 | /**
|
---|
| 38 | * @abstract
|
---|
| 39 | * @param {ModuleFactoryCreateData} data data object
|
---|
| 40 | * @param {function(Error=, ModuleFactoryResult=): void} callback callback
|
---|
| 41 | * @returns {void}
|
---|
| 42 | */
|
---|
| 43 | create(data, callback) {
|
---|
| 44 | const AbstractMethodError = require("./AbstractMethodError");
|
---|
| 45 | throw new AbstractMethodError();
|
---|
| 46 | }
|
---|
| 47 | }
|
---|
| 48 |
|
---|
| 49 | module.exports = ModuleFactory;
|
---|