@thisisagile/easy-service
Version:
Straightforward library for building domain-driven microservice architectures
26 lines (25 loc) • 738 B
TypeScript
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;