feat: refactoring project

This commit is contained in:
Carlos
2024-11-23 14:56:07 -05:00
parent f0c2a50c18
commit 1c6db5818d
2351 changed files with 39323 additions and 60326 deletions

View File

@@ -44,7 +44,7 @@ class AsyncWasmLoadingRuntimeModule extends RuntimeModule {
`" + ${RuntimeGlobals.getFullHash}}().slice(0, ${length}) + "`,
module: {
id: '" + wasmModuleId + "',
hash: `" + wasmModuleHash + "`,
hash: '" + wasmModuleHash + "',
hashWithLength(length) {
return `" + wasmModuleHash.slice(0, ${length}) + "`;
}
@@ -75,18 +75,18 @@ class AsyncWasmLoadingRuntimeModule extends RuntimeModule {
concat(
"return req.then(",
runtimeTemplate.basicFunction("res", [
`if (typeof WebAssembly.instantiateStreaming === "function") {`,
'if (typeof WebAssembly.instantiateStreaming === "function") {',
Template.indent([
"return WebAssembly.instantiateStreaming(res, importsObj)",
Template.indent([
".then(",
Template.indent([
runtimeTemplate.returningFunction(
`${runtimeTemplate.returningFunction(
"Object.assign(exports, res.instance.exports)",
"res"
) + ",",
)},`,
runtimeTemplate.basicFunction("e", [
`if(res.headers.get("Content-Type") !== "application/wasm") {`,
'if(res.headers.get("Content-Type") !== "application/wasm") {',
Template.indent([
'console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n", e);',
"return fallback();"
@@ -110,7 +110,7 @@ class AsyncWasmLoadingRuntimeModule extends RuntimeModule {
"exports, wasmModuleId, wasmModuleHash, importsObj",
this.supportsStreaming
? getStreaming()
: [`return ${loader}`, Template.indent(fallback) + ";"]
: [`return ${loader}`, `${Template.indent(fallback)};`]
)};`;
}
}

View File

@@ -6,13 +6,13 @@
"use strict";
const Generator = require("../Generator");
const { WEBASSEMBLY_TYPES } = require("../ModuleSourceTypesConstants");
/** @typedef {import("webpack-sources").Source} Source */
/** @typedef {import("../Generator").GenerateContext} GenerateContext */
/** @typedef {import("../Module").SourceTypes} SourceTypes */
/** @typedef {import("../NormalModule")} NormalModule */
const TYPES = new Set(["webassembly"]);
/**
* @typedef {object} AsyncWebAssemblyGeneratorOptions
* @property {boolean} [mangleImports] mangle imports
@@ -29,10 +29,10 @@ class AsyncWebAssemblyGenerator extends Generator {
/**
* @param {NormalModule} module fresh module
* @returns {Set<string>} available types (do not mutate)
* @returns {SourceTypes} available types (do not mutate)
*/
getTypes(module) {
return TYPES;
return WEBASSEMBLY_TYPES;
}
/**
@@ -51,7 +51,7 @@ class AsyncWebAssemblyGenerator extends Generator {
/**
* @param {NormalModule} module module for which the code should be generated
* @param {GenerateContext} generateContext context for generate
* @returns {Source} generated code
* @returns {Source | null} generated code
*/
generate(module, generateContext) {
return /** @type {Source} */ (module.originalSource());

View File

@@ -8,6 +8,7 @@
const { RawSource } = require("webpack-sources");
const Generator = require("../Generator");
const InitFragment = require("../InitFragment");
const { WEBASSEMBLY_TYPES } = require("../ModuleSourceTypesConstants");
const RuntimeGlobals = require("../RuntimeGlobals");
const Template = require("../Template");
const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDependency");
@@ -17,11 +18,10 @@ const WebAssemblyImportDependency = require("../dependencies/WebAssemblyImportDe
/** @typedef {import("../DependencyTemplates")} DependencyTemplates */
/** @typedef {import("../Generator").GenerateContext} GenerateContext */
/** @typedef {import("../Module")} Module */
/** @typedef {import("../Module").SourceTypes} SourceTypes */
/** @typedef {import("../NormalModule")} NormalModule */
/** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */
const TYPES = new Set(["webassembly"]);
/**
* @typedef {{ request: string, importVar: string }} ImportObjRequestItem
*/
@@ -37,10 +37,10 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
/**
* @param {NormalModule} module fresh module
* @returns {Set<string>} available types (do not mutate)
* @returns {SourceTypes} available types (do not mutate)
*/
getTypes(module) {
return TYPES;
return WEBASSEMBLY_TYPES;
}
/**
@@ -55,7 +55,7 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
/**
* @param {NormalModule} module module for which the code should be generated
* @param {GenerateContext} generateContext context for generate
* @returns {Source} generated code
* @returns {Source | null} generated code
*/
generate(module, generateContext) {
const {
@@ -161,12 +161,11 @@ class AsyncWebAssemblyJavascriptGenerator extends Generator {
])
: undefined;
const instantiateCall =
`${RuntimeGlobals.instantiateWasm}(${module.exportsArgument}, ${
module.moduleArgument
}.id, ${JSON.stringify(
chunkGraph.getRenderedModuleHash(module, runtime)
)}` + (importsObj ? `, ${importsObj})` : `)`);
const instantiateCall = `${RuntimeGlobals.instantiateWasm}(${module.exportsArgument}, ${
module.moduleArgument
}.id, ${JSON.stringify(
chunkGraph.getRenderedModuleHash(module, runtime)
)}${importsObj ? `, ${importsObj})` : ")"}`;
if (promises.length > 0)
runtimeRequirements.add(RuntimeGlobals.asyncModule);

View File

@@ -208,9 +208,9 @@ class AsyncWebAssemblyModulesPlugin {
hooks.renderModuleContent.call(moduleSource, module, renderContext),
"AsyncWebAssemblyModulesPlugin.getCompilationHooks().renderModuleContent"
);
} catch (e) {
/** @type {WebpackError} */ (e).module = module;
throw e;
} catch (err) {
/** @type {WebpackError} */ (err).module = module;
throw err;
}
}
}