UNPKG

build-boiler

Version:

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

93 lines (63 loc) 2.59 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.default = function (config) { var sources = config.sources; var utils = config.utils; var srcDir = sources.srcDir; var templateDir = sources.templateDir; var addbase = utils.addbase; var plasma = new _plasma2.default(); /** * Namespace the page and mock data */ function addNamespaceData(fp, data) { var baseDir = _path2.default.dirname(fp); var html = (0, _globby.sync)(_path2.default.join(baseDir, '*.html')); return html.reduce(function (acc, htmlPath) { return _extends({}, acc, _defineProperty({}, (0, _renameKey2.default)(htmlPath), data)); }, {}); } plasma.dataLoader('yml', function (fp) { var ymlStr = (0, _fs.readFileSync)(fp, 'utf8'); var data = { page_data: (0, _jsYaml.safeLoad)(ymlStr) }; return addNamespaceData(fp, data); }); plasma.dataLoader('json', function (fp) { var jsonData = (0, _fsExtra.readJsonSync)(fp); var data = { page_data: jsonData }; return addNamespaceData(fp, data); }); return function (file, next) { try { var pageData = plasma.load(addbase(srcDir, templateDir, '**/*.{json,yml}'), { namespace: false }); if (_lodash2.default.isPlainObject(pageData)) { var currentPageData = pageData[file.key]; currentPageData && _lodash2.default.merge(file.data, currentPageData); } } catch (err) { next(err); } }; }; var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _globby = require('globby'); var _fsExtra = require('fs-extra'); var _jsYaml = require('js-yaml'); var _fs = require('fs'); var _plasma = require('plasma'); var _plasma2 = _interopRequireDefault(_plasma); var _renameKey = require('../../../../utils/rename-key'); var _renameKey2 = _interopRequireDefault(_renameKey); 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; } module.exports = exports['default'];