UNPKG

cdk-monitoring-constructs

Version:

[![NPM version](https://badge.fury.io/js/cdk-monitoring-constructs.svg)](https://badge.fury.io/js/cdk-monitoring-constructs) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.cdklabs/cdkmonitoringconstructs/badge.svg)](https://m

48 lines 5.57 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.KeyValueTableWidget = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const aws_cloudwatch_1 = require("aws-cdk-lib/aws-cloudwatch"); const widget_1 = require("../../common/widget"); /** * A widget that displays key-value pairs in a table format. */ class KeyValueTableWidget extends aws_cloudwatch_1.TextWidget { constructor(data) { const normalizedData = KeyValueTableWidget.normalizeData(data); super({ width: widget_1.FullWidth, height: 3, markdown: KeyValueTableWidget.toMarkdown(normalizedData), }); } static normalizeData(data) { if (data.length === 0) { return []; } // Check if it's a tuple array by inspecting the first element if (Array.isArray(data[0])) { return data.map(([key, value]) => ({ key, value, })); } return data; } static toMarkdown(data) { let headerRow = ""; let subHeaderRow = ""; let valueRow = ""; data.forEach(({ key, value }) => { headerRow += "| " + key; subHeaderRow += "|---"; valueRow += "| " + value; }); return `${headerRow}\n${subHeaderRow}\n${valueRow}`; } } exports.KeyValueTableWidget = KeyValueTableWidget; _a = JSII_RTTI_SYMBOL_1; KeyValueTableWidget[_a] = { fqn: "cdk-monitoring-constructs.KeyValueTableWidget", version: "9.19.0" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5VmFsdWVUYWJsZVdpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIktleVZhbHVlVGFibGVXaWRnZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrREFBd0Q7QUFFeEQsZ0RBQWdEO0FBT2hEOztHQUVHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSwyQkFBVTtJQWVqRCxZQUFZLElBQXFDO1FBQy9DLE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRCxLQUFLLENBQUM7WUFDSixLQUFLLEVBQUUsa0JBQVM7WUFDaEIsTUFBTSxFQUFFLENBQUM7WUFDVCxRQUFRLEVBQUUsbUJBQW1CLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQztTQUN6RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sTUFBTSxDQUFDLGFBQWEsQ0FDMUIsSUFBcUM7UUFFckMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNyQixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsOERBQThEO1FBQzlELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxQixPQUFRLElBQTJCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3pELEdBQUc7Z0JBQ0gsS0FBSzthQUNOLENBQUMsQ0FBQyxDQUFDO1NBQ0w7UUFFRCxPQUFPLElBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBZ0I7UUFDeEMsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFFbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDOUIsU0FBUyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUM7WUFDeEIsWUFBWSxJQUFJLE1BQU0sQ0FBQztZQUN2QixRQUFRLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxTQUFTLEtBQUssWUFBWSxLQUFLLFFBQVEsRUFBRSxDQUFDO0lBQ3RELENBQUM7O0FBdERILGtEQXVEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRleHRXaWRnZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcblxuaW1wb3J0IHsgRnVsbFdpZHRoIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi93aWRnZXRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBLZXlWYWx1ZSB7XG4gIHJlYWRvbmx5IGtleTogc3RyaW5nO1xuICByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgd2lkZ2V0IHRoYXQgZGlzcGxheXMga2V5LXZhbHVlIHBhaXJzIGluIGEgdGFibGUgZm9ybWF0LlxuICovXG5leHBvcnQgY2xhc3MgS2V5VmFsdWVUYWJsZVdpZGdldCBleHRlbmRzIFRleHRXaWRnZXQge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIGtleS12YWx1ZSB0YWJsZSB3aWRnZXQuXG4gICAqIEBwYXJhbSBkYXRhIEFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyBhcyBvYmplY3RzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihkYXRhOiBLZXlWYWx1ZVtdKTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGtleS12YWx1ZSB0YWJsZSB3aWRnZXQuXG4gICAqIEBwYXJhbSBkYXRhIEFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyBhcyB0dXBsZXNcbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBLZXlWYWx1ZVtdIGNvbnN0cnVjdG9yIGluc3RlYWQuIFRoaXMgdHVwbGUgZm9ybWF0IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggSlNJSSA1LnggYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uLlxuICAgKi9cbiAgY29uc3RydWN0b3IoZGF0YTogW3N0cmluZywgc3RyaW5nXVtdKTtcblxuICBjb25zdHJ1Y3RvcihkYXRhOiBLZXlWYWx1ZVtdIHwgW3N0cmluZywgc3RyaW5nXVtdKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZERhdGEgPSBLZXlWYWx1ZVRhYmxlV2lkZ2V0Lm5vcm1hbGl6ZURhdGEoZGF0YSk7XG4gICAgc3VwZXIoe1xuICAgICAgd2lkdGg6IEZ1bGxXaWR0aCxcbiAgICAgIGhlaWdodDogMyxcbiAgICAgIG1hcmtkb3duOiBLZXlWYWx1ZVRhYmxlV2lkZ2V0LnRvTWFya2Rvd24obm9ybWFsaXplZERhdGEpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbm9ybWFsaXplRGF0YShcbiAgICBkYXRhOiBLZXlWYWx1ZVtdIHwgW3N0cmluZywgc3RyaW5nXVtdLFxuICApOiBLZXlWYWx1ZVtdIHtcbiAgICBpZiAoZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiBpdCdzIGEgdHVwbGUgYXJyYXkgYnkgaW5zcGVjdGluZyB0aGUgZmlyc3QgZWxlbWVudFxuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGFbMF0pKSB7XG4gICAgICByZXR1cm4gKGRhdGEgYXMgW3N0cmluZywgc3RyaW5nXVtdKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHtcbiAgICAgICAga2V5LFxuICAgICAgICB2YWx1ZSxcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YSBhcyBLZXlWYWx1ZVtdO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgdG9NYXJrZG93bihkYXRhOiBLZXlWYWx1ZVtdKSB7XG4gICAgbGV0IGhlYWRlclJvdyA9IFwiXCI7XG4gICAgbGV0IHN1YkhlYWRlclJvdyA9IFwiXCI7XG4gICAgbGV0IHZhbHVlUm93ID0gXCJcIjtcblxuICAgIGRhdGEuZm9yRWFjaCgoeyBrZXksIHZhbHVlIH0pID0+IHtcbiAgICAgIGhlYWRlclJvdyArPSBcInwgXCIgKyBrZXk7XG4gICAgICBzdWJIZWFkZXJSb3cgKz0gXCJ8LS0tXCI7XG4gICAgICB2YWx1ZVJvdyArPSBcInwgXCIgKyB2YWx1ZTtcbiAgICB9KTtcblxuICAgIHJldHVybiBgJHtoZWFkZXJSb3d9XFxuJHtzdWJIZWFkZXJSb3d9XFxuJHt2YWx1ZVJvd31gO1xuICB9XG59XG4iXX0=