1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-04 00:18:01 +01:00
unleash.unleash/src/lib/addons/index.ts

30 lines
832 B
TypeScript
Raw Normal View History

import Webhook from './webhook';
import SlackAddon from './slack';
import TeamsAddon from './teams';
import DatadogAddon from './datadog';
import NewRelicAddon from './new-relic';
import type Addon from './addon';
import SlackAppAddon from './slack-app';
import type { IAddonConfig } from '../types';
export interface IAddonProviders {
[key: string]: Addon;
}
export const getAddons: (args: IAddonConfig) => IAddonProviders = (args) => {
const addons: Addon[] = [
new Webhook(args),
new SlackAddon(args),
new SlackAppAddon(args),
new TeamsAddon(args),
new DatadogAddon(args),
new NewRelicAddon(args),
];
return addons.reduce((map, addon) => {
// eslint-disable-next-line no-param-reassign
map[addon.name] = addon;
return map;
}, {});
};