UNPKG

@seatbelt/orm-waterline

Version:

Seatbelt Orm Plugin Waterline

44 lines (43 loc) 1.31 kB
Object.defineProperty(exports, "__esModule", { value: true }); const core_1 = require("@seatbelt/core"); const Waterline = require('waterline'); const database = new Waterline(); const modelRegister = {}; let db; const log = new core_1.Log('waterline'); function DModel(requiredParams) { return function (OriginalClassConstructor) { class NewModel extends OriginalClassConstructor { constructor() { super(); const collection = Waterline.Collection.extend(requiredParams); database.loadCollection(collection); } } return NewModel; }; } exports.DModel = DModel; function DModels() { return function (OriginalClass, propertyName) { OriginalClass[propertyName] = modelRegister; }; } exports.DModels = DModels; function waterlinePlugin(config) { return { routes: (routes) => { database.initialize(config, (err, DB) => { if (err) { log.error('<error>', err); } db = DB.collections; log.system('db initialized'); routes.forEach(route => { route.models = db; }); }); } }; } exports.waterlinePlugin = waterlinePlugin;