UNPKG

build-boiler

Version:

Build Boilerplate using Webpack, Eslint, Assemble, Nunjucks, and BrowserSync

83 lines (61 loc) 2.78 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (dirPath) { var opts = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; var recurse = opts.recurse; var dict = opts.dict; var ogIgnore = opts.ignore; var ignore = []; if (ogIgnore) { Array.isArray(ogIgnore) ? ignore.push.apply(ignore, _toConsumableArray(ogIgnore)) : ignore.push(ogIgnore); } return function recurseDirs(passedPath) { var fps = _fs2.default.readdirSync(passedPath); return fps.reduce(function (acc, fp) { var name = _path2.default.basename(fp, _path2.default.extname(fp)); var shouldProceed = ignore.indexOf(name) === -1; if (shouldProceed) { var fullPath = _path2.default.join(passedPath, fp); var isDir = _fs2.default.statSync(fullPath).isDirectory(); var data = undefined; if (isDir && recurse) { data = recurseDirs(fp); dict ? _lodash2.default.assign(acc, data) : acc.push.apply(acc, _toConsumableArray(data)); } else { data = require(fullPath); if (_lodash2.default.isString(dict) && dict === 'basename') { var key = _path2.default.basename(fullPath, _path2.default.extname(fullPath)); _lodash2.default.assign(acc, _defineProperty({}, _lodash2.default.camelCase(key), data)); } else if (dict) { _lodash2.default.assign(acc, _defineProperty({}, fullPath, data)); } else { acc.push(data); } } } return acc; }, dict ? {} : []); }(dirPath); }; var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } /** * Require all files in a directory and place them in an obect * by path name or an array by value * @param {String} dirPath path to the directory * @param {Object} opts options * @param {Boolean} opts.recurse * @param {String|Array} opts.ignore filepath name to ignore * @param {Boolean} opts.dict return an Object rather than an Array * @return {Array|Object} */ module.exports = exports['default'];