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