Buckets:
tahamajs/Other_Lessons / AP /TA_1 /AP-ECE-UT.github.io /node_modules /webpack /lib /AsyncDependenciesBlock.js
| /* | |
| MIT License http://www.opensource.org/licenses/mit-license.php | |
| Author Tobias Koppers @sokra | |
| */ | |
| ; | |
| 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 */ | |
| class AsyncDependenciesBlock extends DependenciesBlock { | |
| /** | |
| * @param {(ChunkGroupOptions & { entryOptions?: EntryOptions }) | 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 | 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; | |
Xet Storage Details
- Size:
- 3.33 kB
- Xet hash:
- 1cf7a43f542196c1880a934ba1978ff8cc48502051da9b3cc73ea1555125f6fd
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.