@aws/pdk
Version:
All documentation is located at: https://aws.github.io/aws-pdk
45 lines • 5.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getUniqueMetrics = exports.addMetric = void 0;
const PACKAGE_METRIC_INFO = {
identity: { metric: "c1" },
"pdk-nag": { metric: "c2" },
"static-website": { metric: "c3" },
"type-safe-rest-api": { metric: "c4" },
"type-safe-websocket-api": { metric: "c5" },
"cdk-graph": { metric: "c6" },
"cdk-graph-plugin-diagram": { metric: "c7" },
"cdk-graph-plugin-threat-composer": { metric: "c8" },
};
const METRICS_METADATA_TYPE = "__aws-pdk-metric";
/**
* Add construct metric info
*/
const addMetric = (scope, pkg) => {
// Add metric info to the root node
const metricInfo = PACKAGE_METRIC_INFO[pkg];
const root = scope?.node?.root?.node;
if (metricInfo && root) {
root.addMetadata(METRICS_METADATA_TYPE, PACKAGE_METRIC_INFO[pkg]);
}
};
exports.addMetric = addMetric;
/**
* Gets registered metrics from the construct tree
*/
const getUniqueMetrics = (scope) => {
const root = scope?.node?.root?.node;
const metrics = (root?.metadata ?? [])
.filter((m) => m.type === METRICS_METADATA_TYPE)
.map((m) => m.data);
const seen = new Set();
return metrics.filter((m) => {
if (!seen.has(m.metric)) {
seen.add(m.metric);
return true;
}
return false;
});
};
exports.getUniqueMetrics = getUniqueMetrics;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1ldHJpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUEsTUFBTSxtQkFBbUIsR0FBRztJQUMxQixRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0lBQzFCLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7SUFDM0IsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0lBQ2xDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtJQUN0Qyx5QkFBeUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7SUFDM0MsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtJQUM3QiwwQkFBMEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7SUFDNUMsa0NBQWtDLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0NBQ1AsQ0FBQztBQUloRCxNQUFNLHFCQUFxQixHQUFHLGtCQUFrQixDQUFDO0FBRWpEOztHQUVHO0FBQ0ksTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFnQixFQUFFLEdBQWUsRUFBRSxFQUFFO0lBQzdELG1DQUFtQztJQUNuQyxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxNQUFNLElBQUksR0FBRyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7SUFDckMsSUFBSSxVQUFVLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7QUFDSCxDQUFDLENBQUM7QUFQVyxRQUFBLFNBQVMsYUFPcEI7QUFFRjs7R0FFRztBQUNJLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFnQixFQUFnQixFQUFFO0lBQ2pFLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQztJQUNyQyxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDO1NBQ25DLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxxQkFBcUIsQ0FBQztTQUMvQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQWlCLENBQUM7SUFDdEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUMvQixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBYlcsUUFBQSxnQkFBZ0Isb0JBYTNCIiwic291cmNlc0NvbnRlbnQiOlsiLyohIENvcHlyaWdodCBbQW1hem9uLmNvbV0oaHR0cDovL2FtYXpvbi5jb20vKSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wICovXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbnRlcmZhY2UgTWV0cmljSW5mbyB7XG4gIHJlYWRvbmx5IG1ldHJpYzogc3RyaW5nO1xufVxuXG5jb25zdCBQQUNLQUdFX01FVFJJQ19JTkZPID0ge1xuICBpZGVudGl0eTogeyBtZXRyaWM6IFwiYzFcIiB9LFxuICBcInBkay1uYWdcIjogeyBtZXRyaWM6IFwiYzJcIiB9LFxuICBcInN0YXRpYy13ZWJzaXRlXCI6IHsgbWV0cmljOiBcImMzXCIgfSxcbiAgXCJ0eXBlLXNhZmUtcmVzdC1hcGlcIjogeyBtZXRyaWM6IFwiYzRcIiB9LFxuICBcInR5cGUtc2FmZS13ZWJzb2NrZXQtYXBpXCI6IHsgbWV0cmljOiBcImM1XCIgfSxcbiAgXCJjZGstZ3JhcGhcIjogeyBtZXRyaWM6IFwiYzZcIiB9LFxuICBcImNkay1ncmFwaC1wbHVnaW4tZGlhZ3JhbVwiOiB7IG1ldHJpYzogXCJjN1wiIH0sXG4gIFwiY2RrLWdyYXBoLXBsdWdpbi10aHJlYXQtY29tcG9zZXJcIjogeyBtZXRyaWM6IFwiYzhcIiB9LFxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgTWV0cmljSW5mbz47XG5cbmV4cG9ydCB0eXBlIFBka1BhY2thZ2UgPSBrZXlvZiB0eXBlb2YgUEFDS0FHRV9NRVRSSUNfSU5GTztcblxuY29uc3QgTUVUUklDU19NRVRBREFUQV9UWVBFID0gXCJfX2F3cy1wZGstbWV0cmljXCI7XG5cbi8qKlxuICogQWRkIGNvbnN0cnVjdCBtZXRyaWMgaW5mb1xuICovXG5leHBvcnQgY29uc3QgYWRkTWV0cmljID0gKHNjb3BlOiBDb25zdHJ1Y3QsIHBrZzogUGRrUGFja2FnZSkgPT4ge1xuICAvLyBBZGQgbWV0cmljIGluZm8gdG8gdGhlIHJvb3Qgbm9kZVxuICBjb25zdCBtZXRyaWNJbmZvID0gUEFDS0FHRV9NRVRSSUNfSU5GT1twa2ddO1xuICBjb25zdCByb290ID0gc2NvcGU/Lm5vZGU/LnJvb3Q/Lm5vZGU7XG4gIGlmIChtZXRyaWNJbmZvICYmIHJvb3QpIHtcbiAgICByb290LmFkZE1ldGFkYXRhKE1FVFJJQ1NfTUVUQURBVEFfVFlQRSwgUEFDS0FHRV9NRVRSSUNfSU5GT1twa2ddKTtcbiAgfVxufTtcblxuLyoqXG4gKiBHZXRzIHJlZ2lzdGVyZWQgbWV0cmljcyBmcm9tIHRoZSBjb25zdHJ1Y3QgdHJlZVxuICovXG5leHBvcnQgY29uc3QgZ2V0VW5pcXVlTWV0cmljcyA9IChzY29wZTogQ29uc3RydWN0KTogTWV0cmljSW5mb1tdID0+IHtcbiAgY29uc3Qgcm9vdCA9IHNjb3BlPy5ub2RlPy5yb290Py5ub2RlO1xuICBjb25zdCBtZXRyaWNzID0gKHJvb3Q/Lm1ldGFkYXRhID8/IFtdKVxuICAgIC5maWx0ZXIoKG0pID0+IG0udHlwZSA9PT0gTUVUUklDU19NRVRBREFUQV9UWVBFKVxuICAgIC5tYXAoKG0pID0+IG0uZGF0YSkgYXMgTWV0cmljSW5mb1tdO1xuICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHJldHVybiBtZXRyaWNzLmZpbHRlcigobSkgPT4ge1xuICAgIGlmICghc2Vlbi5oYXMobS5tZXRyaWMpKSB7XG4gICAgICBzZWVuLmFkZChtLm1ldHJpYyk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9KTtcbn07XG4iXX0=