UNPKG

s2s

Version:
81 lines (58 loc) 2.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = handleTemplates; var _path = _interopRequireDefault(require("path")); var _fs = _interopRequireDefault(require("fs")); var _chalk = _interopRequireDefault(require("chalk")); var _ejs = _interopRequireDefault(require("ejs")); var _slash = _interopRequireDefault(require("slash")); var _reporters = require("../reporters"); var _utils = require("../utils"); var _some = _interopRequireDefault(require("../utils/some")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function handleCopyError(err) { if (err.code === 'ENOENT') { const errorText = `${_chalk.default.reset.inverse.bold.red('TEMPLATE')} ${(0, _reporters.trimAndFormatPath)(err.path)} no such file or directory`; console.log(errorText); } else { console.log(err.stack); } } const DEFAULT_TEMPLATES_DIR = 'templates'; function validate(template, eventPath) { if (typeof template.test === 'string' || Array.isArray(template.test)) { return (0, _some.default)(eventPath, template.test); } else if (!template.test.test(eventPath)) { return false; } return true; } function handleTemplate(eventPath, template, templatesDir) { if (!validate(template, eventPath)) { return; } const outputPath = template.output ? (0, _utils.getOutputPath)(template.output, eventPath) : eventPath; if ((0, _utils.isAlreadyExist)(outputPath)) { return; } const templatePath = _path.default.join(templatesDir, template.input); const str = _fs.default.readFileSync(templatePath, 'utf8'); const result = _ejs.default.render(str, { FILENAME: _path.default.parse(outputPath).name, DIRNAME: _path.default.basename(_path.default.dirname(outputPath)) }); _fs.default.writeFileSync(outputPath, result); console.log((0, _reporters.formatText)('TEMPLATE', (0, _utils.relativeFromCwd)(templatePath), (0, _slash.default)(outputPath))); } function handleTemplates(eventPath, templates = [], templatesDir = DEFAULT_TEMPLATES_DIR) { for (const template of templates) { try { handleTemplate(eventPath, template, templatesDir); } catch (error) { handleCopyError(error); } } }