Files
klz-cables.com/.pnpm-store/v10/files/7c/7c613deeba0bf4a92a7a7f3e4a7d6c570bd6450390947df99fcc7516a6d87f8b96738e165d36d7d0f4b62df76330c138a679b82d0facdaaab65041c60aed06
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

32 lines
720 B
Plaintext

/**
* https://tc39.es/ecma402/#sec-getstringorbooleanoption
* @param opts
* @param prop
* @param values
* @param trueValue
* @param falsyValue
* @param fallback
*/
import { ToString } from "./262.js";
export function GetStringOrBooleanOption(opts, prop, values, trueValue, falsyValue, fallback) {
let value = opts[prop];
if (value === undefined) {
return fallback;
}
if (value === true) {
return trueValue;
}
const valueBoolean = Boolean(value);
if (valueBoolean === false) {
return falsyValue;
}
value = ToString(value);
if (value === "true" || value === "false") {
return fallback;
}
if ((values || []).indexOf(value) === -1) {
throw new RangeError(`Invalid value ${value}`);
}
return value;
}