summaryrefslogtreecommitdiffstats
path: root/node_modules/webpack/lib/webpack.js
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
commite06ec920f7a5d784e674c4c4b4e6d1da3dc7391d (patch)
tree55713f725f77b44ebfec86e4eec3ce33e71458ca /node_modules/webpack/lib/webpack.js
downloadwebsite_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.gz
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.bz2
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.zip
api, login, auth
Diffstat (limited to 'node_modules/webpack/lib/webpack.js')
-rw-r--r--node_modules/webpack/lib/webpack.js206
1 files changed, 206 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/webpack.js b/node_modules/webpack/lib/webpack.js
new file mode 100644
index 0000000..80f810b
--- /dev/null
+++ b/node_modules/webpack/lib/webpack.js
@@ -0,0 +1,206 @@
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+"use strict";
+
+const Compiler = require("./Compiler");
+const MultiCompiler = require("./MultiCompiler");
+const NodeEnvironmentPlugin = require("./node/NodeEnvironmentPlugin");
+const WebpackOptionsApply = require("./WebpackOptionsApply");
+const WebpackOptionsDefaulter = require("./WebpackOptionsDefaulter");
+const validateSchema = require("./validateSchema");
+const WebpackOptionsValidationError = require("./WebpackOptionsValidationError");
+const webpackOptionsSchema = require("../schemas/WebpackOptions.json");
+const RemovedPluginError = require("./RemovedPluginError");
+const version = require("../package.json").version;
+
+/** @typedef {import("../declarations/WebpackOptions").WebpackOptions} WebpackOptions */
+
+/**
+ * @param {WebpackOptions} options options object
+ * @param {function(Error=, Stats=): void=} callback callback
+ * @returns {Compiler | MultiCompiler} the compiler object
+ */
+const webpack = (options, callback) => {
+ const webpackOptionsValidationErrors = validateSchema(
+ webpackOptionsSchema,
+ options
+ );
+ if (webpackOptionsValidationErrors.length) {
+ throw new WebpackOptionsValidationError(webpackOptionsValidationErrors);
+ }
+ let compiler;
+ if (Array.isArray(options)) {
+ compiler = new MultiCompiler(
+ Array.from(options).map(options => webpack(options))
+ );
+ } else if (typeof options === "object") {
+ options = new WebpackOptionsDefaulter().process(options);
+
+ compiler = new Compiler(options.context);
+ compiler.options = options;
+ new NodeEnvironmentPlugin({
+ infrastructureLogging: options.infrastructureLogging
+ }).apply(compiler);
+ if (options.plugins && Array.isArray(options.plugins)) {
+ for (const plugin of options.plugins) {
+ if (typeof plugin === "function") {
+ plugin.call(compiler, compiler);
+ } else {
+ plugin.apply(compiler);
+ }
+ }
+ }
+ compiler.hooks.environment.call();
+ compiler.hooks.afterEnvironment.call();
+ compiler.options = new WebpackOptionsApply().process(options, compiler);
+ } else {
+ throw new Error("Invalid argument: options");
+ }
+ if (callback) {
+ if (typeof callback !== "function") {
+ throw new Error("Invalid argument: callback");
+ }
+ if (
+ options.watch === true ||
+ (Array.isArray(options) && options.some(o => o.watch))
+ ) {
+ const watchOptions = Array.isArray(options)
+ ? options.map(o => o.watchOptions || {})
+ : options.watchOptions || {};
+ return compiler.watch(watchOptions, callback);
+ }
+ compiler.run(callback);
+ }
+ return compiler;
+};
+
+exports = module.exports = webpack;
+exports.version = version;
+
+webpack.WebpackOptionsDefaulter = WebpackOptionsDefaulter;
+webpack.WebpackOptionsApply = WebpackOptionsApply;
+webpack.Compiler = Compiler;
+webpack.MultiCompiler = MultiCompiler;
+webpack.NodeEnvironmentPlugin = NodeEnvironmentPlugin;
+// @ts-ignore Global @this directive is not supported
+webpack.validate = validateSchema.bind(this, webpackOptionsSchema);
+webpack.validateSchema = validateSchema;
+webpack.WebpackOptionsValidationError = WebpackOptionsValidationError;
+
+const exportPlugins = (obj, mappings) => {
+ for (const name of Object.keys(mappings)) {
+ Object.defineProperty(obj, name, {
+ configurable: false,
+ enumerable: true,
+ get: mappings[name]
+ });
+ }
+};
+
+exportPlugins(exports, {
+ AutomaticPrefetchPlugin: () => require("./AutomaticPrefetchPlugin"),
+ BannerPlugin: () => require("./BannerPlugin"),
+ CachePlugin: () => require("./CachePlugin"),
+ ContextExclusionPlugin: () => require("./ContextExclusionPlugin"),
+ ContextReplacementPlugin: () => require("./ContextReplacementPlugin"),
+ DefinePlugin: () => require("./DefinePlugin"),
+ Dependency: () => require("./Dependency"),
+ DllPlugin: () => require("./DllPlugin"),
+ DllReferencePlugin: () => require("./DllReferencePlugin"),
+ EnvironmentPlugin: () => require("./EnvironmentPlugin"),
+ EvalDevToolModulePlugin: () => require("./EvalDevToolModulePlugin"),
+ EvalSourceMapDevToolPlugin: () => require("./EvalSourceMapDevToolPlugin"),
+ ExtendedAPIPlugin: () => require("./ExtendedAPIPlugin"),
+ ExternalsPlugin: () => require("./ExternalsPlugin"),
+ HashedModuleIdsPlugin: () => require("./HashedModuleIdsPlugin"),
+ HotModuleReplacementPlugin: () => require("./HotModuleReplacementPlugin"),
+ IgnorePlugin: () => require("./IgnorePlugin"),
+ LibraryTemplatePlugin: () => require("./LibraryTemplatePlugin"),
+ LoaderOptionsPlugin: () => require("./LoaderOptionsPlugin"),
+ LoaderTargetPlugin: () => require("./LoaderTargetPlugin"),
+ MemoryOutputFileSystem: () => require("./MemoryOutputFileSystem"),
+ Module: () => require("./Module"),
+ ModuleFilenameHelpers: () => require("./ModuleFilenameHelpers"),
+ NamedChunksPlugin: () => require("./NamedChunksPlugin"),
+ NamedModulesPlugin: () => require("./NamedModulesPlugin"),
+ NoEmitOnErrorsPlugin: () => require("./NoEmitOnErrorsPlugin"),
+ NormalModuleReplacementPlugin: () =>
+ require("./NormalModuleReplacementPlugin"),
+ PrefetchPlugin: () => require("./PrefetchPlugin"),
+ ProgressPlugin: () => require("./ProgressPlugin"),
+ ProvidePlugin: () => require("./ProvidePlugin"),
+ SetVarMainTemplatePlugin: () => require("./SetVarMainTemplatePlugin"),
+ SingleEntryPlugin: () => require("./SingleEntryPlugin"),
+ SourceMapDevToolPlugin: () => require("./SourceMapDevToolPlugin"),
+ Stats: () => require("./Stats"),
+ Template: () => require("./Template"),
+ UmdMainTemplatePlugin: () => require("./UmdMainTemplatePlugin"),
+ WatchIgnorePlugin: () => require("./WatchIgnorePlugin")
+});
+exportPlugins((exports.dependencies = {}), {
+ DependencyReference: () => require("./dependencies/DependencyReference")
+});
+exportPlugins((exports.optimize = {}), {
+ AggressiveMergingPlugin: () => require("./optimize/AggressiveMergingPlugin"),
+ AggressiveSplittingPlugin: () =>
+ require("./optimize/AggressiveSplittingPlugin"),
+ ChunkModuleIdRangePlugin: () =>
+ require("./optimize/ChunkModuleIdRangePlugin"),
+ LimitChunkCountPlugin: () => require("./optimize/LimitChunkCountPlugin"),
+ MinChunkSizePlugin: () => require("./optimize/MinChunkSizePlugin"),
+ ModuleConcatenationPlugin: () =>
+ require("./optimize/ModuleConcatenationPlugin"),
+ OccurrenceOrderPlugin: () => require("./optimize/OccurrenceOrderPlugin"),
+ OccurrenceModuleOrderPlugin: () =>
+ require("./optimize/OccurrenceModuleOrderPlugin"),
+ OccurrenceChunkOrderPlugin: () =>
+ require("./optimize/OccurrenceChunkOrderPlugin"),
+ RuntimeChunkPlugin: () => require("./optimize/RuntimeChunkPlugin"),
+ SideEffectsFlagPlugin: () => require("./optimize/SideEffectsFlagPlugin"),
+ SplitChunksPlugin: () => require("./optimize/SplitChunksPlugin")
+});
+exportPlugins((exports.web = {}), {
+ FetchCompileWasmTemplatePlugin: () =>
+ require("./web/FetchCompileWasmTemplatePlugin"),
+ JsonpTemplatePlugin: () => require("./web/JsonpTemplatePlugin")
+});
+exportPlugins((exports.webworker = {}), {
+ WebWorkerTemplatePlugin: () => require("./webworker/WebWorkerTemplatePlugin")
+});
+exportPlugins((exports.node = {}), {
+ NodeTemplatePlugin: () => require("./node/NodeTemplatePlugin"),
+ ReadFileCompileWasmTemplatePlugin: () =>
+ require("./node/ReadFileCompileWasmTemplatePlugin")
+});
+exportPlugins((exports.debug = {}), {
+ ProfilingPlugin: () => require("./debug/ProfilingPlugin")
+});
+exportPlugins((exports.util = {}), {
+ createHash: () => require("./util/createHash")
+});
+
+const defineMissingPluginError = (namespace, pluginName, errorMessage) => {
+ Object.defineProperty(namespace, pluginName, {
+ configurable: false,
+ enumerable: true,
+ get() {
+ throw new RemovedPluginError(errorMessage);
+ }
+ });
+};
+
+// TODO remove in webpack 5
+defineMissingPluginError(
+ exports.optimize,
+ "UglifyJsPlugin",
+ "webpack.optimize.UglifyJsPlugin has been removed, please use config.optimization.minimize instead."
+);
+
+// TODO remove in webpack 5
+defineMissingPluginError(
+ exports.optimize,
+ "CommonsChunkPlugin",
+ "webpack.optimize.CommonsChunkPlugin has been removed, please use config.optimization.splitChunks instead."
+);