UNPKG

@snap/camera-kit

Version:
34 lines 1.93 kB
import { Injectable } from "@snap/ts-inject"; import { copyDefinedProperties } from "./common/copyDefinedProperties"; import { getConfigurationOverrides } from "./configurationOverrides"; import { mapLogger, noopLogger } from "./logger/logger"; const defaultConfiguration = { lensPerformance: { cluster: 0, benchmarks: [], webglRendererInfo: "unknown" }, logger: noopLogger, logLevel: "info", shouldUseWorker: true, apiHostname: "camera-kit-api.snapar.com", userAgentFlavor: "release", fonts: [], trustedTypesPolicyName: "snap-camera-kit", }; 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, () => { var _a; 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(Object.assign({}, defaultConfiguration), { shouldUseWorker: isHandledAppleDevice() ? false : defaultConfiguration.shouldUseWorker }), copyDefinedProperties(safeConfig)), copyDefinedProperties(overrides !== null && overrides !== void 0 ? overrides : {})), { logger: mapLogger((_a = safeConfig.logger) !== null && _a !== void 0 ? _a : overrides === null || overrides === void 0 ? void 0 : overrides.logger) }); }); }; //# sourceMappingURL=configuration.js.map