UNPKG

aws-cdk

Version:

AWS CDK CLI, the command line tool for CDK apps

42 lines 4.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.withTelemetryState = withTelemetryState; exports.loadTelemetryState = loadTelemetryState; exports.writeTelemetryState = writeTelemetryState; const fs = require("fs/promises"); const path = require("path"); const installation_id_1 = require("./installation-id"); const util_1 = require("../../util"); /** * Run a function that can modify the given telemetry state. */ async function withTelemetryState(block) { const state = await loadTelemetryState(); const oldState = JSON.stringify(state); const ret = block(state); // Only write a file if the contents changed. if (JSON.stringify(ret) !== oldState) { await writeTelemetryState(state); } return ret; } /** * Load telemetry state */ async function loadTelemetryState() { try { return JSON.parse(await fs.readFile(TELEMETRY_STATE_PATH, 'utf-8')); } catch (e) { if (e.code === 'ENOENT') { return {}; } throw e; } } async function writeTelemetryState(state) { await (0, installation_id_1.ensureCacheDir)(); await fs.writeFile(TELEMETRY_STATE_PATH, JSON.stringify(state, undefined, 2), 'utf-8'); } const TELEMETRY_STATE_PATH = path.join((0, util_1.cdkCacheDir)(), 'telemetry-state.json'); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZW1ldHJ5LXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVsZW1ldHJ5LXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0JBLGdEQVlDO0FBS0QsZ0RBU0M7QUFFRCxrREFJQztBQWxERCxrQ0FBa0M7QUFDbEMsNkJBQTZCO0FBQzdCLHVEQUFtRDtBQUNuRCxxQ0FBeUM7QUFZekM7O0dBRUc7QUFDSSxLQUFLLFVBQVUsa0JBQWtCLENBQUksS0FBK0I7SUFDekUsTUFBTSxLQUFLLEdBQUcsTUFBTSxrQkFBa0IsRUFBRSxDQUFDO0lBQ3pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFdkMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXpCLDZDQUE2QztJQUM3QyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDckMsTUFBTSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsa0JBQWtCO0lBQ3RDLElBQUksQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDeEIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsTUFBTSxDQUFDLENBQUM7SUFDVixDQUFDO0FBQ0gsQ0FBQztBQUVNLEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxLQUFxQjtJQUM3RCxNQUFNLElBQUEsZ0NBQWMsR0FBRSxDQUFDO0lBRXZCLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDekYsQ0FBQztBQUVELE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFBLGtCQUFXLEdBQUUsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGVuc3VyZUNhY2hlRGlyIH0gZnJvbSAnLi9pbnN0YWxsYXRpb24taWQnO1xuaW1wb3J0IHsgY2RrQ2FjaGVEaXIgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBUZWxlbWV0cnkgc3RhdGUgYWNyb3NzIENMSSBpbnZvY2F0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbGVtZXRyeVN0YXRlIHtcbiAgLyoqXG4gICAqIEhvdyBtYW55IGRlcGxveW1lbnQgZmFpbHVyZXMgd2UndmUgc2VlbiBzaW5jZSB0aGUgbGFzdCBzdWNjZXNzLlxuICAgKi9cbiAgc2VxdWVudGlhbERlcGxveW1lbnRGYWlsdXJlcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSdW4gYSBmdW5jdGlvbiB0aGF0IGNhbiBtb2RpZnkgdGhlIGdpdmVuIHRlbGVtZXRyeSBzdGF0ZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdpdGhUZWxlbWV0cnlTdGF0ZTxBPihibG9jazogKHg6IFRlbGVtZXRyeVN0YXRlKSA9PiBBKTogUHJvbWlzZTxBPiB7XG4gIGNvbnN0IHN0YXRlID0gYXdhaXQgbG9hZFRlbGVtZXRyeVN0YXRlKCk7XG4gIGNvbnN0IG9sZFN0YXRlID0gSlNPTi5zdHJpbmdpZnkoc3RhdGUpO1xuXG4gIGNvbnN0IHJldCA9IGJsb2NrKHN0YXRlKTtcblxuICAvLyBPbmx5IHdyaXRlIGEgZmlsZSBpZiB0aGUgY29udGVudHMgY2hhbmdlZC5cbiAgaWYgKEpTT04uc3RyaW5naWZ5KHJldCkgIT09IG9sZFN0YXRlKSB7XG4gICAgYXdhaXQgd3JpdGVUZWxlbWV0cnlTdGF0ZShzdGF0ZSk7XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuXG4vKipcbiAqIExvYWQgdGVsZW1ldHJ5IHN0YXRlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkVGVsZW1ldHJ5U3RhdGUoKTogUHJvbWlzZTxUZWxlbWV0cnlTdGF0ZT4ge1xuICB0cnkge1xuICAgIHJldHVybiBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKFRFTEVNRVRSWV9TVEFURV9QQVRILCAndXRmLTgnKSk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGlmIChlLmNvZGUgPT09ICdFTk9FTlQnKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIHRocm93IGU7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlVGVsZW1ldHJ5U3RhdGUoc3RhdGU6IFRlbGVtZXRyeVN0YXRlKSB7XG4gIGF3YWl0IGVuc3VyZUNhY2hlRGlyKCk7XG5cbiAgYXdhaXQgZnMud3JpdGVGaWxlKFRFTEVNRVRSWV9TVEFURV9QQVRILCBKU09OLnN0cmluZ2lmeShzdGF0ZSwgdW5kZWZpbmVkLCAyKSwgJ3V0Zi04Jyk7XG59XG5cbmNvbnN0IFRFTEVNRVRSWV9TVEFURV9QQVRIID0gcGF0aC5qb2luKGNka0NhY2hlRGlyKCksICd0ZWxlbWV0cnktc3RhdGUuanNvbicpO1xuIl19