WXL
3 天以前 9bce51f651aad297ef9eb6df832bfdaf1de05d84
node_modules/webpack/lib/asset/RawDataUrlModule.js
@@ -7,7 +7,10 @@
const { RawSource } = require("webpack-sources");
const Module = require("../Module");
const { JS_TYPES } = require("../ModuleSourceTypesConstants");
const {
   JAVASCRIPT_TYPE,
   JAVASCRIPT_TYPES
} = require("../ModuleSourceTypeConstants");
const { ASSET_MODULE_TYPE_RAW_DATA_URL } = require("../ModuleTypeConstants");
const RuntimeGlobals = require("../RuntimeGlobals");
const makeSerializable = require("../util/makeSerializable");
@@ -19,8 +22,10 @@
/** @typedef {import("../Module").RuntimeRequirements} RuntimeRequirements */
/** @typedef {import("../Module").CodeGenerationContext} CodeGenerationContext */
/** @typedef {import("../Module").CodeGenerationResult} CodeGenerationResult */
/** @typedef {import("../Module").CodeGenerationResultData} CodeGenerationResultData */
/** @typedef {import("../Module").NeedBuildCallback} NeedBuildCallback */
/** @typedef {import("../Module").NeedBuildContext} NeedBuildContext */
/** @typedef {import("../Module").Sources} Sources */
/** @typedef {import("../Module").SourceTypes} SourceTypes */
/** @typedef {import("../RequestShortener")} RequestShortener */
/** @typedef {import("../ResolverFactory").ResolverWithOptions} ResolverWithOptions */
@@ -31,26 +36,33 @@
class RawDataUrlModule extends Module {
   /**
    * Creates an instance of RawDataUrlModule.
    * @param {string} url raw url
    * @param {string} identifier unique identifier
    * @param {string=} readableIdentifier readable identifier
    */
   constructor(url, identifier, readableIdentifier) {
      super(ASSET_MODULE_TYPE_RAW_DATA_URL, null);
      /** @type {string} */
      this.url = url;
      /** @type {Buffer | undefined} */
      this.urlBuffer = url ? Buffer.from(url) : undefined;
      this.identifierStr = identifier || this.url;
      /** @type {string} */
      this.identifierStr = identifier;
      /** @type {string} */
      this.readableIdentifierStr = readableIdentifier || this.identifierStr;
   }
   /**
    * Returns the source types this module can generate.
    * @returns {SourceTypes} types available (do not mutate)
    */
   getSourceTypes() {
      return JS_TYPES;
      return JAVASCRIPT_TYPES;
   }
   /**
    * Returns the unique identifier used to reference this module.
    * @returns {string} a unique identifier of the module
    */
   identifier() {
@@ -58,6 +70,7 @@
   }
   /**
    * Returns the estimated size for the requested source type.
    * @param {string=} type the source type for which the size should be estimated
    * @returns {number} the estimated size of the module (must be non-zero)
    */
@@ -69,6 +82,7 @@
   }
   /**
    * Returns a human-readable identifier for this module.
    * @param {RequestShortener} requestShortener the request shortener
    * @returns {string} a user readable identifier of the module
    */
@@ -79,6 +93,7 @@
   }
   /**
    * Checks whether the module needs to be rebuilt for the current build state.
    * @param {NeedBuildContext} context context info
    * @param {NeedBuildCallback} callback callback function, returns true, if the module needs a rebuild
    * @returns {void}
@@ -88,6 +103,7 @@
   }
   /**
    * Builds the module using the provided compilation context.
    * @param {WebpackOptions} options webpack options
    * @param {Compilation} compilation the compilation
    * @param {ResolverWithOptions} resolver the resolver
@@ -104,6 +120,7 @@
   }
   /**
    * Generates code and runtime requirements for this module.
    * @param {CodeGenerationContext} context context for code generation
    * @returns {CodeGenerationResult} result
    */
@@ -111,11 +128,13 @@
      if (this.url === undefined) {
         this.url = /** @type {Buffer} */ (this.urlBuffer).toString();
      }
      /** @type {Sources} */
      const sources = new Map();
      sources.set(
         "javascript",
         JAVASCRIPT_TYPE,
         new RawSource(`module.exports = ${JSON.stringify(this.url)};`)
      );
      /** @type {CodeGenerationResultData} */
      const data = new Map();
      data.set("url", {
         javascript: this.url
@@ -127,6 +146,7 @@
   }
   /**
    * Updates the hash with the data contributed by this instance.
    * @param {Hash} hash the hash used to track dependencies
    * @param {UpdateHashContext} context context
    * @returns {void}
@@ -137,6 +157,7 @@
   }
   /**
    * Serializes this instance into the provided serializer context.
    * @param {ObjectSerializerContext} context context
    */
   serialize(context) {
@@ -150,6 +171,7 @@
   }
   /**
    * Restores this instance from the provided deserializer context.
    * @param {ObjectDeserializerContext} context context
    */
   deserialize(context) {