@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
70 lines • 2.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.init = void 0;
require("./sbvr-loader");
const Bluebird = require("bluebird");
const dbModule = require("../database-layer/db");
const configLoader = require("../config-loader/config-loader");
const migrator = require("../migrator/migrator");
const sbvrUtils = require("../sbvr-api/sbvr-utils");
exports.dbModule = require("../database-layer/db");
var pinejs_session_store_1 = require("../pinejs-session-store/pinejs-session-store");
Object.defineProperty(exports, "PinejsSessionStore", { enumerable: true, get: function () { return pinejs_session_store_1.PinejsSessionStore; } });
exports.sbvrUtils = require("../sbvr-api/sbvr-utils");
exports.permissions = require("../sbvr-api/permissions");
exports.errors = require("../sbvr-api/errors");
exports.env = require("../config-loader/env");
exports.types = require("../sbvr-api/common-types");
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) => Bluebird.try(async () => {
try {
await sbvrUtils.setup(app, db);
const cfgLoader = await configLoader.setup(app);
await cfgLoader.loadConfig(migrator.config);
const promises = [];
if (process.env.SBVR_SERVER_ENABLED) {
const sbvrServer = await Promise.resolve().then(() => require('../data-server/sbvr-server'));
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));
}
await Promise.all(promises);
return cfgLoader;
}
catch (err) {
console.error('Error initialising server', err, err.stack);
process.exit(1);
}
});
//# sourceMappingURL=module.js.map