UNPKG

miter

Version:

A typescript web framework based on ExpressJs based loosely on SailsJs

40 lines 1.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const prop_1 = require("../../metadata/orm/prop"); const model_1 = require("../../metadata/orm/model"); const sequelize = require("sequelize"); 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 sequelizeType = null; if (reflectType === String) sequelizeType = sequelize.STRING; else if (reflectType === Number) { if (meta.primaryKey || meta.autoIncrement) sequelizeType = sequelize.INTEGER; else sequelizeType = sequelize.FLOAT; } else if (reflectType === Date) sequelizeType = sequelize.DATE; else if (reflectType === Boolean) sequelizeType = sequelize.BOOLEAN; else throw new Error(`Could not infer column type for model property: ${propertyName}`); meta.type = sequelizeType; } Reflect.defineMetadata(prop_1.PropMetadataSym, meta, model, propertyName); }; } exports.Prop = Prop; //# sourceMappingURL=prop.decorator.js.map