@eggjs/controller-decorator
Version:
tegg controller decorator
139 lines • 8.67 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ParamMetaUtil = exports.HTTPMethodMeta = exports.CookiesParamMeta = exports.PathParamMeta = exports.QueriesParamMeta = exports.QueryParamMeta = exports.HeadersParamMeta = exports.BodyParamMeta = exports.RequestParamMeta = exports.ParamMeta = void 0;
const node_assert_1 = __importDefault(require("node:assert"));
const path_to_regexp_1 = __importDefault(require("path-to-regexp"));
const tegg_types_1 = require("@eggjs/tegg-types");
class ParamMeta {
}
exports.ParamMeta = ParamMeta;
class RequestParamMeta extends ParamMeta {
constructor() {
super(...arguments);
this.type = tegg_types_1.HTTPParamType.REQUEST;
}
validate() {
return;
}
}
exports.RequestParamMeta = RequestParamMeta;
class BodyParamMeta extends ParamMeta {
constructor() {
super(...arguments);
this.type = tegg_types_1.HTTPParamType.BODY;
}
validate() {
return;
}
}
exports.BodyParamMeta = BodyParamMeta;
class HeadersParamMeta extends ParamMeta {
constructor() {
super(...arguments);
this.type = tegg_types_1.HTTPParamType.HEADERS;
}
validate() {
return;
}
}
exports.HeadersParamMeta = HeadersParamMeta;
class QueryParamMeta extends ParamMeta {
constructor(name) {
super();
this.type = tegg_types_1.HTTPParamType.QUERY;
this.name = name;
}
validate() {
return;
}
}
exports.QueryParamMeta = QueryParamMeta;
class QueriesParamMeta extends ParamMeta {
constructor(name) {
super();
this.type = tegg_types_1.HTTPParamType.QUERIES;
this.name = name;
}
validate() {
return;
}
}
exports.QueriesParamMeta = QueriesParamMeta;
class PathParamMeta extends ParamMeta {
constructor(name) {
super();
this.type = tegg_types_1.HTTPParamType.PARAM;
this.name = name;
}
validate(httpPath) {
const names = [];
(0, path_to_regexp_1.default)(httpPath, names);
if (!names.find(name => String(name.name) === this.name)) {
throw new Error(`can not find param ${this.name} in path ${httpPath}`);
}
}
}
exports.PathParamMeta = PathParamMeta;
class CookiesParamMeta extends ParamMeta {
constructor() {
super(...arguments);
this.type = tegg_types_1.HTTPParamType.COOKIES;
}
validate() {
return;
}
}
exports.CookiesParamMeta = CookiesParamMeta;
class HTTPMethodMeta {
constructor(name, path, method, middlewares, contextParamIndex, paramTypeMap, priority, needAcl, aclCode, hosts, timeout) {
this.name = name;
this.path = path;
this.method = method;
this.middlewares = middlewares;
this.contextParamIndex = contextParamIndex;
this.paramMap = paramTypeMap;
this.priority = priority;
this.needAcl = needAcl;
this.aclCode = aclCode;
this.hosts = hosts;
this.timeout = timeout;
}
}
exports.HTTPMethodMeta = HTTPMethodMeta;
class ParamMetaUtil {
static createParam(type, name) {
switch (type) {
case tegg_types_1.HTTPParamType.PARAM: {
(0, node_assert_1.default)(name, 'path param must has name');
return new PathParamMeta(name);
}
case tegg_types_1.HTTPParamType.BODY: {
return new BodyParamMeta();
}
case tegg_types_1.HTTPParamType.HEADERS: {
return new HeadersParamMeta();
}
case tegg_types_1.HTTPParamType.QUERIES: {
(0, node_assert_1.default)(name, 'queries param must has name');
return new QueriesParamMeta(name);
}
case tegg_types_1.HTTPParamType.QUERY: {
(0, node_assert_1.default)(name, 'query param must has name');
return new QueryParamMeta(name);
}
case tegg_types_1.HTTPParamType.REQUEST: {
return new RequestParamMeta();
}
case tegg_types_1.HTTPParamType.COOKIES: {
return new CookiesParamMeta();
}
default:
node_assert_1.default.fail('never arrive');
}
}
}
exports.ParamMetaUtil = ParamMetaUtil;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSFRUUE1ldGhvZE1ldGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWwvSFRUUE1ldGhvZE1ldGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOERBQWlDO0FBQ2pDLG9FQUEwQztBQUMxQyxrREFBa0Q7QUFHbEQsTUFBc0IsU0FBUztDQUk5QjtBQUpELDhCQUlDO0FBQ0QsTUFBYSxnQkFBaUIsU0FBUSxTQUFTO0lBQS9DOztRQUNFLFNBQUksR0FBRywwQkFBYSxDQUFDLE9BQU8sQ0FBQztJQUsvQixDQUFDO0lBSEMsUUFBUTtRQUNOLE9BQU87SUFDVCxDQUFDO0NBQ0Y7QUFORCw0Q0FNQztBQUVELE1BQWEsYUFBYyxTQUFRLFNBQVM7SUFBNUM7O1FBQ0UsU0FBSSxHQUFHLDBCQUFhLENBQUMsSUFBSSxDQUFDO0lBSzVCLENBQUM7SUFIQyxRQUFRO1FBQ04sT0FBTztJQUNULENBQUM7Q0FDRjtBQU5ELHNDQU1DO0FBRUQsTUFBYSxnQkFBaUIsU0FBUSxTQUFTO0lBQS9DOztRQUNFLFNBQUksR0FBRywwQkFBYSxDQUFDLE9BQU8sQ0FBQztJQUsvQixDQUFDO0lBSEMsUUFBUTtRQUNOLE9BQU87SUFDVCxDQUFDO0NBQ0Y7QUFORCw0Q0FNQztBQUVELE1BQWEsY0FBZSxTQUFRLFNBQVM7SUFJM0MsWUFBWSxJQUFZO1FBQ3RCLEtBQUssRUFBRSxDQUFDO1FBSlYsU0FBSSxHQUFHLDBCQUFhLENBQUMsS0FBSyxDQUFDO1FBS3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTztJQUNULENBQUM7Q0FDRjtBQVpELHdDQVlDO0FBRUQsTUFBYSxnQkFBaUIsU0FBUSxTQUFTO0lBSTdDLFlBQVksSUFBWTtRQUN0QixLQUFLLEVBQUUsQ0FBQztRQUpWLFNBQUksR0FBRywwQkFBYSxDQUFDLE9BQU8sQ0FBQztRQUszQixJQUFJLENBQUMsSUFBSSxH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