UNPKG

react-middleware

Version:

Connect middleware for serving React components from a standard folder structure.

79 lines (63 loc) 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _lodash = require("lodash"); var _lodash2 = _interopRequireDefault(_lodash); var _fsExtra = require("fs-extra"); var _fsExtra2 = _interopRequireDefault(_fsExtra); var _path = require("path"); var _path2 = _interopRequireDefault(_path); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var pathsStatus = function pathsStatus(paths) { return _lodash2.default.transform(paths, function (result, path, key) { if (_lodash2.default.isString(path)) { result[key] = _fsExtra2.default.existsSync(path); } }); }; var pathsExist = function pathsExist(paths) { var values = _lodash2.default.values(pathsStatus(paths)); var existsTotal = _lodash2.default.sum(values, function (exists) { return exists ? 1 : 0; }); if (existsTotal === values.length) { return true; } if (existsTotal === 0) { return false; } return "partial"; }; var createFoldersSync = function createFoldersSync(paths) { _lodash2.default.forIn(paths, function (path) { if (_lodash2.default.isString(path)) { _fsExtra2.default.ensureDirSync(path); } }); paths.exist = pathsExist(paths); }; exports.default = function () { var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; // Prepare folder paths. var baseDir = options.base || "./"; baseDir = _lodash2.default.startsWith(baseDir, ".") ? _path2.default.resolve(baseDir) : baseDir; var folder = function folder(param, defaultPath) { return options[param] || _path2.default.join(baseDir, defaultPath); }; var paths = { base: baseDir, css: folder("css", "/css"), public: folder("public", "/public"), layouts: folder("layouts", "/views/layouts"), components: folder("components", "/views/components"), pages: folder("pages", "/views/pages"), scripts: folder("scripts", "/scripts"), createSync: function createSync() { createFoldersSync(paths); } }; paths.exist = pathsExist(paths); // Finish up. return paths; };