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
JavaScript
;
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);
};
}