UNPKG

@snap/camera-kit

Version:
32 lines 1.57 kB
import { __awaiter } from "tslib"; import { firstValueFrom } from "rxjs"; import { Injectable } from "@snap/ts-inject"; import { lensCoreFactory } from "../lens-core-module/loader/lensCoreFactory"; import { getLogger } from "../logger/logger"; import { remoteConfigurationFactory } from "./remoteConfiguration"; import { toLensCoreConfigValue } from "./util"; const logger = getLogger("registerConfigurationProvider"); export const registerConfigurationProvider = Injectable("registerConfigurationProvider", [lensCoreFactory.token, remoteConfigurationFactory.token], (lensCore, remoteConfiguration) => { if (!lensCore.setConfigurationProvider) { return logger.warn("LensCore version does not support on-demand configuration."); } lensCore.setConfigurationProvider(({ configId }) => __awaiter(void 0, void 0, void 0, function* () { try { const configs = yield firstValueFrom(remoteConfiguration.get(configId)); if (configs.length === 0) return undefined; const { configId: id, value } = configs[0]; if (!value) return undefined; const convertedValue = toLensCoreConfigValue(value); if (!convertedValue) return undefined; return { configId: id, value: convertedValue }; } catch (error) { logger.error(new Error(`Failed to resolve config "${configId}" on demand.`, { cause: error })); return undefined; } })); }); //# sourceMappingURL=configurationProvider.js.map