UNPKG

reshuffle

Version:

Reshuffle is a fast, unopinionated, minimalist integration framework

50 lines (49 loc) 1.83 kB
/// <reference types="node" /> import { Express } from 'express'; import { PersistentStoreAdapter } from './persistency'; import { BaseConnector, BaseHttpConnector, EventConfiguration } from 'reshuffle-base-connector'; import { Logger, LoggerOptions } from 'winston'; import http from 'http'; export interface Handler { handle: (event?: any) => void; id: string; } export default class Reshuffle { availableConnectors: any; httpDelegates: { [path: string]: BaseHttpConnector; }; port: number; registry: { connectors: { [url: string]: BaseConnector; }; handlers: { [id: string]: Handler[]; }; common: { webserver?: http.Server; persistentStore?: any; }; }; logger: Logger; constructor(loggerOptions?: LoggerOptions); prepareWebServer(): Express; register(connector: BaseConnector): Reshuffle; unregister(connector: BaseConnector): Promise<void>; getConnector(connectorId: BaseConnector['id']): BaseConnector; registerHTTPDelegate(path: string, delegate: BaseHttpConnector): Reshuffle; unregisterHTTPDelegate(path: string): void; when(eventConfiguration: EventConfiguration, handler: () => void | Handler): Reshuffle; start(port?: number, callback?: () => void): void; stopWebServer(): void; restart(port?: number): void; handleEvent(eventId: string, event: any): Promise<boolean>; _p_handle(handler: Handler, event: any): Promise<void>; setPersistentStore(adapter: PersistentStoreAdapter): PersistentStoreAdapter; getPersistentStore(): any; clearInterval(intervalID: NodeJS.Timer): void; setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer; getLogger(): Logger; } export { Reshuffle };