UNPKG

miter

Version:

A typescript web framework based on ExpressJs based loosely on SailsJs

32 lines 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const belongs_to_1 = require("../../../metadata/orm/associations/belongs-to"); function isStaticModelT(test) { return test && !!test.db; } function isForeignModelSource(test) { return test && (isStaticModelT(test) || !!test.modelName || !!test.tableName || typeof test === 'function'); } function BelongsTo(propMeta) { let meta = {}; if (isForeignModelSource(propMeta)) meta = { foreignModel: propMeta }; else if (propMeta) meta = propMeta; return function (model, propertyName) { if (!isForeignModelSource(meta.foreignModel)) { meta.foreignModel = Reflect.getMetadata('design:type', model, propertyName); if (meta.foreignModel === Object) meta.foreignModel = undefined; else if (!isStaticModelT(meta.foreignModel)) throw new Error(`Cannot infer relation type for belongs-to association ${model.name || model}.${propertyName}.`); } meta.as = propertyName; let props = Reflect.getOwnMetadata(belongs_to_1.ModelBelongsToAssociationsSym, model) || []; props.push(propertyName); Reflect.defineMetadata(belongs_to_1.ModelBelongsToAssociationsSym, props, model); Reflect.defineMetadata(belongs_to_1.BelongsToMetadataSym, meta, model, propertyName); }; } exports.BelongsTo = BelongsTo; //# sourceMappingURL=belongs-to.decorator.js.map