UNPKG

1.36 kBJavaScriptView Raw
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
35class 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
49module.exports = ModuleFactory;