UNPKG

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