diff --git a/lib/Dependency.js b/lib/Dependency.js index a9ec0cd08f8..fa9400721a1 100644 --- a/lib/Dependency.js +++ b/lib/Dependency.js @@ -17,6 +17,8 @@ const memoize = require("./util/memoize"); /** @typedef {import("./ModuleGraphConnection").ConnectionState} ConnectionState */ /** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */ /** @typedef {import("./WebpackError")} WebpackError */ +/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("./util/Hash")} Hash */ /** @typedef {import("./util/runtime").RuntimeSpec} RuntimeSpec */ @@ -292,6 +294,9 @@ class Dependency { return getIgnoredModule(); } + /** + * @param {ObjectSerializerContext} context context + */ serialize({ write }) { write(this.weak); write(this.optional); @@ -303,6 +308,9 @@ class Dependency { write(this._locN); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize({ read }) { this.weak = read(); this.optional = read(); diff --git a/lib/ExportsInfo.js b/lib/ExportsInfo.js index be0756e58b3..88aff0431a4 100644 --- a/lib/ExportsInfo.js +++ b/lib/ExportsInfo.js @@ -752,6 +752,9 @@ class ExportsInfo { ); } + /** + * @param {{ otherProvided: any, otherCanMangleProvide: any, otherTerminalBinding: any, exports: any }} data data + */ restoreProvided({ otherProvided, otherCanMangleProvide, diff --git a/lib/container/ContainerExposedDependency.js b/lib/container/ContainerExposedDependency.js index 02b9eef3c9b..2cbf04a694d 100644 --- a/lib/container/ContainerExposedDependency.js +++ b/lib/container/ContainerExposedDependency.js @@ -8,6 +8,9 @@ const ModuleDependency = require("../dependencies/ModuleDependency"); const makeSerializable = require("../util/makeSerializable"); +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ + class ContainerExposedDependency extends ModuleDependency { /** * @param {string} exposedName public name @@ -33,11 +36,17 @@ class ContainerExposedDependency extends ModuleDependency { return `exposed dependency ${this.exposedName}=${this.request}`; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { context.write(this.exposedName); super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { this.exposedName = context.read(); super.deserialize(context); diff --git a/lib/container/FallbackDependency.js b/lib/container/FallbackDependency.js index dee28ab33fa..60d1fdd5969 100644 --- a/lib/container/FallbackDependency.js +++ b/lib/container/FallbackDependency.js @@ -8,6 +8,9 @@ const Dependency = require("../Dependency"); const makeSerializable = require("../util/makeSerializable"); +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ + class FallbackDependency extends Dependency { constructor(requests) { super(); @@ -29,6 +32,9 @@ class FallbackDependency extends Dependency { return "esm"; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.requests); diff --git a/lib/dependencies/AMDDefineDependency.js b/lib/dependencies/AMDDefineDependency.js index 1a0816ae84f..019f3908c46 100644 --- a/lib/dependencies/AMDDefineDependency.js +++ b/lib/dependencies/AMDDefineDependency.js @@ -12,6 +12,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @type {Record} */ const DEFINITIONS = { @@ -119,6 +121,9 @@ class AMDDefineDependency extends NullDependency { return "amd define"; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.range); @@ -130,6 +135,9 @@ class AMDDefineDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.range = read(); diff --git a/lib/dependencies/AMDRequireArrayDependency.js b/lib/dependencies/AMDRequireArrayDependency.js index d62938d8e67..123ce345657 100644 --- a/lib/dependencies/AMDRequireArrayDependency.js +++ b/lib/dependencies/AMDRequireArrayDependency.js @@ -12,6 +12,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ class AMDRequireArrayDependency extends NullDependency { constructor(depsArray, range) { @@ -29,6 +31,9 @@ class AMDRequireArrayDependency extends NullDependency { return "amd"; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; @@ -38,6 +43,9 @@ class AMDRequireArrayDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; diff --git a/lib/dependencies/AMDRequireContextDependency.js b/lib/dependencies/AMDRequireContextDependency.js index 0d68a26e064..eab91c33d2f 100644 --- a/lib/dependencies/AMDRequireContextDependency.js +++ b/lib/dependencies/AMDRequireContextDependency.js @@ -8,6 +8,9 @@ const makeSerializable = require("../util/makeSerializable"); const ContextDependency = require("./ContextDependency"); +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ + class AMDRequireContextDependency extends ContextDependency { constructor(options, range, valueRange) { super(options); @@ -24,6 +27,9 @@ class AMDRequireContextDependency extends ContextDependency { return "amd"; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; @@ -33,6 +39,9 @@ class AMDRequireContextDependency extends ContextDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; diff --git a/lib/dependencies/AMDRequireDependency.js b/lib/dependencies/AMDRequireDependency.js index e6e3f4c689e..3710bee239a 100644 --- a/lib/dependencies/AMDRequireDependency.js +++ b/lib/dependencies/AMDRequireDependency.js @@ -13,6 +13,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../AsyncDependenciesBlock")} AsyncDependenciesBlock */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ class AMDRequireDependency extends NullDependency { constructor(outerRange, arrayRange, functionRange, errorCallbackRange) { @@ -30,6 +32,9 @@ class AMDRequireDependency extends NullDependency { return "amd"; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; @@ -43,6 +48,9 @@ class AMDRequireDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; diff --git a/lib/dependencies/CachedConstDependency.js b/lib/dependencies/CachedConstDependency.js index 1e07edeca20..b94dc0bbb96 100644 --- a/lib/dependencies/CachedConstDependency.js +++ b/lib/dependencies/CachedConstDependency.js @@ -18,6 +18,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../DependencyTemplates")} DependencyTemplates */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ class CachedConstDependency extends NullDependency { @@ -42,6 +44,9 @@ class CachedConstDependency extends NullDependency { hash.update(this._hashUpdate); } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; @@ -52,6 +57,9 @@ class CachedConstDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; diff --git a/lib/dependencies/CommonJsExportRequireDependency.js b/lib/dependencies/CommonJsExportRequireDependency.js index 288e1012635..cf2cfe7aec8 100644 --- a/lib/dependencies/CommonJsExportRequireDependency.js +++ b/lib/dependencies/CommonJsExportRequireDependency.js @@ -22,6 +22,8 @@ const processExportInfo = require("./processExportInfo"); /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../Module")} Module */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ const idsSymbol = Symbol("CommonJsExportRequireDependency.ids"); @@ -270,6 +272,9 @@ class CommonJsExportRequireDependency extends ModuleDependency { return { exports, checked }; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.asiSafe); @@ -282,6 +287,9 @@ class CommonJsExportRequireDependency extends ModuleDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.asiSafe = read(); diff --git a/lib/dependencies/CommonJsExportsDependency.js b/lib/dependencies/CommonJsExportsDependency.js index 0715582edf9..ab53f20f273 100644 --- a/lib/dependencies/CommonJsExportsDependency.js +++ b/lib/dependencies/CommonJsExportsDependency.js @@ -16,6 +16,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ const EMPTY_OBJECT = {}; @@ -53,6 +55,9 @@ class CommonJsExportsDependency extends NullDependency { }; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.range); @@ -62,6 +67,9 @@ class CommonJsExportsDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.range = read(); diff --git a/lib/dependencies/CommonJsFullRequireDependency.js b/lib/dependencies/CommonJsFullRequireDependency.js index 68da6a12ac6..43b2195d939 100644 --- a/lib/dependencies/CommonJsFullRequireDependency.js +++ b/lib/dependencies/CommonJsFullRequireDependency.js @@ -16,6 +16,8 @@ const ModuleDependency = require("./ModuleDependency"); /** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ class CommonJsFullRequireDependency extends ModuleDependency { @@ -51,6 +53,9 @@ class CommonJsFullRequireDependency extends ModuleDependency { return [this.names]; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.names); @@ -59,6 +64,9 @@ class CommonJsFullRequireDependency extends ModuleDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.names = read(); diff --git a/lib/dependencies/CommonJsRequireContextDependency.js b/lib/dependencies/CommonJsRequireContextDependency.js index e8637835d73..ebe731b2799 100644 --- a/lib/dependencies/CommonJsRequireContextDependency.js +++ b/lib/dependencies/CommonJsRequireContextDependency.js @@ -9,6 +9,9 @@ const makeSerializable = require("../util/makeSerializable"); const ContextDependency = require("./ContextDependency"); const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTemplateAsRequireCall"); +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ + class CommonJsRequireContextDependency extends ContextDependency { constructor(options, range, valueRange, inShorthand, context) { super(options, context); @@ -23,6 +26,9 @@ class CommonJsRequireContextDependency extends ContextDependency { return "cjs require context"; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; @@ -33,6 +39,9 @@ class CommonJsRequireContextDependency extends ContextDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; diff --git a/lib/dependencies/CommonJsSelfReferenceDependency.js b/lib/dependencies/CommonJsSelfReferenceDependency.js index 1c4af4867b5..094604f7bfc 100644 --- a/lib/dependencies/CommonJsSelfReferenceDependency.js +++ b/lib/dependencies/CommonJsSelfReferenceDependency.js @@ -17,6 +17,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ class CommonJsSelfReferenceDependency extends NullDependency { @@ -53,6 +55,9 @@ class CommonJsSelfReferenceDependency extends NullDependency { return [this.call ? this.names.slice(0, -1) : this.names]; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.range); @@ -62,6 +67,9 @@ class CommonJsSelfReferenceDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.range = read(); diff --git a/lib/dependencies/ConstDependency.js b/lib/dependencies/ConstDependency.js index 72e2cab1577..f118155cc34 100644 --- a/lib/dependencies/ConstDependency.js +++ b/lib/dependencies/ConstDependency.js @@ -15,6 +15,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ class ConstDependency extends NullDependency { @@ -61,6 +63,9 @@ class ConstDependency extends NullDependency { return false; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.expression); @@ -69,6 +74,9 @@ class ConstDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.expression = read(); diff --git a/lib/dependencies/ContextDependency.js b/lib/dependencies/ContextDependency.js index 8c41b8c1440..6831ee93df3 100644 --- a/lib/dependencies/ContextDependency.js +++ b/lib/dependencies/ContextDependency.js @@ -14,6 +14,8 @@ const memoize = require("../util/memoize"); /** @typedef {import("../Dependency").TRANSITIVE} TRANSITIVE */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../WebpackError")} WebpackError */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ const getCriticalDependencyWarning = memoize(() => require("./CriticalDependencyWarning") @@ -115,6 +117,9 @@ class ContextDependency extends Dependency { return warnings; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; @@ -132,6 +137,9 @@ class ContextDependency extends Dependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; diff --git a/lib/dependencies/ContextElementDependency.js b/lib/dependencies/ContextElementDependency.js index 21681f57711..1ceaadb0431 100644 --- a/lib/dependencies/ContextElementDependency.js +++ b/lib/dependencies/ContextElementDependency.js @@ -11,6 +11,8 @@ const ModuleDependency = require("./ModuleDependency"); /** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ class ContextElementDependency extends ModuleDependency { @@ -68,6 +70,9 @@ class ContextElementDependency extends ModuleDependency { : Dependency.EXPORTS_OBJECT_REFERENCED; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this._typePrefix); @@ -76,6 +81,9 @@ class ContextElementDependency extends ModuleDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this._typePrefix = read(); diff --git a/lib/dependencies/CreateScriptUrlDependency.js b/lib/dependencies/CreateScriptUrlDependency.js index 30b39b76d52..e2d27bf19f5 100644 --- a/lib/dependencies/CreateScriptUrlDependency.js +++ b/lib/dependencies/CreateScriptUrlDependency.js @@ -12,6 +12,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ class CreateScriptUrlDependency extends NullDependency { /** @@ -26,12 +28,18 @@ class CreateScriptUrlDependency extends NullDependency { return "create script url"; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.range); super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.range = read(); diff --git a/lib/dependencies/CssExportDependency.js b/lib/dependencies/CssExportDependency.js index 440e66fbe9e..15629a39211 100644 --- a/lib/dependencies/CssExportDependency.js +++ b/lib/dependencies/CssExportDependency.js @@ -13,6 +13,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */ /** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ class CssExportDependency extends NullDependency { /** @@ -47,6 +49,9 @@ class CssExportDependency extends NullDependency { }; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.name); @@ -54,6 +59,9 @@ class CssExportDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.name = read(); diff --git a/lib/dependencies/CssLocalIdentifierDependency.js b/lib/dependencies/CssLocalIdentifierDependency.js index 02ced928387..2cf301e2c34 100644 --- a/lib/dependencies/CssLocalIdentifierDependency.js +++ b/lib/dependencies/CssLocalIdentifierDependency.js @@ -13,6 +13,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */ /** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ class CssLocalIdentifierDependency extends NullDependency { /** @@ -49,6 +51,9 @@ class CssLocalIdentifierDependency extends NullDependency { }; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.name); @@ -57,6 +62,9 @@ class CssLocalIdentifierDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.name = read(); diff --git a/lib/dependencies/CssSelfLocalIdentifierDependency.js b/lib/dependencies/CssSelfLocalIdentifierDependency.js index dcb8be249b6..b2c43405068 100644 --- a/lib/dependencies/CssSelfLocalIdentifierDependency.js +++ b/lib/dependencies/CssSelfLocalIdentifierDependency.js @@ -14,6 +14,8 @@ const CssLocalIdentifierDependency = require("./CssLocalIdentifierDependency"); /** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */ /** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ class CssSelfLocalIdentifierDependency extends CssLocalIdentifierDependency { @@ -64,12 +66,18 @@ class CssSelfLocalIdentifierDependency extends CssLocalIdentifierDependency { return [[this.name]]; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.declaredSet); super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.declaredSet = read(); diff --git a/lib/dependencies/CssUrlDependency.js b/lib/dependencies/CssUrlDependency.js index c2af5c5cab9..c8d89450570 100644 --- a/lib/dependencies/CssUrlDependency.js +++ b/lib/dependencies/CssUrlDependency.js @@ -18,6 +18,8 @@ const ModuleDependency = require("./ModuleDependency"); /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */ /** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ @@ -52,12 +54,18 @@ class CssUrlDependency extends ModuleDependency { return new RawDataUrlModule("data:,", `ignored-asset`, `(ignored asset)`); } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.urlType); super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.urlType = read(); diff --git a/lib/dependencies/DllEntryDependency.js b/lib/dependencies/DllEntryDependency.js index 1c3feee83f8..3bf126348d7 100644 --- a/lib/dependencies/DllEntryDependency.js +++ b/lib/dependencies/DllEntryDependency.js @@ -8,6 +8,9 @@ const Dependency = require("../Dependency"); const makeSerializable = require("../util/makeSerializable"); +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ + class DllEntryDependency extends Dependency { constructor(dependencies, name) { super(); @@ -20,6 +23,9 @@ class DllEntryDependency extends Dependency { return "dll entry"; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; @@ -29,6 +35,9 @@ class DllEntryDependency extends Dependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; diff --git a/lib/dependencies/ExportsInfoDependency.js b/lib/dependencies/ExportsInfoDependency.js index 0b7b17972d1..e36f4fedff9 100644 --- a/lib/dependencies/ExportsInfoDependency.js +++ b/lib/dependencies/ExportsInfoDependency.js @@ -16,6 +16,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../Module")} Module */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ @@ -89,6 +91,9 @@ class ExportsInfoDependency extends NullDependency { this.property = property; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.range); diff --git a/lib/dependencies/HarmonyAcceptDependency.js b/lib/dependencies/HarmonyAcceptDependency.js index 560d9bb32ea..4d270120d82 100644 --- a/lib/dependencies/HarmonyAcceptDependency.js +++ b/lib/dependencies/HarmonyAcceptDependency.js @@ -13,6 +13,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("./HarmonyAcceptImportDependency")} HarmonyAcceptImportDependency */ class HarmonyAcceptDependency extends NullDependency { @@ -32,6 +34,9 @@ class HarmonyAcceptDependency extends NullDependency { return "accepted harmony modules"; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.range); @@ -40,6 +45,9 @@ class HarmonyAcceptDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.range = read(); diff --git a/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js b/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js index 4fb3a790b1f..5f5ebc9aca3 100644 --- a/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js +++ b/lib/dependencies/HarmonyEvaluatedImportSpecifierDependency.js @@ -12,6 +12,8 @@ const HarmonyImportSpecifierDependency = require("./HarmonyImportSpecifierDepend /** @typedef {import("../ChunkGraph")} ChunkGraph */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** * Dependency for static evaluating import specifier. e.g. @@ -30,12 +32,18 @@ class HarmonyEvaluatedImportSpecifierDependency extends HarmonyImportSpecifierDe return `evaluated X ${this.operator} harmony import specifier`; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { super.serialize(context); const { write } = context; write(this.operator); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { super.deserialize(context); const { read } = context; diff --git a/lib/dependencies/HarmonyExportExpressionDependency.js b/lib/dependencies/HarmonyExportExpressionDependency.js index 81b6027117c..5ebd0ef6d02 100644 --- a/lib/dependencies/HarmonyExportExpressionDependency.js +++ b/lib/dependencies/HarmonyExportExpressionDependency.js @@ -17,6 +17,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ class HarmonyExportExpressionDependency extends NullDependency { constructor(range, rangeStatement, prefix, declarationId) { @@ -54,6 +56,9 @@ class HarmonyExportExpressionDependency extends NullDependency { return false; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.range); @@ -63,6 +68,9 @@ class HarmonyExportExpressionDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.range = read(); diff --git a/lib/dependencies/HarmonyExportHeaderDependency.js b/lib/dependencies/HarmonyExportHeaderDependency.js index 7dacbecc8a3..5aa80545abb 100644 --- a/lib/dependencies/HarmonyExportHeaderDependency.js +++ b/lib/dependencies/HarmonyExportHeaderDependency.js @@ -11,6 +11,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ class HarmonyExportHeaderDependency extends NullDependency { constructor(range, rangeStatement) { @@ -23,6 +25,9 @@ class HarmonyExportHeaderDependency extends NullDependency { return "harmony export header"; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.range); @@ -30,6 +35,9 @@ class HarmonyExportHeaderDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.range = read(); diff --git a/lib/dependencies/HarmonyExportImportedSpecifierDependency.js b/lib/dependencies/HarmonyExportImportedSpecifierDependency.js index 3859254f1a6..e322697fdd8 100644 --- a/lib/dependencies/HarmonyExportImportedSpecifierDependency.js +++ b/lib/dependencies/HarmonyExportImportedSpecifierDependency.js @@ -35,6 +35,8 @@ const processExportInfo = require("./processExportInfo"); /** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */ /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ /** @typedef {import("../WebpackError")} WebpackError */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ @@ -856,6 +858,9 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { return errors; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write, setCircularReference } = context; @@ -870,6 +875,9 @@ class HarmonyExportImportedSpecifierDependency extends HarmonyImportDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read, setCircularReference } = context; @@ -1251,11 +1259,17 @@ class HarmonyStarExportsList { return this.dependencies.slice(); } + /** + * @param {ObjectSerializerContext} context context + */ serialize({ write, setCircularReference }) { setCircularReference(this); write(this.dependencies); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize({ read, setCircularReference }) { setCircularReference(this); this.dependencies = read(); diff --git a/lib/dependencies/HarmonyExportSpecifierDependency.js b/lib/dependencies/HarmonyExportSpecifierDependency.js index ac663bacc5b..d749b6dab69 100644 --- a/lib/dependencies/HarmonyExportSpecifierDependency.js +++ b/lib/dependencies/HarmonyExportSpecifierDependency.js @@ -15,6 +15,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ class HarmonyExportSpecifierDependency extends NullDependency { constructor(id, name) { @@ -49,6 +51,9 @@ class HarmonyExportSpecifierDependency extends NullDependency { return false; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.id); @@ -56,6 +61,9 @@ class HarmonyExportSpecifierDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.id = read(); diff --git a/lib/dependencies/HarmonyImportDependency.js b/lib/dependencies/HarmonyImportDependency.js index c270262ca8a..e0544043f58 100644 --- a/lib/dependencies/HarmonyImportDependency.js +++ b/lib/dependencies/HarmonyImportDependency.js @@ -24,6 +24,8 @@ const ModuleDependency = require("./ModuleDependency"); /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ /** @typedef {import("../WebpackError")} WebpackError */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ @@ -221,6 +223,9 @@ class HarmonyImportDependency extends ModuleDependency { } } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.sourceOrder); @@ -228,6 +233,9 @@ class HarmonyImportDependency extends ModuleDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.sourceOrder = read(); diff --git a/lib/dependencies/HarmonyImportSpecifierDependency.js b/lib/dependencies/HarmonyImportSpecifierDependency.js index 6115614bd07..3b7a1d15f1d 100644 --- a/lib/dependencies/HarmonyImportSpecifierDependency.js +++ b/lib/dependencies/HarmonyImportSpecifierDependency.js @@ -23,6 +23,8 @@ const HarmonyImportDependency = require("./HarmonyImportDependency"); /** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */ /** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */ /** @typedef {import("../WebpackError")} WebpackError */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ @@ -237,6 +239,9 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency { return 0; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.ids); @@ -253,6 +258,9 @@ class HarmonyImportSpecifierDependency extends HarmonyImportDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.ids = read(); diff --git a/lib/dependencies/ImportContextDependency.js b/lib/dependencies/ImportContextDependency.js index ecc86eca45a..f94a86fcede 100644 --- a/lib/dependencies/ImportContextDependency.js +++ b/lib/dependencies/ImportContextDependency.js @@ -9,6 +9,9 @@ const makeSerializable = require("../util/makeSerializable"); const ContextDependency = require("./ContextDependency"); const ContextDependencyTemplateAsRequireCall = require("./ContextDependencyTemplateAsRequireCall"); +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ + class ImportContextDependency extends ContextDependency { constructor(options, range, valueRange) { super(options); @@ -25,6 +28,9 @@ class ImportContextDependency extends ContextDependency { return "esm"; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; @@ -33,6 +39,9 @@ class ImportContextDependency extends ContextDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; diff --git a/lib/dependencies/ImportDependency.js b/lib/dependencies/ImportDependency.js index 8c930796f07..98ff9b2654e 100644 --- a/lib/dependencies/ImportDependency.js +++ b/lib/dependencies/ImportDependency.js @@ -14,6 +14,8 @@ const ModuleDependency = require("./ModuleDependency"); /** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ class ImportDependency extends ModuleDependency { @@ -51,12 +53,18 @@ class ImportDependency extends ModuleDependency { : Dependency.EXPORTS_OBJECT_REFERENCED; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { context.write(this.range); context.write(this.referencedExports); super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { this.range = context.read(); this.referencedExports = context.read(); diff --git a/lib/dependencies/JsonExportsDependency.js b/lib/dependencies/JsonExportsDependency.js index 56d7cf824e5..e35b1ca2b29 100644 --- a/lib/dependencies/JsonExportsDependency.js +++ b/lib/dependencies/JsonExportsDependency.js @@ -14,6 +14,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../json/JsonData")} JsonData */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ const getExportsFromData = data => { @@ -78,12 +80,18 @@ class JsonExportsDependency extends NullDependency { this.data.updateHash(hash); } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.data); super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.data = read(); diff --git a/lib/dependencies/LocalModuleDependency.js b/lib/dependencies/LocalModuleDependency.js index 66395319a7c..4e576ee881c 100644 --- a/lib/dependencies/LocalModuleDependency.js +++ b/lib/dependencies/LocalModuleDependency.js @@ -11,6 +11,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ class LocalModuleDependency extends NullDependency { constructor(localModule, range, callNew) { @@ -21,6 +23,9 @@ class LocalModuleDependency extends NullDependency { this.callNew = callNew; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; @@ -31,6 +36,9 @@ class LocalModuleDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; diff --git a/lib/dependencies/ModuleDecoratorDependency.js b/lib/dependencies/ModuleDecoratorDependency.js index 0bf7fd255fc..c5ae9f30a3a 100644 --- a/lib/dependencies/ModuleDecoratorDependency.js +++ b/lib/dependencies/ModuleDecoratorDependency.js @@ -18,6 +18,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../DependencyTemplates")} DependencyTemplates */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ @@ -76,6 +78,9 @@ class ModuleDecoratorDependency extends NullDependency { hash.update(this._hashUpdate); } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.decorator); @@ -83,6 +88,9 @@ class ModuleDecoratorDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.decorator = read(); diff --git a/lib/dependencies/ModuleDependency.js b/lib/dependencies/ModuleDependency.js index 0efbdaeb8cf..39c7b270a5c 100644 --- a/lib/dependencies/ModuleDependency.js +++ b/lib/dependencies/ModuleDependency.js @@ -11,6 +11,8 @@ const memoize = require("../util/memoize"); /** @typedef {import("../Dependency").TRANSITIVE} TRANSITIVE */ /** @typedef {import("../Module")} Module */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ const getRawModule = memoize(() => require("../RawModule")); @@ -67,6 +69,9 @@ class ModuleDependency extends Dependency { ); } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.request); @@ -76,6 +81,9 @@ class ModuleDependency extends Dependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.request = read(); diff --git a/lib/dependencies/ProvidedDependency.js b/lib/dependencies/ProvidedDependency.js index 7f9c324ea63..5fb2f3d5957 100644 --- a/lib/dependencies/ProvidedDependency.js +++ b/lib/dependencies/ProvidedDependency.js @@ -18,6 +18,8 @@ const ModuleDependency = require("./ModuleDependency"); /** @typedef {import("../DependencyTemplates")} DependencyTemplates */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../RuntimeTemplate")} RuntimeTemplate */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ @@ -78,6 +80,9 @@ class ProvidedDependency extends ModuleDependency { hash.update(this._hashUpdate); } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.identifier); @@ -85,6 +90,9 @@ class ProvidedDependency extends ModuleDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.identifier = read(); diff --git a/lib/dependencies/PureExpressionDependency.js b/lib/dependencies/PureExpressionDependency.js index 3ee70286d1d..180141ed511 100644 --- a/lib/dependencies/PureExpressionDependency.js +++ b/lib/dependencies/PureExpressionDependency.js @@ -17,6 +17,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ class PureExpressionDependency extends NullDependency { @@ -52,6 +54,9 @@ class PureExpressionDependency extends NullDependency { return false; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.range); @@ -59,6 +64,9 @@ class PureExpressionDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.range = read(); diff --git a/lib/dependencies/RequireEnsureDependency.js b/lib/dependencies/RequireEnsureDependency.js index ab6347e1c78..c552faab993 100644 --- a/lib/dependencies/RequireEnsureDependency.js +++ b/lib/dependencies/RequireEnsureDependency.js @@ -13,6 +13,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../AsyncDependenciesBlock")} AsyncDependenciesBlock */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ class RequireEnsureDependency extends NullDependency { constructor(range, contentRange, errorHandlerRange) { @@ -27,6 +29,9 @@ class RequireEnsureDependency extends NullDependency { return "require.ensure"; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; @@ -37,6 +42,9 @@ class RequireEnsureDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; diff --git a/lib/dependencies/RequireHeaderDependency.js b/lib/dependencies/RequireHeaderDependency.js index db76b5f4fc2..79022636825 100644 --- a/lib/dependencies/RequireHeaderDependency.js +++ b/lib/dependencies/RequireHeaderDependency.js @@ -12,6 +12,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ class RequireHeaderDependency extends NullDependency { constructor(range) { @@ -20,6 +22,9 @@ class RequireHeaderDependency extends NullDependency { this.range = range; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.range); diff --git a/lib/dependencies/RequireResolveContextDependency.js b/lib/dependencies/RequireResolveContextDependency.js index 1bfe600d3e4..1d2454a4f15 100644 --- a/lib/dependencies/RequireResolveContextDependency.js +++ b/lib/dependencies/RequireResolveContextDependency.js @@ -9,6 +9,9 @@ const makeSerializable = require("../util/makeSerializable"); const ContextDependency = require("./ContextDependency"); const ContextDependencyTemplateAsId = require("./ContextDependencyTemplateAsId"); +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ + class RequireResolveContextDependency extends ContextDependency { constructor(options, range, valueRange, context) { super(options, context); @@ -21,6 +24,9 @@ class RequireResolveContextDependency extends ContextDependency { return "amd require context"; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; @@ -30,6 +36,9 @@ class RequireResolveContextDependency extends ContextDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; diff --git a/lib/dependencies/RequireResolveHeaderDependency.js b/lib/dependencies/RequireResolveHeaderDependency.js index bc4e177951c..6425d2e5942 100644 --- a/lib/dependencies/RequireResolveHeaderDependency.js +++ b/lib/dependencies/RequireResolveHeaderDependency.js @@ -11,6 +11,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ class RequireResolveHeaderDependency extends NullDependency { constructor(range) { @@ -21,6 +23,9 @@ class RequireResolveHeaderDependency extends NullDependency { this.range = range; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; diff --git a/lib/dependencies/RuntimeRequirementsDependency.js b/lib/dependencies/RuntimeRequirementsDependency.js index a64248e9f8d..65752df3efb 100644 --- a/lib/dependencies/RuntimeRequirementsDependency.js +++ b/lib/dependencies/RuntimeRequirementsDependency.js @@ -14,6 +14,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ class RuntimeRequirementsDependency extends NullDependency { @@ -39,12 +41,18 @@ class RuntimeRequirementsDependency extends NullDependency { hash.update(this._hashUpdate); } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.runtimeRequirements); super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.runtimeRequirements = read(); diff --git a/lib/dependencies/StaticExportsDependency.js b/lib/dependencies/StaticExportsDependency.js index d58e3286de4..d91b5e43da5 100644 --- a/lib/dependencies/StaticExportsDependency.js +++ b/lib/dependencies/StaticExportsDependency.js @@ -13,6 +13,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */ /** @typedef {import("../Dependency").UpdateHashContext} UpdateHashContext */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ class StaticExportsDependency extends NullDependency { @@ -43,6 +45,9 @@ class StaticExportsDependency extends NullDependency { }; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.exports); @@ -50,6 +55,9 @@ class StaticExportsDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.exports = read(); diff --git a/lib/dependencies/URLDependency.js b/lib/dependencies/URLDependency.js index a00c526c733..06ed7d9b107 100644 --- a/lib/dependencies/URLDependency.js +++ b/lib/dependencies/URLDependency.js @@ -22,6 +22,8 @@ const ModuleDependency = require("./ModuleDependency"); /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../ModuleGraphConnection")} ModuleGraphConnection */ /** @typedef {import("../ModuleGraphConnection").ConnectionState} ConnectionState */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ @@ -72,6 +74,9 @@ class URLDependency extends ModuleDependency { return new RawDataUrlModule("data:,", `ignored-asset`, `(ignored asset)`); } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.outerRange); @@ -80,6 +85,9 @@ class URLDependency extends ModuleDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.outerRange = read(); diff --git a/lib/dependencies/UnsupportedDependency.js b/lib/dependencies/UnsupportedDependency.js index b8624b8bb5e..0f4ee2195e6 100644 --- a/lib/dependencies/UnsupportedDependency.js +++ b/lib/dependencies/UnsupportedDependency.js @@ -11,6 +11,8 @@ const NullDependency = require("./NullDependency"); /** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */ /** @typedef {import("../Dependency")} Dependency */ /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ class UnsupportedDependency extends NullDependency { constructor(request, range) { @@ -20,6 +22,9 @@ class UnsupportedDependency extends NullDependency { this.range = range; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; @@ -29,6 +34,9 @@ class UnsupportedDependency extends NullDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; diff --git a/lib/dependencies/WebAssemblyExportImportedDependency.js b/lib/dependencies/WebAssemblyExportImportedDependency.js index ec3f3afac0e..f62f311b997 100644 --- a/lib/dependencies/WebAssemblyExportImportedDependency.js +++ b/lib/dependencies/WebAssemblyExportImportedDependency.js @@ -12,6 +12,8 @@ const ModuleDependency = require("./ModuleDependency"); /** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */ /** @typedef {import("../Dependency").TRANSITIVE} TRANSITIVE */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ class WebAssemblyExportImportedDependency extends ModuleDependency { @@ -50,6 +52,9 @@ class WebAssemblyExportImportedDependency extends ModuleDependency { return "wasm"; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; @@ -60,6 +65,9 @@ class WebAssemblyExportImportedDependency extends ModuleDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; diff --git a/lib/dependencies/WebAssemblyImportDependency.js b/lib/dependencies/WebAssemblyImportDependency.js index 52c23280bc2..badc78764cf 100644 --- a/lib/dependencies/WebAssemblyImportDependency.js +++ b/lib/dependencies/WebAssemblyImportDependency.js @@ -13,6 +13,8 @@ const ModuleDependency = require("./ModuleDependency"); /** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../WebpackError")} WebpackError */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ class WebAssemblyImportDependency extends ModuleDependency { @@ -71,6 +73,9 @@ class WebAssemblyImportDependency extends ModuleDependency { } } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; @@ -81,6 +86,9 @@ class WebAssemblyImportDependency extends ModuleDependency { super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; diff --git a/lib/dependencies/WorkerDependency.js b/lib/dependencies/WorkerDependency.js index 2f23e059b12..4c183691f8f 100644 --- a/lib/dependencies/WorkerDependency.js +++ b/lib/dependencies/WorkerDependency.js @@ -18,6 +18,8 @@ const ModuleDependency = require("./ModuleDependency"); /** @typedef {import("../DependencyTemplate").DependencyTemplateContext} DependencyTemplateContext */ /** @typedef {import("../Entrypoint")} Entrypoint */ /** @typedef {import("../ModuleGraph")} ModuleGraph */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ /** @typedef {import("../util/Hash")} Hash */ /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */ @@ -68,12 +70,18 @@ class WorkerDependency extends ModuleDependency { hash.update(this._hashUpdate); } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { const { write } = context; write(this.options); super.serialize(context); } + /** + * @param {ObjectDeserializerContext} context context + */ deserialize(context) { const { read } = context; this.options = read(); diff --git a/lib/sharing/ProvideSharedDependency.js b/lib/sharing/ProvideSharedDependency.js index fa243511067..2f7246d667b 100644 --- a/lib/sharing/ProvideSharedDependency.js +++ b/lib/sharing/ProvideSharedDependency.js @@ -8,6 +8,9 @@ const Dependency = require("../Dependency"); const makeSerializable = require("../util/makeSerializable"); +/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ +/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */ + class ProvideSharedDependency extends Dependency { constructor(shareScope, name, version, request, eager) { super(); @@ -31,6 +34,9 @@ class ProvideSharedDependency extends Dependency { } @ ${this.version}${this.eager ? " (eager)" : ""}`; } + /** + * @param {ObjectSerializerContext} context context + */ serialize(context) { context.write(this.shareScope); context.write(this.name); diff --git a/lib/util/LazySet.js b/lib/util/LazySet.js index 4f957cd516d..d7eb77f25cb 100644 --- a/lib/util/LazySet.js +++ b/lib/util/LazySet.js @@ -199,6 +199,10 @@ class LazySet { for (const item of this._set) write(item); } + /** + * @param {ObjectDeserializerContext} context context + * @returns {LazySet} deserialized LazySet + */ static deserialize({ read }) { const count = read(); const items = []; diff --git a/types.d.ts b/types.d.ts index 0a1c0f9f8b6..9cde6de877f 100644 --- a/types.d.ts +++ b/types.d.ts @@ -2717,8 +2717,8 @@ declare class Dependency { moduleGraph: ModuleGraph ): ConnectionState; createIgnoredModule(context: string): Module; - serialize(__0: {}): void; - deserialize(__0: {}): void; + serialize(__0: ObjectSerializerContext): void; + deserialize(__0: ObjectDeserializerContext): void; module: any; get disconnect(): any; static NO_EXPORTS_REFERENCED: string[][]; @@ -3756,7 +3756,12 @@ declare abstract class ExportsInfo { ): string | false | string[]; updateHash(hash: Hash, runtime: RuntimeSpec): void; getRestoreProvidedData(): any; - restoreProvided(__0: {}): void; + restoreProvided(__0: { + otherProvided: any; + otherCanMangleProvide: any; + otherTerminalBinding: any; + exports: any; + }): void; } declare interface ExportsSpec { /** @@ -6201,7 +6206,7 @@ declare class LazySet { values(): IterableIterator; serialize(__0: ObjectSerializerContext): void; [Symbol.iterator](): IterableIterator; - static deserialize(__0: {}): LazySet; + static deserialize(__0: ObjectDeserializerContext): LazySet; } declare interface LibIdentOptions { /**