From 9bce51f651aad297ef9eb6df832bfdaf1de05d84 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 22 四月 2026 14:27:54 +0800
Subject: [PATCH] 青岛推送
---
node_modules/webpack/lib/asset/AssetGenerator.js | 97 ++++++++++++++++++++++++++++++++++--------------
1 files changed, 68 insertions(+), 29 deletions(-)
diff --git a/node_modules/webpack/lib/asset/AssetGenerator.js b/node_modules/webpack/lib/asset/AssetGenerator.js
index a1e6a80..8af52f3 100644
--- a/node_modules/webpack/lib/asset/AssetGenerator.js
+++ b/node_modules/webpack/lib/asset/AssetGenerator.js
@@ -11,14 +11,17 @@
const Generator = require("../Generator");
const {
ASSET_AND_CSS_URL_TYPES,
- ASSET_AND_JS_AND_CSS_URL_TYPES,
- ASSET_AND_JS_TYPES,
+ ASSET_AND_JAVASCRIPT_AND_CSS_URL_TYPES,
+ ASSET_AND_JAVASCRIPT_TYPES,
ASSET_TYPES,
+ CSS_TYPE,
+ CSS_URL_TYPE,
CSS_URL_TYPES,
- JS_AND_CSS_URL_TYPES,
- JS_TYPES,
+ JAVASCRIPT_AND_CSS_URL_TYPES,
+ JAVASCRIPT_TYPE,
+ JAVASCRIPT_TYPES,
NO_TYPES
-} = require("../ModuleSourceTypesConstants");
+} = require("../ModuleSourceTypeConstants");
const { ASSET_MODULE_TYPE } = require("../ModuleTypeConstants");
const RuntimeGlobals = require("../RuntimeGlobals");
const CssUrlDependency = require("../dependencies/CssUrlDependency");
@@ -27,7 +30,7 @@
const memoize = require("../util/memoize");
const nonNumericOnlyHash = require("../util/nonNumericOnlyHash");
-const getMimeTypes = memoize(() => require("mime-types"));
+const getMimeTypes = memoize(() => require("../util/mimeTypes"));
/** @typedef {import("webpack-sources").Source} Source */
/** @typedef {import("../../declarations/WebpackOptions").AssetGeneratorDataUrlOptions} AssetGeneratorDataUrlOptions */
@@ -40,9 +43,11 @@
/** @typedef {import("../Compilation").AssetInfo} AssetInfo */
/** @typedef {import("../Generator").GenerateContext} GenerateContext */
/** @typedef {import("../Generator").UpdateHashContext} UpdateHashContext */
+/** @typedef {import("../Module")} Module */
/** @typedef {import("../Module").NameForCondition} NameForCondition */
/** @typedef {import("../Module").BuildInfo} BuildInfo */
/** @typedef {import("../Module").ConcatenationBailoutReasonContext} ConcatenationBailoutReasonContext */
+/** @typedef {import("../Module").SourceType} SourceType */
/** @typedef {import("../Module").SourceTypes} SourceTypes */
/** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../NormalModule")} NormalModule */
@@ -50,7 +55,10 @@
/** @typedef {import("../util/Hash")} Hash */
/** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
+/** @typedef {(source: string | Buffer, context: { filename: string, module: Module }) => string} DataUrlFunction */
+
/**
+ * Merges maybe arrays.
* @template T
* @template U
* @param {null | string | T[] | Set<T> | undefined} a a
@@ -58,15 +66,17 @@
* @returns {T[] & U[]} array
*/
const mergeMaybeArrays = (a, b) => {
+ /** @type {Set<T | U | null | undefined | string | Set<T> | Set<U>>} */
const set = new Set();
if (Array.isArray(a)) for (const item of a) set.add(item);
else set.add(a);
if (Array.isArray(b)) for (const item of b) set.add(item);
else set.add(b);
- return [...set];
+ return /** @type {T[] & U[]} */ ([.../** @type {Set<T | U>} */ (set)]);
};
/**
+ * Merges the provided values into a single result.
* @param {AssetInfo} a a
* @param {AssetInfo} b b
* @returns {AssetInfo} object
@@ -107,6 +117,7 @@
};
/**
+ * Merges related info.
* @param {NonNullable<AssetInfo["related"]>} a a
* @param {NonNullable<AssetInfo["related"]>} b b
* @returns {NonNullable<AssetInfo["related"]>} object
@@ -123,6 +134,7 @@
};
/**
+ * Encodes the provided encoding.
* @param {"base64" | false} encoding encoding
* @param {Source} source source
* @returns {string} encoded data
@@ -161,6 +173,7 @@
};
/**
+ * Decodes data uri content.
* @param {"base64" | false} encoding encoding
* @param {string} content content
* @returns {Buffer} decoded content
@@ -184,6 +197,7 @@
class AssetGenerator extends Generator {
/**
+ * Creates an instance of AssetGenerator.
* @param {ModuleGraph} moduleGraph the module graph
* @param {AssetGeneratorOptions["dataUrl"]=} dataUrlOptions the options for the data url
* @param {AssetModuleFilename=} filename override for output.assetModuleFilename
@@ -200,15 +214,22 @@
emit
) {
super();
+ /** @type {AssetGeneratorOptions["dataUrl"] | undefined} */
this.dataUrlOptions = dataUrlOptions;
+ /** @type {AssetModuleFilename | undefined} */
this.filename = filename;
+ /** @type {RawPublicPath | undefined} */
this.publicPath = publicPath;
+ /** @type {AssetModuleOutputPath | undefined} */
this.outputPath = outputPath;
+ /** @type {boolean | undefined} */
this.emit = emit;
+ /** @type {ModuleGraph} */
this._moduleGraph = moduleGraph;
}
/**
+ * Gets source file name.
* @param {NormalModule} module module
* @param {RuntimeTemplate} runtimeTemplate runtime template
* @returns {string} source file name
@@ -223,6 +244,7 @@
}
/**
+ * Gets full content hash.
* @param {NormalModule} module module
* @param {RuntimeTemplate} runtimeTemplate runtime template
* @returns {[string, string]} return full hash and non-numeric full hash
@@ -257,6 +279,7 @@
}
/**
+ * Gets filename with info.
* @param {NormalModule} module module for which the code should be generated
* @param {Pick<AssetResourceGeneratorOptions, "filename" | "outputPath">} generatorOptions generator options
* @param {{ runtime: RuntimeSpec, runtimeTemplate: RuntimeTemplate, chunkGraph: ChunkGraph }} generateContext context for generate
@@ -308,6 +331,7 @@
}
/**
+ * Gets asset path with info.
* @param {NormalModule} module module for which the code should be generated
* @param {Pick<AssetResourceGeneratorOptions, "publicPath">} generatorOptions generator options
* @param {GenerateContext} generateContext context for generate
@@ -329,9 +353,10 @@
runtimeTemplate
);
+ /** @type {undefined | string} */
let assetPath;
- if (generatorOptions.publicPath !== undefined && type === "javascript") {
+ if (generatorOptions.publicPath !== undefined && type === JAVASCRIPT_TYPE) {
const { path, info } = runtimeTemplate.compilation.getAssetPathWithInfo(
generatorOptions.publicPath,
{
@@ -346,7 +371,7 @@
assetPath = JSON.stringify(path + filename);
} else if (
generatorOptions.publicPath !== undefined &&
- type === "css-url"
+ type === CSS_URL_TYPE
) {
const { path, info } = runtimeTemplate.compilation.getAssetPathWithInfo(
generatorOptions.publicPath,
@@ -360,14 +385,14 @@
);
assetInfo = mergeAssetInfo(assetInfo, info);
assetPath = path + filename;
- } else if (type === "javascript") {
+ } else if (type === JAVASCRIPT_TYPE) {
// add __webpack_require__.p
runtimeRequirements.add(RuntimeGlobals.publicPath);
assetPath = runtimeTemplate.concatenation(
{ expr: RuntimeGlobals.publicPath },
filename
);
- } else if (type === "css-url") {
+ } else if (type === CSS_URL_TYPE) {
const compilation = runtimeTemplate.compilation;
const path =
compilation.outputOptions.publicPath === "auto"
@@ -386,6 +411,7 @@
}
/**
+ * Returns the reason this module cannot be concatenated, when one exists.
* @param {NormalModule} module module for which the bailout reason should be determined
* @param {ConcatenationBailoutReasonContext} context context
* @returns {string | undefined} reason why this module can't be concatenated, undefined when it can be concatenated
@@ -395,6 +421,7 @@
}
/**
+ * Returns mime type.
* @param {NormalModule} module module
* @returns {string} mime type
*/
@@ -405,7 +432,7 @@
);
}
- /** @type {string | boolean | undefined} */
+ /** @type {string | undefined} */
let mimeType =
/** @type {AssetGeneratorDataUrlOptions} */
(this.dataUrlOptions).mimetype;
@@ -447,12 +474,14 @@
}
/**
+ * Generates data uri.
* @param {NormalModule} module module for which the code should be generated
* @returns {string} DataURI
*/
generateDataUri(module) {
const source = /** @type {Source} */ (module.originalSource());
+ /** @type {string} */
let encodedSource;
if (typeof this.dataUrlOptions === "function") {
@@ -476,6 +505,7 @@
}
const mimeType = this.getMimeType(module);
+ /** @type {string} */
let encodedContent;
if (
@@ -486,7 +516,9 @@
/** @type {string} */ (module.resourceResolveData.encodedContent)
).equals(source.buffer())
) {
- encodedContent = module.resourceResolveData.encodedContent;
+ encodedContent =
+ /** @type {string} */
+ (module.resourceResolveData.encodedContent);
} else {
encodedContent = encodeDataUri(
/** @type {"base64" | false} */ (encoding),
@@ -503,6 +535,7 @@
}
/**
+ * Generates generated code for this runtime module.
* @param {NormalModule} module module for which the code should be generated
* @param {GenerateContext} generateContext context for generate
* @returns {Source | null} generated code
@@ -516,10 +549,10 @@
concatenationScope
} = generateContext;
+ /** @type {string} */
let content;
- const needContent = type === "javascript" || type === "css-url";
-
+ const needContent = type === JAVASCRIPT_TYPE || type === CSS_URL_TYPE;
const data = getData ? getData() : undefined;
if (
@@ -529,7 +562,9 @@
) {
const encodedSource = this.generateDataUri(module);
content =
- type === "javascript" ? JSON.stringify(encodedSource) : encodedSource;
+ type === JAVASCRIPT_TYPE
+ ? JSON.stringify(encodedSource)
+ : encodedSource;
if (data) {
data.set("url", { [type]: content, ...data.get("url") });
@@ -570,7 +605,7 @@
contentHash
);
- if (data && (type === "javascript" || type === "css-url")) {
+ if (data && (type === JAVASCRIPT_TYPE || type === CSS_URL_TYPE)) {
data.set("url", { [type]: assetPath, ...data.get("url") });
}
@@ -598,7 +633,7 @@
content = assetPath;
}
- if (type === "javascript") {
+ if (type === JAVASCRIPT_TYPE) {
if (concatenationScope) {
concatenationScope.registerNamespaceExport(
ConcatenationScope.NAMESPACE_OBJECT_EXPORT
@@ -614,7 +649,7 @@
runtimeRequirements.add(RuntimeGlobals.module);
return new RawSource(`${module.moduleArgument}.exports = ${content};`);
- } else if (type === "css-url") {
+ } else if (type === CSS_URL_TYPE) {
return null;
}
@@ -622,6 +657,7 @@
}
/**
+ * Generates fallback output for the provided error condition.
* @param {Error} error the error
* @param {NormalModule} module module for which the code should be generated
* @param {GenerateContext} generateContext context for generate
@@ -632,7 +668,7 @@
case "asset": {
return new RawSource(error.message);
}
- case "javascript": {
+ case JAVASCRIPT_TYPE: {
return new RawSource(
`throw new Error(${JSON.stringify(error.message)});`
);
@@ -643,6 +679,7 @@
}
/**
+ * Returns the source types available for this module.
* @param {NormalModule} module fresh module
* @returns {SourceTypes} available types (do not mutate)
*/
@@ -661,32 +698,33 @@
if ((module.buildInfo && module.buildInfo.dataUrl) || this.emit === false) {
if (sourceTypes.size > 0) {
- if (sourceTypes.has("javascript") && sourceTypes.has("css")) {
- return JS_AND_CSS_URL_TYPES;
- } else if (sourceTypes.has("css")) {
+ if (sourceTypes.has(JAVASCRIPT_TYPE) && sourceTypes.has(CSS_TYPE)) {
+ return JAVASCRIPT_AND_CSS_URL_TYPES;
+ } else if (sourceTypes.has(CSS_TYPE)) {
return CSS_URL_TYPES;
}
- return JS_TYPES;
+ return JAVASCRIPT_TYPES;
}
return NO_TYPES;
}
if (sourceTypes.size > 0) {
- if (sourceTypes.has("javascript") && sourceTypes.has("css")) {
- return ASSET_AND_JS_AND_CSS_URL_TYPES;
- } else if (sourceTypes.has("css")) {
+ if (sourceTypes.has(JAVASCRIPT_TYPE) && sourceTypes.has(CSS_TYPE)) {
+ return ASSET_AND_JAVASCRIPT_AND_CSS_URL_TYPES;
+ } else if (sourceTypes.has(CSS_TYPE)) {
return ASSET_AND_CSS_URL_TYPES;
}
- return ASSET_AND_JS_TYPES;
+ return ASSET_AND_JAVASCRIPT_TYPES;
}
return ASSET_TYPES;
}
/**
+ * Returns the estimated size for the requested source type.
* @param {NormalModule} module the module
- * @param {string=} type source type
+ * @param {SourceType=} type source type
* @returns {number} estimate size of the module
*/
getSize(module, type) {
@@ -721,6 +759,7 @@
}
/**
+ * Updates the hash with the data contributed by this instance.
* @param {Hash} hash hash that will be modified
* @param {UpdateHashContext} updateHashContext context for updating hash
*/
--
Gitblit v1.9.3