@snap/camera-kit
Version:
Camera Kit Web
34 lines • 1.93 kB
JavaScript
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