@mvx/model
Version:
@mvx/model is model for mvc frameworker on server.
64 lines (62 loc) • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Field = exports.createFieldDecorator = void 0;
const ioc_1 = require("@tsdi/ioc");
/**
* create filed decorator.
*
* @export
* @template T
* @param {string} [decoratorName]
* @param {MetadataAdapter} [actions]
* @param {MetadataExtends<T>} [metaExtends]
* @returns {IFiledDecorator<T>}
*/
function createFieldDecorator(decoratorName, actions, metaExtends) {
return ioc_1.createPropDecorator('Field', [
...(actions || []),
(ctx, next) => {
let arg = ctx.currArg;
if (ioc_1.isString(arg)) {
ctx.metadata.dbtype = arg;
ctx.next(next);
}
},
(ctx, next) => {
let arg = ctx.currArg;
if (ioc_1.isString(arg)) {
ctx.metadata.dbfield = arg;
ctx.next(next);
}
},
(ctx, next) => {
let arg = ctx.currArg;
if (ioc_1.isUndefined(arg)) {
ctx.metadata.defaultValue = arg;
ctx.next(next);
}
},
(ctx, next) => {
let arg = ctx.currArg;
if (ioc_1.isBoolean(arg)) {
ctx.metadata.required = arg;
ctx.next(next);
}
}
], metadata => {
if (!metadata.dbfield) {
metadata.dbfield = metadata.propertyKey.toString();
}
if (metaExtends) {
metaExtends(metadata);
}
metadata.decorName = decoratorName;
return metadata;
});
}
exports.createFieldDecorator = createFieldDecorator;
/**
* Filed decorator.
*/
exports.Field = createFieldDecorator();
//# sourceMappingURL=../sourcemaps/decorators/Field.js.map