Files
klz-cables.com/.pnpm-store/v10/files/7c/3a24f828ef116e2b9aab523df610933954f82f106e64e7bb5e2cd68d2ccde76a647bb1c5bd22706d5cc883939a495a3dbdcd3402bf8b3f7b0346ab8337c63a
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

70 lines
2.1 KiB
Plaintext

/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
"use strict";
const RequireContextDependency = require("./RequireContextDependency");
/** @typedef {import("../ContextModule").ContextMode} ContextMode */
/** @typedef {import("../Dependency").DependencyLocation} DependencyLocation */
/** @typedef {import("../javascript/JavascriptParser")} JavascriptParser */
/** @typedef {import("../javascript/JavascriptParser").Range} Range */
const PLUGIN_NAME = "RequireContextDependencyParserPlugin";
module.exports = class RequireContextDependencyParserPlugin {
/**
* @param {JavascriptParser} parser the parser
* @returns {void}
*/
apply(parser) {
parser.hooks.call.for("require.context").tap(PLUGIN_NAME, (expr) => {
let regExp = /^\.\/.*$/;
let recursive = true;
/** @type {ContextMode} */
let mode = "sync";
switch (expr.arguments.length) {
case 4: {
const modeExpr = parser.evaluateExpression(expr.arguments[3]);
if (!modeExpr.isString()) return;
mode = /** @type {ContextMode} */ (modeExpr.string);
}
// falls through
case 3: {
const regExpExpr = parser.evaluateExpression(expr.arguments[2]);
if (!regExpExpr.isRegExp()) return;
regExp = /** @type {RegExp} */ (regExpExpr.regExp);
}
// falls through
case 2: {
const recursiveExpr = parser.evaluateExpression(expr.arguments[1]);
if (!recursiveExpr.isBoolean()) return;
recursive = /** @type {boolean} */ (recursiveExpr.bool);
}
// falls through
case 1: {
const requestExpr = parser.evaluateExpression(expr.arguments[0]);
if (!requestExpr.isString()) return;
const dep = new RequireContextDependency(
{
request: /** @type {string} */ (requestExpr.string),
recursive,
regExp,
mode,
category: "commonjs"
},
/** @type {Range} */
(expr.range)
);
dep.loc = /** @type {DependencyLocation} */ (expr.loc);
dep.optional = Boolean(parser.scope.inTry);
parser.state.current.addDependency(dep);
return true;
}
}
});
}
};