UNPKG

@thisisagile/easy-service

Version:

Straightforward library for building domain-driven microservice architectures

39 lines (38 loc) 1.05 kB
// src/resources/Route.ts import { meta, tryTo } from "@thisisagile/easy"; var route = (uri) => (subject) => { meta(subject).set("route", uri); }; var toRoute = (endpoint, requires, verb, middleware) => tryTo(verb).is.defined().map((verb2) => ({ verb: verb2, endpoint, requires, middleware: middleware ?? [] })).orElse(); var Router = class { constructor(resource) { this.resource = resource; } get route() { return meta(this.resource).get("route"); } get middleware() { return meta(this.resource).get("middleware") ?? []; } get endpoints() { return meta(this.resource).properties("verb").mapDefined( (v) => toRoute( this.resource[v.property], { labCoat: v.get("labCoat") ?? false, token: v.get("token") ?? false, scope: v.get("scope"), uc: v.get("uc") }, v.get("verb"), v.get("middleware") ) ); } }; var routes = (resource) => new Router(resource); export { route, routes }; //# sourceMappingURL=chunk-FYPLZQRO.mjs.map