UNPKG

arky-js

Version:

**Arky.js** is a powerful, annotation-based framework for building serverless applications on **AWS Lambda and API Gateway**. Inspired by Angular and NestJS, Arky.js simplifies serverless development by providing decorators for defining modules, controlle

31 lines (30 loc) 1.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Controller = Controller; exports.Get = Get; exports.Post = Post; require("reflect-metadata"); const ROUTES_METADATA_KEY = "routes"; function Controller(prefix = "") { return function (target) { Reflect.defineMetadata("prefix", prefix, target); Reflect.defineMetadata("injectable", true, target); if (!Reflect.hasMetadata(ROUTES_METADATA_KEY, target)) { Reflect.defineMetadata(ROUTES_METADATA_KEY, [], target); } }; } function Get(path) { return function (target, propertyKey) { const routes = Reflect.getMetadata(ROUTES_METADATA_KEY, target.constructor) || []; routes.push({ method: "get", path, handler: propertyKey }); Reflect.defineMetadata(ROUTES_METADATA_KEY, routes, target.constructor); }; } function Post(path) { return function (target, propertyKey) { const routes = Reflect.getMetadata(ROUTES_METADATA_KEY, target.constructor) || []; routes.push({ method: "post", path, handler: propertyKey }); Reflect.defineMetadata(ROUTES_METADATA_KEY, routes, target.constructor); }; }