UNPKG

@mvx/model

Version:

@mvx/model is model for mvc frameworker on server.

64 lines (62 loc) 1.8 kB
"use strict"; 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