@tsed/common
Version:
A TypeScript Framework on top of Express
62 lines • 2.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ParamMetadata = void 0;
const tslib_1 = require("tslib");
const core_1 = require("@tsed/core");
const schema_1 = require("@tsed/schema");
let ParamMetadata = class ParamMetadata extends schema_1.JsonEntityStore {
constructor(options) {
super(options);
this.pipes = [];
const { expression, paramType, pipes } = options;
this.expression = expression || this.expression;
this.paramType = paramType || this.paramType;
this.pipes = pipes || [];
}
/**
* Return the JsonOperation
*/
get parameter() {
return this._parameter;
}
get service() {
return this.paramType;
}
set service(service) {
this.paramType = service;
}
static get(target, propertyKey, index) {
return schema_1.JsonEntityStore.from(core_1.prototypeOf(target), propertyKey, index);
}
static getParams(target, propertyKey) {
const params = [];
const klass = core_1.ancestorsOf(target)
.reverse()
.find((target) => schema_1.JsonEntityStore.fromMethod(target, propertyKey).children.size);
if (!klass) {
return [];
}
schema_1.JsonEntityStore.fromMethod(klass, propertyKey).children.forEach((param, index) => {
params[+index] = param;
});
return params;
}
};
tslib_1.__decorate([
core_1.Enumerable(),
tslib_1.__metadata("design:type", String)
], ParamMetadata.prototype, "expression", void 0);
tslib_1.__decorate([
core_1.Enumerable(),
tslib_1.__metadata("design:type", String)
], ParamMetadata.prototype, "paramType", void 0);
tslib_1.__decorate([
core_1.Enumerable(),
tslib_1.__metadata("design:type", Array)
], ParamMetadata.prototype, "pipes", void 0);
ParamMetadata = tslib_1.__decorate([
schema_1.JsonEntityComponent(core_1.DecoratorTypes.PARAM),
tslib_1.__metadata("design:paramtypes", [Object])
], ParamMetadata);
exports.ParamMetadata = ParamMetadata;
//# sourceMappingURL=ParamMetadata.js.map