@feathersjs/koa
Version:
Feathers KoaJS framework bindings and REST provider
30 lines (29 loc) • 1 kB
TypeScript
import Koa, { Next } from 'koa';
import { Server } from 'http';
import { Application as FeathersApplication, HookContext, Params, RouteLookup } from '@feathersjs/feathers';
import '@feathersjs/authentication';
export type ApplicationAddons = {
server: Server;
listen(port?: number, ...args: any[]): Promise<Server>;
};
export type Application<T = any, C = any> = Omit<Koa, 'listen'> & FeathersApplication<T, C> & ApplicationAddons;
export type FeathersKoaContext<A = Application> = Koa.Context & {
app: A;
};
export type Middleware<A = Application> = (context: FeathersKoaContext<A>, next: Next) => any;
declare module '@feathersjs/feathers/lib/declarations' {
interface ServiceOptions {
koa?: {
before?: Middleware[];
after?: Middleware[];
composed?: Middleware;
};
}
}
declare module 'koa' {
interface ExtendableContext {
feathers?: Partial<Params>;
lookup?: RouteLookup;
hook?: HookContext;
}
}