49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
/*
|
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
Author Tobias Koppers @sokra
|
|
*/
|
|
|
|
"use strict";
|
|
|
|
/** @typedef {import("../declarations/WebpackOptions").ResolveOptions} ResolveOptions */
|
|
/** @typedef {import("./Dependency")} Dependency */
|
|
/** @typedef {import("./Module")} Module */
|
|
|
|
/**
|
|
* @typedef {Object} ModuleFactoryResult
|
|
* @property {Module=} module the created module or unset if no module was created
|
|
* @property {Set<string>=} fileDependencies
|
|
* @property {Set<string>=} contextDependencies
|
|
* @property {Set<string>=} missingDependencies
|
|
*/
|
|
|
|
/**
|
|
* @typedef {Object} ModuleFactoryCreateDataContextInfo
|
|
* @property {string} issuer
|
|
* @property {string | null=} issuerLayer
|
|
* @property {string} compiler
|
|
*/
|
|
|
|
/**
|
|
* @typedef {Object} ModuleFactoryCreateData
|
|
* @property {ModuleFactoryCreateDataContextInfo} contextInfo
|
|
* @property {ResolveOptions=} resolveOptions
|
|
* @property {string} context
|
|
* @property {Dependency[]} dependencies
|
|
*/
|
|
|
|
class ModuleFactory {
|
|
/* istanbul ignore next */
|
|
/**
|
|
* @abstract
|
|
* @param {ModuleFactoryCreateData} data data object
|
|
* @param {function(Error=, ModuleFactoryResult=): void} callback callback
|
|
* @returns {void}
|
|
*/
|
|
create(data, callback) {
|
|
const AbstractMethodError = require("./AbstractMethodError");
|
|
throw new AbstractMethodError();
|
|
}
|
|
}
|
|
|
|
module.exports = ModuleFactory;
|