UNPKG

@thisisagile/easy-service

Version:

Straightforward library for building domain-driven microservice architectures

26 lines (25 loc) 738 B
import { List, Uri, Scope, UseCase, Req } from '@thisisagile/easy'; import { Resource } from './Resource'; import { RequestHandler } from 'express'; import { Verb } from '../http/Verb'; export declare const route: (uri: Uri) => ClassDecorator; export type Endpoint<T = unknown> = (re: Req) => Promise<T | List<T>>; export type RouteRequires = { token: boolean; labCoat: boolean; scope?: Scope; uc?: UseCase; }; export type Route = { verb: Verb; name: string; endpoint: Endpoint; requires: RouteRequires; middleware: RequestHandler[]; }; export type Routes = { route: Uri; middleware: RequestHandler[]; endpoints: List<Route>; }; export declare const routes: (resource: Resource) => Routes;