UNPKG

vtex

Version:

The platform for e-commerce apps

33 lines (32 loc) 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateFeatureFlagsFile = void 0; const ToolbeltConfig_1 = require("../../api/clients/IOClients/apps/ToolbeltConfig"); const ErrorKinds_1 = require("../../api/error/ErrorKinds"); const ErrorReport_1 = require("../../api/error/ErrorReport"); const TelemetryCollector_1 = require("../../lib/telemetry/TelemetryCollector"); const hrTimeToMs_1 = require("../../lib/utils/hrTimeToMs"); const featureFlag_1 = require("../../api/modules/featureFlag"); const initTime = process.hrtime(); exports.updateFeatureFlagsFile = async (store) => { try { const client = ToolbeltConfig_1.ToolbeltConfig.createClient({}, { retries: 3 }); const { featureFlags } = await client.getGlobalConfig(); store.setFeatureFlagInfo(featureFlags); store.setLastFeatureFlagUpdate(Date.now()); } catch (err) { const telemetryCollector = TelemetryCollector_1.TelemetryCollector.getCollector(); const errorReport = telemetryCollector.registerError(ErrorReport_1.ErrorReport.create({ kind: ErrorKinds_1.ErrorKinds.FEATURE_FLAG_CHECK_ERROR, originalError: err, })); console.error('Error checking for feature flag', JSON.stringify(errorReport.toObject(), null, 2)); telemetryCollector.flush(); } }; if (require.main === module) { const store = featureFlag_1.FeatureFlag.getSingleton(); exports.updateFeatureFlagsFile(store); console.log(`Finished checking for feature flag after ${hrTimeToMs_1.hrTimeToMs(process.hrtime(initTime))}`); }