@defikitdotnet/education-module-ai
Version:
AI Education Module using Agent Framework
104 lines (103 loc) • 3.06 kB
JavaScript
;
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.MIDDLEWARE_META_KEY = exports.ROUTES_META_KEY = exports.CONTROLLER_META_KEY = void 0;
exports.Controller = Controller;
exports.Route = Route;
exports.Get = Get;
exports.Post = Post;
exports.Put = Put;
exports.Delete = Delete;
exports.Patch = Patch;
exports.Use = Use;
require("reflect-metadata");
// Decorator keys for metadata
exports.CONTROLLER_META_KEY = "controller:base-path";
exports.ROUTES_META_KEY = "controller:routes";
exports.MIDDLEWARE_META_KEY = "controller:middleware";
/**
* Controller decorator - marks a class as a controller
* @param basePath Base path for all routes in this controller
*/
function Controller(basePath) {
return function (target) {
Reflect.defineMetadata(exports.CONTROLLER_META_KEY, basePath, target);
return target;
};
}
/**
* Route decorator - marks a method as a route handler
* @param path Route path
* @param method HTTP method
*/
function Route(path, method) {
return function (target, propertyKey, descriptor) {
var routes = Reflect.getMetadata(exports.ROUTES_META_KEY, target.constructor) || {};
routes[propertyKey] = {
path: path,
method: method,
propertyKey: propertyKey,
};
Reflect.defineMetadata(exports.ROUTES_META_KEY, routes, target.constructor);
return descriptor;
};
}
/**
* GET route decorator
* @param path Route path
*/
function Get(path) {
return Route(path, "GET");
}
/**
* POST route decorator
* @param path Route path
*/
function Post(path) {
return Route(path, "POST");
}
/**
* PUT route decorator
* @param path Route path
*/
function Put(path) {
return Route(path, "PUT");
}
/**
* DELETE route decorator
* @param path Route path
*/
function Delete(path) {
return Route(path, "DELETE");
}
/**
* PATCH route decorator
* @param path Route path
*/
function Patch(path) {
return Route(path, "PATCH");
}
/**
* Middleware decorator - adds middleware to a route handler
* @param middleware Middleware function(s)
*/
function Use() {
var middleware = [];
for (var _i = 0; _i < arguments.length; _i++) {
middleware[_i] = arguments[_i];
}
return function (target, propertyKey, descriptor) {
var middlewareList = Reflect.getMetadata(exports.MIDDLEWARE_META_KEY, target.constructor) || {};
middlewareList[propertyKey] = __spreadArray(__spreadArray([], (middlewareList[propertyKey] || []), true), middleware, true);
Reflect.defineMetadata(exports.MIDDLEWARE_META_KEY, middlewareList, target.constructor);
return descriptor;
};
}