summaryrefslogtreecommitdiff
path: root/node_modules/webpack/lib/util/registerExternalSerializer.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2024-08-30 17:21:18 +0800
committerlittleblack111 <littleblack11111@gmail.com>2024-08-30 17:21:18 +0800
commitefbc2ffe6a1ee5ec38a4396305561d6515d0943e (patch)
tree2b4c94f18f2c792dfda813050755d5c0273fae22 /node_modules/webpack/lib/util/registerExternalSerializer.js
parent43acceb75957c880a5ba5a31aae221394a36d5f6 (diff)
node fixes, updates
Diffstat (limited to 'node_modules/webpack/lib/util/registerExternalSerializer.js')
-rw-r--r--node_modules/webpack/lib/util/registerExternalSerializer.js337
1 files changed, 337 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/util/registerExternalSerializer.js b/node_modules/webpack/lib/util/registerExternalSerializer.js
new file mode 100644
index 00000000..711bcfa2
--- /dev/null
+++ b/node_modules/webpack/lib/util/registerExternalSerializer.js
@@ -0,0 +1,337 @@
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+
+"use strict";
+
+const { register } = require("./serialization");
+
+const Position = /** @type {TODO} */ (require("acorn")).Position;
+const SourceLocation = require("acorn").SourceLocation;
+const ValidationError = require("schema-utils").ValidationError;
+const {
+ CachedSource,
+ ConcatSource,
+ OriginalSource,
+ PrefixSource,
+ RawSource,
+ ReplaceSource,
+ SourceMapSource
+} = require("webpack-sources");
+
+/** @typedef {import("acorn").Position} Position */
+/** @typedef {import("../Dependency").RealDependencyLocation} RealDependencyLocation */
+/** @typedef {import("../Dependency").SourcePosition} SourcePosition */
+/** @typedef {import("./serialization").ObjectDeserializerContext} ObjectDeserializerContext */
+/** @typedef {import("./serialization").ObjectSerializerContext} ObjectSerializerContext */
+
+/** @typedef {ObjectSerializerContext & { writeLazy?: (value: any) => void }} WebpackObjectSerializerContext */
+
+const CURRENT_MODULE = "webpack/lib/util/registerExternalSerializer";
+
+register(
+ CachedSource,
+ CURRENT_MODULE,
+ "webpack-sources/CachedSource",
+ new (class CachedSourceSerializer {
+ /**
+ * @param {CachedSource} source the cached source to be serialized
+ * @param {WebpackObjectSerializerContext} context context
+ * @returns {void}
+ */
+ serialize(source, { write, writeLazy }) {
+ if (writeLazy) {
+ writeLazy(source.originalLazy());
+ } else {
+ write(source.original());
+ }
+ write(source.getCachedData());
+ }
+
+ /**
+ * @param {ObjectDeserializerContext} context context
+ * @returns {CachedSource} cached source
+ */
+ deserialize({ read }) {
+ const source = read();
+ const cachedData = read();
+ return new CachedSource(source, cachedData);
+ }
+ })()
+);
+
+register(
+ RawSource,
+ CURRENT_MODULE,
+ "webpack-sources/RawSource",
+ new (class RawSourceSerializer {
+ /**
+ * @param {RawSource} source the raw source to be serialized
+ * @param {WebpackObjectSerializerContext} context context
+ * @returns {void}
+ */
+ serialize(source, { write }) {
+ write(source.buffer());
+ write(!source.isBuffer());
+ }
+
+ /**
+ * @param {ObjectDeserializerContext} context context
+ * @returns {RawSource} raw source
+ */
+ deserialize({ read }) {
+ const source = read();
+ const convertToString = read();
+ return new RawSource(source, convertToString);
+ }
+ })()
+);
+
+register(
+ ConcatSource,
+ CURRENT_MODULE,
+ "webpack-sources/ConcatSource",
+ new (class ConcatSourceSerializer {
+ /**
+ * @param {ConcatSource} source the concat source to be serialized
+ * @param {WebpackObjectSerializerContext} context context
+ * @returns {void}
+ */
+ serialize(source, { write }) {
+ write(source.getChildren());
+ }
+
+ /**
+ * @param {ObjectDeserializerContext} context context
+ * @returns {ConcatSource} concat source
+ */
+ deserialize({ read }) {
+ const source = new ConcatSource();
+ source.addAllSkipOptimizing(read());
+ return source;
+ }
+ })()
+);
+
+register(
+ PrefixSource,
+ CURRENT_MODULE,
+ "webpack-sources/PrefixSource",
+ new (class PrefixSourceSerializer {
+ /**
+ * @param {PrefixSource} source the prefix source to be serialized
+ * @param {WebpackObjectSerializerContext} context context
+ * @returns {void}
+ */
+ serialize(source, { write }) {
+ write(source.getPrefix());
+ write(source.original());
+ }
+
+ /**
+ * @param {ObjectDeserializerContext} context context
+ * @returns {PrefixSource} prefix source
+ */
+ deserialize({ read }) {
+ return new PrefixSource(read(), read());
+ }
+ })()
+);
+
+register(
+ ReplaceSource,
+ CURRENT_MODULE,
+ "webpack-sources/ReplaceSource",
+ new (class ReplaceSourceSerializer {
+ /**
+ * @param {ReplaceSource} source the replace source to be serialized
+ * @param {WebpackObjectSerializerContext} context context
+ * @returns {void}
+ */
+ serialize(source, { write }) {
+ write(source.original());
+ write(source.getName());
+ const replacements = source.getReplacements();
+ write(replacements.length);
+ for (const repl of replacements) {
+ write(repl.start);
+ write(repl.end);
+ }
+ for (const repl of replacements) {
+ write(repl.content);
+ write(repl.name);
+ }
+ }
+
+ /**
+ * @param {ObjectDeserializerContext} context context
+ * @returns {ReplaceSource} replace source
+ */
+ deserialize({ read }) {
+ const source = new ReplaceSource(read(), read());
+ const len = read();
+ const startEndBuffer = [];
+ for (let i = 0; i < len; i++) {
+ startEndBuffer.push(read(), read());
+ }
+ let j = 0;
+ for (let i = 0; i < len; i++) {
+ source.replace(
+ startEndBuffer[j++],
+ startEndBuffer[j++],
+ read(),
+ read()
+ );
+ }
+ return source;
+ }
+ })()
+);
+
+register(
+ OriginalSource,
+ CURRENT_MODULE,
+ "webpack-sources/OriginalSource",
+ new (class OriginalSourceSerializer {
+ /**
+ * @param {OriginalSource} source the original source to be serialized
+ * @param {WebpackObjectSerializerContext} context context
+ * @returns {void}
+ */
+ serialize(source, { write }) {
+ write(source.buffer());
+ write(source.getName());
+ }
+
+ /**
+ * @param {ObjectDeserializerContext} context context
+ * @returns {OriginalSource} original source
+ */
+ deserialize({ read }) {
+ const buffer = read();
+ const name = read();
+ return new OriginalSource(buffer, name);
+ }
+ })()
+);
+
+register(
+ SourceLocation,
+ CURRENT_MODULE,
+ "acorn/SourceLocation",
+ new (class SourceLocationSerializer {
+ /**
+ * @param {SourceLocation} loc the location to be serialized
+ * @param {WebpackObjectSerializerContext} context context
+ * @returns {void}
+ */
+ serialize(loc, { write }) {
+ write(loc.start.line);
+ write(loc.start.column);
+ write(loc.end.line);
+ write(loc.end.column);
+ }
+
+ /**
+ * @param {ObjectDeserializerContext} context context
+ * @returns {RealDependencyLocation} location
+ */
+ deserialize({ read }) {
+ return {
+ start: {
+ line: read(),
+ column: read()
+ },
+ end: {
+ line: read(),
+ column: read()
+ }
+ };
+ }
+ })()
+);
+
+register(
+ Position,
+ CURRENT_MODULE,
+ "acorn/Position",
+ new (class PositionSerializer {
+ /**
+ * @param {Position} pos the position to be serialized
+ * @param {WebpackObjectSerializerContext} context context
+ * @returns {void}
+ */
+ serialize(pos, { write }) {
+ write(pos.line);
+ write(pos.column);
+ }
+
+ /**
+ * @param {ObjectDeserializerContext} context context
+ * @returns {SourcePosition} position
+ */
+ deserialize({ read }) {
+ return {
+ line: read(),
+ column: read()
+ };
+ }
+ })()
+);
+
+register(
+ SourceMapSource,
+ CURRENT_MODULE,
+ "webpack-sources/SourceMapSource",
+ new (class SourceMapSourceSerializer {
+ /**
+ * @param {SourceMapSource} source the source map source to be serialized
+ * @param {WebpackObjectSerializerContext} context context
+ * @returns {void}
+ */
+ serialize(source, { write }) {
+ write(source.getArgsAsBuffers());
+ }
+
+ /**
+ * @param {ObjectDeserializerContext} context context
+ * @returns {SourceMapSource} source source map source
+ */
+ deserialize({ read }) {
+ // @ts-expect-error
+ return new SourceMapSource(...read());
+ }
+ })()
+);
+
+register(
+ ValidationError,
+ CURRENT_MODULE,
+ "schema-utils/ValidationError",
+ new (class ValidationErrorSerializer {
+ // TODO error should be ValidationError, but this fails the type checks
+ /**
+ * @param {TODO} error the source map source to be serialized
+ * @param {WebpackObjectSerializerContext} context context
+ * @returns {void}
+ */
+ serialize(error, { write }) {
+ write(error.errors);
+ write(error.schema);
+ write({
+ name: error.headerName,
+ baseDataPath: error.baseDataPath,
+ postFormatter: error.postFormatter
+ });
+ }
+
+ /**
+ * @param {ObjectDeserializerContext} context context
+ * @returns {TODO} error
+ */
+ deserialize({ read }) {
+ return new ValidationError(read(), read(), read());
+ }
+ })()
+);