Files
klz-cables.com/.pnpm-store/v10/files/f5/79836a35ece981f114ee718cdc84b071a8fe4ed1dee9d1a496914bdad259df1825c3630d3318be72a4b03be9834533771b83fc950e59e923055083c1d2bbf2
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

40 lines
1.5 KiB
Plaintext

/**
* Creates a proxy for the given object that has its own property
*/ export function isolateObjectProperty(object, key) {
const keys = Array.isArray(key) ? key : [
key
];
const delegate = {};
// Initialize delegate with the keys, if they exist in the original object
for (const k of keys){
if (k in object) {
delegate[k] = object[k];
}
}
const handler = {
deleteProperty (target, p) {
return Reflect.deleteProperty(keys.includes(p) ? delegate : target, p);
},
get (target, p, receiver) {
if (keys.includes(p)) {
return Reflect.get(delegate, p, receiver);
}
// Use target as receiver to preserve private field access (e.g., Request#headers in Node 24+)
return Reflect.get(target, p, target);
},
has (target, p) {
return Reflect.has(keys.includes(p) ? delegate : target, p);
},
set (target, p, newValue, _receiver) {
if (keys.includes(p)) {
// in case of transactionID we must ignore any receiver, because
// "If provided and target does not have a setter for propertyKey, the property will be set on receiver instead."
return Reflect.set(delegate, p, newValue);
}
return Reflect.set(target, p, newValue, target);
}
};
return new Proxy(object, handler);
}
//# sourceMappingURL=isolateObjectProperty.js.map