| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | /*	MIT License http://www.opensource.org/licenses/mit-license.php	Author Tobias Koppers @sokra*/"use strict";const DependenciesBlock = require("./DependenciesBlock");const makeSerializable = require("./util/makeSerializable");/** @typedef {import("./ChunkGraph")} ChunkGraph *//** @typedef {import("./ChunkGroup")} ChunkGroup *//** @typedef {import("./ChunkGroup").ChunkGroupOptions} ChunkGroupOptions *//** @typedef {import("./Dependency").DependencyLocation} DependencyLocation *//** @typedef {import("./Dependency").UpdateHashContext} UpdateHashContext *//** @typedef {import("./Entrypoint").EntryOptions} EntryOptions *//** @typedef {import("./Module")} Module *//** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext *//** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext *//** @typedef {import("./util/Hash")} Hash *//** @typedef {(ChunkGroupOptions & { entryOptions?: EntryOptions }) | string} GroupOptions */class AsyncDependenciesBlock extends DependenciesBlock {	/**	 * @param {GroupOptions | null} groupOptions options for the group	 * @param {(DependencyLocation | null)=} loc the line of code	 * @param {(string | null)=} request the request	 */	constructor(groupOptions, loc, request) {		super();		if (typeof groupOptions === "string") {			groupOptions = { name: groupOptions };		} else if (!groupOptions) {			groupOptions = { name: undefined };		}		this.groupOptions = groupOptions;		this.loc = loc;		this.request = request;		this._stringifiedGroupOptions = undefined;	}	/**	 * @returns {string | null | undefined} The name of the chunk	 */	get chunkName() {		return this.groupOptions.name;	}	/**	 * @param {string | undefined} value The new chunk name	 * @returns {void}	 */	set chunkName(value) {		if (this.groupOptions.name !== value) {			this.groupOptions.name = value;			this._stringifiedGroupOptions = undefined;		}	}	/**	 * @param {Hash} hash the hash used to track dependencies	 * @param {UpdateHashContext} context context	 * @returns {void}	 */	updateHash(hash, context) {		const { chunkGraph } = context;		if (this._stringifiedGroupOptions === undefined) {			this._stringifiedGroupOptions = JSON.stringify(this.groupOptions);		}		const chunkGroup = chunkGraph.getBlockChunkGroup(this);		hash.update(			`${this._stringifiedGroupOptions}${chunkGroup ? chunkGroup.id : ""}`		);		super.updateHash(hash, context);	}	/**	 * @param {ObjectSerializerContext} context context	 */	serialize(context) {		const { write } = context;		write(this.groupOptions);		write(this.loc);		write(this.request);		super.serialize(context);	}	/**	 * @param {ObjectDeserializerContext} context context	 */	deserialize(context) {		const { read } = context;		this.groupOptions = read();		this.loc = read();		this.request = read();		super.deserialize(context);	}}makeSerializable(AsyncDependenciesBlock, "webpack/lib/AsyncDependenciesBlock");Object.defineProperty(AsyncDependenciesBlock.prototype, "module", {	get() {		throw new Error(			"module property was removed from AsyncDependenciesBlock (it's not needed)"		);	},	set() {		throw new Error(			"module property was removed from AsyncDependenciesBlock (it's not needed)"		);	}});module.exports = AsyncDependenciesBlock;
 |