serverless-plugin-aws-alerts
Version:
[![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Dependency Status][daviddm-image]][daviddm-url] [![codecov][codecov-image]][codecov-url]
35 lines (27 loc) • 742 B
JavaScript
const widgetFactory = require('./widgets/factory');
const dashboards = {
default: require('./configs/default'),
vertical: require('./configs/vertical'),
};
const createDashboard = (service, stage, region, functions, name) => {
const dashboard = dashboards[name];
if (!dashboard) {
throw new Error(`Cannot find dashboard by name ${name}`);
}
const widgets = dashboard.widgets.map((w) => {
const widget = widgetFactory.getWidget(w.service, w.metric, w.display);
const config = {
service,
stage,
region,
coordinates: w.coordinates,
title: w.title,
functions,
};
return widget.createWidget(config);
});
return { widgets };
};
module.exports = {
createDashboard,
};