UNPKG

@snap/camera-kit

Version:
30 lines 1.64 kB
import { copyDefinedProperties } from "./common/copyDefinedProperties"; import { getConfigurationOverrides } from "./configurationOverrides"; import { Injectable } from "./dependency-injection/Injectable"; const defaultConfiguration = { lensPerformance: { cluster: 0, benchmarks: [], webglRendererInfo: "unknown" }, logger: "noop", logLevel: "info", shouldUseWorker: true, apiHostname: "camera-kit-api.snapar.com", userAgentFlavor: "release", }; export const configurationToken = "configuration"; function isHandledAppleDevice() { return (/iPad|iPhone|iPod/.test(navigator.platform) || (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 2)); } export const createCameraKitConfigurationFactory = (configuration) => { const overrides = getConfigurationOverrides(); if (overrides) { console.warn("Configuration overrides applied", overrides); } return Injectable(configurationToken, () => { const safeConfig = Object.assign(Object.assign({}, configuration), { lensPerformance: configuration.lensPerformance instanceof Promise ? configuration.lensPerformance.catch(() => defaultConfiguration.lensPerformance) : configuration.lensPerformance }); return Object.assign(Object.assign(Object.assign(Object.assign({}, defaultConfiguration), { shouldUseWorker: isHandledAppleDevice() ? false : defaultConfiguration.shouldUseWorker }), copyDefinedProperties(safeConfig)), copyDefinedProperties(overrides !== null && overrides !== void 0 ? overrides : {})); }); }; //# sourceMappingURL=configuration.js.map