UNPKG

@feathersjs/express

Version:

Feathers Express framework bindings and REST provider

69 lines (61 loc) 2.08 kB
import http from 'http' import express, { Express } from 'express' import { Application as FeathersApplication, Params as FeathersParams, HookContext, ServiceMethods, ServiceInterface, RouteLookup } from '@feathersjs/feathers' interface ExpressUseHandler<T, Services> { <L extends keyof Services & string>( path: L, ...middlewareOrService: ( | Express | express.RequestHandler | express.RequestHandler[] | (keyof any extends keyof Services ? ServiceInterface : Services[L]) )[] ): T (path: string | RegExp, ...expressHandlers: express.RequestHandler[]): T (...expressHandlers: express.RequestHandler[]): T (handler: Express | express.ErrorRequestHandler): T } export interface ExpressOverrides<Services> { listen(port: number, hostname: string, backlog: number, callback?: () => void): Promise<http.Server> listen(port: number, hostname: string, callback?: () => void): Promise<http.Server> listen(port: number | string | any, callback?: () => void): Promise<http.Server> listen(callback?: () => void): Promise<http.Server> use: ExpressUseHandler<this, Services> server?: http.Server } export type Application<Services = any, Settings = any> = Omit<Express, 'listen' | 'use' | 'get' | 'set'> & FeathersApplication<Services, Settings> & ExpressOverrides<Services> declare module '@feathersjs/feathers/lib/declarations' { interface ServiceOptions { express?: { before?: express.RequestHandler[] after?: express.RequestHandler[] composed?: express.RequestHandler } } } declare module 'express-serve-static-core' { interface Request { feathers: Partial<FeathersParams> & { [key: string]: any } lookup?: RouteLookup } interface Response { data?: any hook?: HookContext } interface IRouterMatcher<T> { // eslint-disable-next-line <P extends Params = ParamsDictionary, ResBody = any, ReqBody = any>( path: PathParams, ...handlers: (RequestHandler<P, ResBody, ReqBody> | Partial<ServiceMethods> | Application)[] ): T } }