sails-rigger
Version:
A reliable callback handler for loading an external Sails.js app via require()
56 lines (47 loc) • 976 B
JavaScript
var path = require('path');
var SailsApp = require('sails').Sails;
var _ = require('lodash');
var baseConfig = {
hooks: {
},
models: {
migrate: 'safe'
}
};
var extendConfig = {
hooks: {
/*
moduleloader: true,
logger: true,
orm: true,
blueprints: true,
responses: true,
controllers: true,
policies: true,
services: true,
userconfig: true,
userhooks: true,
*/
grunt: false
},
models: {
migrate: 'safe'
},
cache: { },
//http: { }
};
function extend (sails, app, _config, cb) {
if (_.isFunction(_config)) cb = _config;
var config = _.merge(_.cloneDeep(extendConfig), _config, {
appPath: path.dirname(require.resolve(app))
});
return sails.load(config, function (error, _sails) {
if (error) throw new Error(error);
cb(error, sails);
});
}
function load (app, config, cb) {
return extend(new SailsApp(), app, config, cb);
}
exports.load = load;
exports.extend = extend;