UNPKG

yasui

Version:

Lightweight Express-based framework for REST and web APIs

31 lines 3.12 kB
import { ReflectMetadata, getMetadata, defineMetadata } from '../utils/reflect.js'; import { HttpCode, RouteMethods } from '../enums/index.js'; function routeDecorator(method) { return function (path, ...middlewares) { return addRoute(method, path, ...middlewares); }; } function addRoute(method, path, ...middlewares) { return function (target, propertyKey, descriptor) { const methodName = String(propertyKey); const defaultStatus = getMetadata(ReflectMetadata.HTTP_STATUS, target, propertyKey) || HttpCode.OK; const params = getMetadata(ReflectMetadata.PARAMS, target, methodName) || []; const route = { method, path, middlewares, descriptor, methodName, defaultStatus, params, }; const routes = getMetadata(ReflectMetadata.ROUTES, target) || []; defineMetadata(ReflectMetadata.ROUTES, [...routes, route], target); }; } export const Get = routeDecorator(RouteMethods.GET); export const Post = routeDecorator(RouteMethods.POST); export const Put = routeDecorator(RouteMethods.PUT); export const Delete = routeDecorator(RouteMethods.DELETE); export const Patch = routeDecorator(RouteMethods.PATCH); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0aG9kcy5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjb3JhdG9ycy9tZXRob2RzLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBVTNELFNBQVMsY0FBYyxDQUFDLE1BQW9CO0lBQzFDLE9BQU8sVUFDTCxJQUFZLEVBQ1osR0FBRyxXQUEwQjtRQUU3QixPQUFPLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUdELFNBQVMsUUFBUSxDQUNmLE1BQW9CLEVBQ3BCLElBQVksRUFDWixHQUFHLFdBQTBCO0lBRTdCLE9BQU8sVUFDTCxNQUFjLEVBQ2QsV0FBNEIsRUFDNUIsVUFBOEI7UUFFOUIsTUFBTSxVQUFVLEdBQVcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsSUFBSSxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ25HLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFN0UsTUFBTSxLQUFLLEdBQXFCO1lBQzlCLE1BQU07WUFDTixJQUFJO1lBQ0osV0FBVztZQUNYLFVBQVU7WUFDVixVQUFVO1lBQ1YsYUFBYTtZQUNiLE1BQU07U0FDUCxDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pFLGNBQWMsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckUsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUlELE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBbUIsY0FBYyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVwRSxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQW1CLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFtQixjQUFjLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBbUIsY0FBYyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUUxRSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQW1CLGNBQWMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMifQ==