cdk-monitoring-constructs
Version:
[](https://badge.fury.io/js/cdk-monitoring-constructs) [](https://m
48 lines • 5.57 kB
JavaScript
;
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=