vulcain-corejs
Version:
Vulcain micro-service framework
43 lines (41 loc) • 1.59 kB
JavaScript
const preloader_1 = require('../preloader');
require('reflect-metadata');
function Model(options) {
return function (target) {
options = options || {};
options.name = options.name || target.name;
const sym = Symbol.for("design:model");
Reflect.defineMetadata(sym, options, target);
preloader_1.Preloader.instance.registerModel(target, (container, domain) => domain.addSchemaDescription(target, options.name));
};
}
exports.Model = Model;
function Property(info) {
return (target, key) => {
const symProperties = Symbol.for("design:properties");
var properties = Reflect.getOwnMetadata(symProperties, target) || {};
properties[key] = info;
Reflect.defineMetadata(symProperties, properties, target);
};
}
exports.Property = Property;
function Validator(name, info) {
return (target, key) => {
const symValidators = Symbol.for("design:validators");
var validators = Reflect.getOwnMetadata(symValidators, target, key) || [];
validators.push({ name: name, info: info });
Reflect.defineMetadata(symValidators, validators, target, key);
};
}
exports.Validator = Validator;
function Reference(info) {
return (target, key) => {
const symReferences = Symbol.for("design:references");
var properties = Reflect.getOwnMetadata(symReferences, target) || {};
properties[key] = info;
Reflect.defineMetadata(symReferences, properties, target);
};
}
exports.Reference = Reference;
//# sourceMappingURL=annotations.js.map
;