summaryrefslogtreecommitdiff
path: root/node_modules/webpack/lib/DependencyTemplates.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2023-11-05 17:16:09 +0800
committerlittleblack111 <littleblack11111@gmail.com>2023-11-05 17:16:09 +0800
commitd1d9f00b1bd660842addf5e6b1d1b64c852a9eea (patch)
tree60fb37ae73a1109d95301de5ec9b61b5726a4b61 /node_modules/webpack/lib/DependencyTemplates.js
parent7c85166c4cbdd862fc4252007d2df5befcbc2a58 (diff)
added hover prefixer
Diffstat (limited to 'node_modules/webpack/lib/DependencyTemplates.js')
-rw-r--r--node_modules/webpack/lib/DependencyTemplates.js67
1 files changed, 67 insertions, 0 deletions
diff --git a/node_modules/webpack/lib/DependencyTemplates.js b/node_modules/webpack/lib/DependencyTemplates.js
new file mode 100644
index 00000000..3b553dae
--- /dev/null
+++ b/node_modules/webpack/lib/DependencyTemplates.js
@@ -0,0 +1,67 @@
+/*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+*/
+
+"use strict";
+
+const createHash = require("./util/createHash");
+
+/** @typedef {import("./Dependency")} Dependency */
+/** @typedef {import("./DependencyTemplate")} DependencyTemplate */
+/** @typedef {typeof import("./util/Hash")} Hash */
+
+/** @typedef {new (...args: any[]) => Dependency} DependencyConstructor */
+
+class DependencyTemplates {
+ /**
+ * @param {string | Hash} hashFunction the hash function to use
+ */
+ constructor(hashFunction = "md4") {
+ /** @type {Map<Function, DependencyTemplate>} */
+ this._map = new Map();
+ /** @type {string} */
+ this._hash = "31d6cfe0d16ae931b73c59d7e0c089c0";
+ this._hashFunction = hashFunction;
+ }
+
+ /**
+ * @param {DependencyConstructor} dependency Constructor of Dependency
+ * @returns {DependencyTemplate | undefined} template for this dependency
+ */
+ get(dependency) {
+ return this._map.get(dependency);
+ }
+
+ /**
+ * @param {DependencyConstructor} dependency Constructor of Dependency
+ * @param {DependencyTemplate} dependencyTemplate template for this dependency
+ * @returns {void}
+ */
+ set(dependency, dependencyTemplate) {
+ this._map.set(dependency, dependencyTemplate);
+ }
+
+ /**
+ * @param {string} part additional hash contributor
+ * @returns {void}
+ */
+ updateHash(part) {
+ const hash = createHash(this._hashFunction);
+ hash.update(`${this._hash}${part}`);
+ this._hash = /** @type {string} */ (hash.digest("hex"));
+ }
+
+ getHash() {
+ return this._hash;
+ }
+
+ clone() {
+ const newInstance = new DependencyTemplates(this._hashFunction);
+ newInstance._map = new Map(this._map);
+ newInstance._hash = this._hash;
+ return newInstance;
+ }
+}
+
+module.exports = DependencyTemplates;