UNPKG

n-slack

Version:
40 lines (39 loc) 1.29 kB
import { InjectionToken, ModuleMetadata, OptionalFactoryDependency, Type } from "@nestjs/common"; import { WebClientOptions } from "@slack/web-api"; import { Channels } from "."; export interface SlackApiOptions { type: "api"; token: string; defaultChannel?: string; clientOptions?: WebClientOptions; } export interface SlackWebhookOptions { type: "webhook"; url: string; } export interface SlackMultipleWebhooksOptions { type: "webhook"; channels: { name: string; url: string; }[]; defaultChannel?: Channels; } export interface SlackStdoutOptions { type: "stdout"; output?: (out: unknown) => void; } export type SlackConfig = SlackApiOptions | SlackWebhookOptions | SlackMultipleWebhooksOptions | SlackStdoutOptions; export type SlackSyncConfig = SlackConfig & { isGlobal?: boolean; }; export interface SlackAsyncConfig extends Pick<ModuleMetadata, "imports"> { useClass?: Type<SlackConfigFactory>; useFactory?: (...args: unknown[]) => Promise<SlackConfig> | SlackConfig; inject?: Array<InjectionToken | OptionalFactoryDependency>; useExisting?: Type<SlackConfigFactory>; isGlobal?: boolean; } export interface SlackConfigFactory { slackConfigModuleOptions(): Promise<SlackConfig> | SlackConfig; }