diff options
Diffstat (limited to 'node_modules/webpack/lib/AsyncDependenciesBlock.js')
-rw-r--r-- | node_modules/webpack/lib/AsyncDependenciesBlock.js | 153 |
1 files changed, 110 insertions, 43 deletions
diff --git a/node_modules/webpack/lib/AsyncDependenciesBlock.js b/node_modules/webpack/lib/AsyncDependenciesBlock.js index 27d5988b6..a7e029131 100644 --- a/node_modules/webpack/lib/AsyncDependenciesBlock.js +++ b/node_modules/webpack/lib/AsyncDependenciesBlock.js @@ -1,43 +1,110 @@ -/*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Tobias Koppers @sokra
-*/
-"use strict";
-const DependenciesBlock = require("./DependenciesBlock");
-
-module.exports = class AsyncDependenciesBlock extends DependenciesBlock {
- constructor(name, module, loc) {
- super();
- this.chunkName = name;
- this.chunks = null;
- this.module = module;
- this.loc = loc;
- }
- get chunk() {
- throw new Error("`chunk` was been renamed to `chunks` and is now an array");
- }
- set chunk(chunk) {
- throw new Error("`chunk` was been renamed to `chunks` and is now an array");
- }
- updateHash(hash) {
- hash.update(this.chunkName || "");
- hash.update(this.chunks && this.chunks.map((chunk) => {
- return chunk.id !== null ? chunk.id : "";
- }).join(",") || "");
- super.updateHash(hash);
- }
- disconnect() {
- this.chunks = null;
- super.disconnect();
- }
- unseal() {
- this.chunks = null;
- super.unseal();
- }
- sortItems() {
- super.sortItems();
- if(this.chunks) {
- this.chunks.sort((a, b) => a.compareTo(b));
- }
- }
-};
+/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +"use strict"; + +const DependenciesBlock = require("./DependenciesBlock"); + +/** @typedef {import("./ChunkGroup")} ChunkGroup */ +/** @typedef {import("./Module")} Module */ +/** @typedef {import("./Dependency").DependencyLocation} DependencyLocation */ +/** @typedef {import("./util/createHash").Hash} Hash */ +/** @typedef {TODO} GroupOptions */ + +module.exports = class AsyncDependenciesBlock extends DependenciesBlock { + /** + * @param {GroupOptions} groupOptions options for the group + * @param {Module} module the Module object + * @param {DependencyLocation=} loc the line of code + * @param {TODO=} request the request + */ + constructor(groupOptions, module, loc, request) { + super(); + if (typeof groupOptions === "string") { + groupOptions = { name: groupOptions }; + } else if (!groupOptions) { + groupOptions = { name: undefined }; + } + this.groupOptions = groupOptions; + /** @type {ChunkGroup=} */ + this.chunkGroup = undefined; + this.module = module; + this.loc = loc; + this.request = request; + /** @type {DependenciesBlock} */ + this.parent = undefined; + } + + /** + * @returns {string} The name of the chunk + */ + get chunkName() { + return this.groupOptions.name; + } + + /** + * @param {string} value The new chunk name + * @returns {void} + */ + set chunkName(value) { + this.groupOptions.name = value; + } + + /** + * @returns {never} this throws and should never be called + */ + get chunks() { + throw new Error("Moved to AsyncDependenciesBlock.chunkGroup"); + } + + /** + * @param {never} value setter value + * @returns {never} this is going to throw therefore we should throw type + * assertions by returning never + */ + set chunks(value) { + throw new Error("Moved to AsyncDependenciesBlock.chunkGroup"); + } + + /** + * @param {Hash} hash the hash used to track block changes, from "crypto" module + * @returns {void} + */ + updateHash(hash) { + hash.update(JSON.stringify(this.groupOptions)); + hash.update( + (this.chunkGroup && + this.chunkGroup.chunks + .map(chunk => { + return chunk.id !== null ? chunk.id : ""; + }) + .join(",")) || + "" + ); + super.updateHash(hash); + } + + /** + * @returns {void} + */ + disconnect() { + this.chunkGroup = undefined; + super.disconnect(); + } + + /** + * @returns {void} + */ + unseal() { + this.chunkGroup = undefined; + super.unseal(); + } + + /** + * @returns {void} + */ + sortItems() { + super.sortItems(); + } +}; |