@snap/camera-kit
Version:
Camera Kit Web
38 lines • 1.43 kB
JavaScript
const windowFieldPrefix = "__snap_camkit_override__";
const configPropertiesToOverride = [
"wasmEndpointOverride",
"logger",
"logLevel",
"userAgentFlavor",
];
configPropertiesToOverride.forEach((fieldToOverride) => {
defineWindowField(fieldToOverride);
});
function defineWindowField(propertyToOverride) {
if (typeof window === "undefined")
return;
Object.defineProperty(window, `${windowFieldPrefix}${propertyToOverride}`, {
get() {
var _a;
return (_a = getConfigurationOverrides()) === null || _a === void 0 ? void 0 : _a[propertyToOverride];
},
set(value) {
const storedOverrides = Object.assign(Object.assign({}, getConfigurationOverrides()), { [propertyToOverride]: value });
if (Object.values(storedOverrides).every((value) => typeof value === "undefined")) {
sessionStorage.removeItem(windowFieldPrefix);
}
else {
sessionStorage.setItem(windowFieldPrefix, JSON.stringify(storedOverrides));
}
},
enumerable: false,
configurable: true,
});
}
export function getConfigurationOverrides() {
if (!sessionStorage)
return undefined;
const overridesString = sessionStorage.getItem(windowFieldPrefix);
return overridesString && JSON.parse(overridesString);
}
//# sourceMappingURL=configurationOverrides.js.map