@nodeswork/kiws
Version:
Koa-based Injectable Web Service
27 lines (26 loc) • 874 B
TypeScript
/// <reference types="koa-router" />
import 'reflect-metadata';
import * as Router from 'koa-router';
import { Constructor } from './injection';
export declare const INPUT = "INPUT";
export declare const INPUT_METADATA_KEY: symbol;
/**
* InputProvider class decorator will register the middlewares declared in
* the provider to provide inputs when serving traffic.
*/
export declare function InputProvider(options?: {
tags?: string[];
meta?: object;
}): (constructor: Constructor) => void;
export declare function InputGenerator(options?: {}): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export interface InputGeneratorMetadata {
provider: string;
name: string;
}
export interface RawInput {
type: string;
data: any;
}
export interface InputProvider {
$generateInputs(ctx: Router.IRouterContext): RawInput[];
}