UNPKG

miter

Version:

A typescript web framework based on ExpressJs based loosely on SailsJs

40 lines 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const prop_1 = require("../../metadata/orm/prop"); const model_1 = require("../../metadata/orm/model"); const types_1 = require("../../metadata/orm/types"); require("reflect-metadata"); function Prop(columnName) { let meta; if (typeof columnName === 'string') meta = { columnName: columnName }; else meta = columnName || {}; return function (model, propertyName) { let props = Reflect.getOwnMetadata(model_1.ModelPropertiesSym, model) || []; props.push(propertyName); Reflect.defineMetadata(model_1.ModelPropertiesSym, props, model); if (!meta.type) { let reflectType = Reflect.getMetadata('design:type', model, propertyName); let columnType = null; if (reflectType === String) columnType = types_1.Types.string; else if (reflectType === Number) { if (meta.primaryKey || meta.autoIncrement) columnType = types_1.Types.integer; else columnType = types_1.Types.float; } else if (reflectType === Date) columnType = types_1.Types.date; else if (reflectType === Boolean) columnType = types_1.Types.boolean; else throw new Error(`Could not infer column type for model property: ${propertyName}`); meta.type = columnType; } Reflect.defineMetadata(prop_1.PropMetadataSym, meta, model, propertyName); }; } exports.Prop = Prop; //# sourceMappingURL=prop.decorator.js.map