UNPKG

e-lado

Version:

[![CircleCI](https://circleci.com/gh/sharetribe/sharetribe/tree/master.svg?style=svg)](https://circleci.com/gh/sharetribe/sharetribe/tree/master) [![Dependency Status](https://gemnasium.com/sharetribe/sharetribe.png)](https://gemnasium.com/sharetribe/shar

42 lines (34 loc) 1.24 kB
/** * @fileoverview Module for loading rules from files and directories. * @author Michael Ficarra */ "use strict"; //------------------------------------------------------------------------------ // Requirements //------------------------------------------------------------------------------ const fs = require("fs"), path = require("path"); //------------------------------------------------------------------------------ // Public Interface //------------------------------------------------------------------------------ /** * Load all rule modules from specified directory. * @param {string} [rulesDir] Path to rules directory, may be relative. Defaults to `lib/rules`. * @param {string} cwd Current working directory * @returns {Object} Loaded rule modules by rule ids (file names). */ module.exports = function(rulesDir, cwd) { if (!rulesDir) { rulesDir = path.join(__dirname, "rules"); } else { rulesDir = path.resolve(cwd, rulesDir); } const rules = Object.create(null); fs.readdirSync(rulesDir).forEach(file => { if (path.extname(file) !== ".js") { return; } rules[file.slice(0, -3)] = path.join(rulesDir, file); }); return rules; };