UNPKG

oidc-spa

Version:

Openidconnect client for Single Page Applications

29 lines 925 B
const keyIsTrapped = "isTrapped_zSskDe9d"; export class AccessError extends Error { constructor(message) { super(message); Object.setPrototypeOf(this, new.target.prototype); } } export function createObjectThatThrowsIfAccessed(params) { const { debugMessage = "", isPropertyWhitelisted = () => false } = params ?? {}; const get = (...args) => { const [, prop] = args; if (isPropertyWhitelisted(prop)) { return Reflect.get(...args); } if (prop === keyIsTrapped) { return true; } throw new AccessError(`Cannot access ${String(prop)} yet ${debugMessage}`); }; const trappedObject = new Proxy({}, { get, set: get }); return trappedObject; } export function isObjectThatThrowIfAccessed(obj) { return obj[keyIsTrapped] === true; } //# sourceMappingURL=createObjectThatThrowsIfAccessed.js.map