UNPKG

@resin/pinejs

Version:

Pine.js is a sophisticated rules-driven API engine that enables you to define rules in a structured subset of English. Those rules are used in order for Pine.js to generate a database schema and the associated [OData](http://www.odata.org/) API. This make

65 lines 2.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); if (!process.browser) { if (typeof nodeRequire === 'undefined' || nodeRequire == null) { global.nodeRequire = require; } const fs = require('fs'); nodeRequire.extensions['.sbvr'] = (module, filename) => module.exports = fs.readFileSync(filename, { encoding: 'utf8' }); } const Promise = require("bluebird"); const dbModule = require("../database-layer/db"); const configLoader = require('../config-loader/config-loader'); const migrator = require('../migrator/migrator'); exports.sbvrUtils = require('../sbvr-api/sbvr-utils'); exports.SessionStore = require('../pinejs-session-store/pinejs-session-store'); let databaseOptions; if (dbModule.engines.websql != null) { databaseOptions = { engine: 'websql', params: 'rulemotion', }; } else { let databaseURL; if (process.env.DATABASE_URL) { databaseURL = process.env.DATABASE_URL; } else if (dbModule.engines.postgres != null) { databaseURL = 'postgres://postgres:.@localhost:5432/postgres'; } else if (dbModule.engines.mysql == null) { databaseURL = 'mysql://mysql:.@localhost:3306'; } else { throw new Error('No supported database options available'); } databaseOptions = { engine: databaseURL.slice(0, databaseURL.indexOf(':')), params: databaseURL, }; } const db = dbModule.connect(databaseOptions); exports.init = (app, config) => exports.sbvrUtils.setup(app, db) .then(() => { const cfgLoader = configLoader.setup(app); return cfgLoader.loadConfig(migrator.config) .return(cfgLoader); }).tap((cfgLoader) => { const promises = []; if (process.env.SBVR_SERVER_ENABLED) { const sbvrServer = require('../data-server/SBVRServer'); const transactions = require('../http-transactions/transactions'); promises.push(cfgLoader.loadConfig(sbvrServer.config)); promises.push(cfgLoader.loadConfig(transactions.config) .then(() => transactions.addModelHooks('data'))); } if (!process.env.CONFIG_LOADER_DISABLED) { promises.push(cfgLoader.loadApplicationConfig(config)); } return Promise.all(promises); }).catch((err) => { console.error('Error initialising server', err, err.stack); process.exit(1); }); //# sourceMappingURL=module.js.map