| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Alexander Akait @alexander-akait
- */
- "use strict";
- const Hash = require("../Hash");
- /** @typedef {import("../../../declarations/WebpackOptions").HashDigest} Encoding */
- /* istanbul ignore next */
- class DebugHash extends Hash {
- constructor() {
- super();
- this.string = "";
- }
- /**
- * Update hash {@link https://nodejs.org/api/crypto.html#crypto_hash_update_data_inputencoding}
- * @overload
- * @param {string | Buffer} data data
- * @returns {Hash} updated hash
- */
- /**
- * Update hash {@link https://nodejs.org/api/crypto.html#crypto_hash_update_data_inputencoding}
- * @overload
- * @param {string} data data
- * @param {Encoding} inputEncoding data encoding
- * @returns {Hash} updated hash
- */
- /**
- * Update hash {@link https://nodejs.org/api/crypto.html#crypto_hash_update_data_inputencoding}
- * @param {string | Buffer} data data
- * @param {Encoding=} inputEncoding data encoding
- * @returns {Hash} updated hash
- */
- update(data, inputEncoding) {
- if (typeof data !== "string") data = data.toString("utf8");
- const prefix = Buffer.from("@webpack-debug-digest@").toString("hex");
- if (data.startsWith(prefix)) {
- data = Buffer.from(data.slice(prefix.length), "hex").toString();
- }
- this.string += `[${data}](${
- /** @type {string} */
- (
- // eslint-disable-next-line unicorn/error-message
- new Error().stack
- ).split("\n", 3)[2]
- })\n`;
- return this;
- }
- /**
- * Calculates the digest {@link https://nodejs.org/api/crypto.html#crypto_hash_digest_encoding}
- * @overload
- * @returns {Buffer} digest
- */
- /**
- * Calculates the digest {@link https://nodejs.org/api/crypto.html#crypto_hash_digest_encoding}
- * @overload
- * @param {Encoding} encoding encoding of the return value
- * @returns {string} digest
- */
- /**
- * Calculates the digest {@link https://nodejs.org/api/crypto.html#crypto_hash_digest_encoding}
- * @param {Encoding=} encoding encoding of the return value
- * @returns {string | Buffer} digest
- */
- digest(encoding) {
- return Buffer.from(`@webpack-debug-digest@${this.string}`).toString("hex");
- }
- }
- module.exports = DebugHash;
|