UNPKG

1.88 kBSource Map (JSON)View Raw
1{"version":3,"file":"middleware.js","sourceRoot":"","sources":["middleware.ts"],"names":[],"mappings":"","sourcesContent":["import { AccountInfo } from './accounts'\nimport Stats from '../services/stats'\n\nexport interface MiddlewareDefinition {\n type: string,\n options?: object\n}\n\n/**\n * Services the connector exposes to middleware.\n */\nexport interface MiddlewareServices {\n stats: Stats\n getInfo (accountId: string): AccountInfo\n getOwnAddress (): string\n sendData (data: Buffer, accountId: string): Promise<Buffer>\n sendMoney (amount: string, accountId: string): Promise<void>\n}\n\nexport interface MiddlewareCallback<T,U> {\n (val: T): Promise<U>\n}\n\nexport interface MiddlewareMethod<T,U> {\n (val: T, next: MiddlewareCallback<T,U>): Promise<U>\n}\n\nexport interface MiddlewareMethods {\n data: MiddlewareMethod<Buffer, Buffer>\n money: MiddlewareMethod<string, void>\n}\n\nexport interface PipelineEntry<T,U> {\n name: string,\n method: MiddlewareMethod<T,U>\n}\n\nexport interface Pipeline<T,U> {\n insertFirst (entry: PipelineEntry<T,U>): void\n insertLast (entry: PipelineEntry<T,U>): void\n insertBefore (middlewareName: string, entry: PipelineEntry<T,U>): void\n insertAfter (middlewareName: string, entry: PipelineEntry<T,U>): void\n getMethods (): MiddlewareMethod<T,U>[]\n}\n\nexport interface Pipelines {\n readonly startup: Pipeline<void, void>,\n readonly teardown: Pipeline<void, void>,\n readonly incomingData: Pipeline<Buffer, Buffer>,\n readonly incomingMoney: Pipeline<string, void>,\n readonly outgoingData: Pipeline<Buffer, Buffer>\n readonly outgoingMoney: Pipeline<string, void>\n}\n\nexport interface Middleware {\n applyToPipelines: (pipelines: Pipelines, accountId: string) => Promise<void>\n}\n\nexport interface MiddlewareConstructor {\n new (options: object, api: MiddlewareServices): Middleware\n}\n"]}
\No newline at end of file