@naturalcycles/nodejs-lib
Version:
Standard library for Node.js
79 lines (78 loc) • 1.94 kB
TypeScript
import { StringMap } from '@naturalcycles/js-lib';
import { DebugLogLevel } from '..';
export interface SlackMessage {
/**
* @default bot
*/
username?: string;
channel?: string;
icon_url?: string;
/**
* @default :spider_web:
*/
icon_emoji?: string;
/**
* You can throw anything at it, it'll handle it appropriately:
* String - as is
* Object - pass via util.inspect()
* Error - print the stack nicely
*/
text: any;
level?: DebugLogLevel;
attachments?: SlackMessageAttachment[];
/**
* Keys-values will be rendered as MessageAttachment with Fields
*/
kv?: StringMap<any>;
/**
* If specified - adds @name1, @name2 in the end of the message
*/
mentions?: string[];
/**
* @default false
* By default it ignores possible errors from slack
*/
throwOnError?: boolean;
/**
* @default false
* Skips logging message
*/
noLog?: boolean;
}
export interface SlackAttachmentField {
title: string;
value: string;
short?: boolean;
}
export interface SlackMessageAttachment {
fallback?: string;
color?: 'good' | 'warning' | 'danger' | string;
pretext?: string;
author_name?: string;
author_link?: string;
author_icon?: string;
title?: string;
title_link?: string;
text?: string;
fields?: SlackAttachmentField[];
image_url?: string;
thumb_url?: string;
footer?: string;
footer_icon?: string;
ts?: number;
callback_id?: string;
mrkdwn_in?: ('pretext' | 'text' | 'fields')[];
}
export interface SlackSharedServiceCfg {
/**
* Undefined means slack is disabled.
*/
webhookUrl?: string;
defaults?: Partial<SlackMessage>;
/**
* Override channel when msg.level is set.
* key: DebugLogLevel
* value: channel name to send message to
*/
channelByLevel?: StringMap;
}