vtex
Version:
The platform for e-commerce apps
33 lines (32 loc) • 1.61 kB
JavaScript
;
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))}`);
}