UNPKG

blow-data

Version:
37 lines (36 loc) 994 B
'use strict'; require('reflect-metadata'); const manager_1 = require('./manager'); const data_ = new WeakMap(); function data(model) { if (!data_.has(model)) { data_.set(model, { properties: {}, relations: {} }); } return data_.get(model); } function model(options) { return function (target) { data(target).options = options; const data_ = data(target); manager_1.manager.defineModel(target, data_.options, data_.properties, data_.relations); return target; }; } exports.model = model; function property(options) { return function (target, propertyKey) { const model = target.constructor; data(model).properties[propertyKey] = options; }; } exports.property = property; function relation(options) { return function (target, propertyKey) { const model = target.constructor; data(model).relations[propertyKey] = options; }; } exports.relation = relation;