UNPKG

1.32 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} compiler
24 */
25
26/**
27 * @typedef {Object} ModuleFactoryCreateData
28 * @property {ModuleFactoryCreateDataContextInfo} contextInfo
29 * @property {ResolveOptions=} resolveOptions
30 * @property {string} context
31 * @property {Dependency[]} dependencies
32 */
33
34class ModuleFactory {
35 /* istanbul ignore next */
36 /**
37 * @abstract
38 * @param {ModuleFactoryCreateData} data data object
39 * @param {function(Error=, ModuleFactoryResult=): void} callback callback
40 * @returns {void}
41 */
42 create(data, callback) {
43 const AbstractMethodError = require("./AbstractMethodError");
44 throw new AbstractMethodError();
45 }
46}
47
48module.exports = ModuleFactory;