UNPKG

@nois/sails-util-mvcsloader

Version:

Load models, controllers, services, policies and config from specified directories and inject them into the main Sails app.

39 lines (33 loc) 1.06 kB
/** * Load services from a directory into a Sails app */ const async = require('async') const _ = require('lodash') const includeAll = require('include-all'); const util = require('./utils'); const colors = require('colors'); module.exports = function (sails, dir, cb) { includeAll.optional({ dirname : dir, filter : /^(.+)\.(?:(?!md|txt).)+$/, depth : 1, caseSensitive : true }, util.bindToSails(function(err, modules) { if (err) { console.log(colors.red('Failed to load plugin\'s services')); console.log(err); return cb(err); } // Expose services on `sails.services` to provide access even when globals are disabled. _.extend(sails.services, modules); // Expose globals (if enabled) if (sails.config.globals.services) { _.each(sails.services, function(service, identity) { var globalId = service.globalId || service.identity || identity; global[globalId] = service; }); } // Relevant modules have finished loading. return cb(); })); }