@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
JavaScript
;
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