123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Ivan Kopeykin @vankop
- */
- "use strict";
- const Dependency = require("../Dependency");
- const makeSerializable = require("../util/makeSerializable");
- const CssLocalIdentifierDependency = require("./CssLocalIdentifierDependency");
- /** @typedef {import("webpack-sources").ReplaceSource} ReplaceSource */
- /** @typedef {import("../Dependency").ExportsSpec} ExportsSpec */
- /** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
- /** @typedef {import("../DependencyTemplate").CssDependencyTemplateContext} DependencyTemplateContext */
- /** @typedef {import("../ModuleGraph")} ModuleGraph */
- /** @typedef {import("../css/CssParser").Range} Range */
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
- /** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
- /** @typedef {import("../util/runtime").RuntimeSpec} RuntimeSpec */
- class CssSelfLocalIdentifierDependency extends CssLocalIdentifierDependency {
- /**
- * @param {string} name name
- * @param {Range} range range
- * @param {string=} prefix prefix
- * @param {Set<string>=} declaredSet set of declared names (will only be active when in declared set)
- */
- constructor(name, range, prefix = "", declaredSet = undefined) {
- super(name, range, prefix);
- this.declaredSet = declaredSet;
- }
- get type() {
- return "css self local identifier";
- }
- get category() {
- return "self";
- }
- /**
- * @returns {string | null} an identifier to merge equal requests
- */
- getResourceIdentifier() {
- return `self`;
- }
- /**
- * Returns the exported names
- * @param {ModuleGraph} moduleGraph module graph
- * @returns {ExportsSpec | undefined} export names
- */
- getExports(moduleGraph) {
- if (this.declaredSet && !this.declaredSet.has(this.name)) return;
- return super.getExports(moduleGraph);
- }
- /**
- * Returns list of exports referenced by this dependency
- * @param {ModuleGraph} moduleGraph module graph
- * @param {RuntimeSpec} runtime the runtime for which the module is analysed
- * @returns {(string[] | ReferencedExport)[]} referenced exports
- */
- getReferencedExports(moduleGraph, runtime) {
- if (this.declaredSet && !this.declaredSet.has(this.name))
- return Dependency.NO_EXPORTS_REFERENCED;
- return [[this.name]];
- }
- /**
- * @param {ObjectSerializerContext} context context
- */
- serialize(context) {
- const { write } = context;
- write(this.declaredSet);
- super.serialize(context);
- }
- /**
- * @param {ObjectDeserializerContext} context context
- */
- deserialize(context) {
- const { read } = context;
- this.declaredSet = read();
- super.deserialize(context);
- }
- }
- CssSelfLocalIdentifierDependency.Template = class CssSelfLocalIdentifierDependencyTemplate extends (
- CssLocalIdentifierDependency.Template
- ) {
- /**
- * @param {Dependency} dependency the dependency for which the template should be applied
- * @param {ReplaceSource} source the current replace source which can be modified
- * @param {DependencyTemplateContext} templateContext the context object
- * @returns {void}
- */
- apply(dependency, source, templateContext) {
- const dep = /** @type {CssSelfLocalIdentifierDependency} */ (dependency);
- if (dep.declaredSet && !dep.declaredSet.has(dep.name)) return;
- super.apply(dependency, source, templateContext);
- }
- };
- makeSerializable(
- CssSelfLocalIdentifierDependency,
- "webpack/lib/dependencies/CssSelfLocalIdentifierDependency"
- );
- module.exports = CssSelfLocalIdentifierDependency;
|