UNPKG

@gabrielvgx/tecfoodcli

Version:

Projeto para automatizar criação de ambientes TecFood

63 lines (50 loc) 1.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _fs = _interopRequireDefault(require("fs")); var _docker_mnemonics = _interopRequireDefault(require("./helpers/docker_mnemonics.js")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const mnemonic = { CHR_START: '<>', CHR_END: '<>', readFile(fileName) { return _fs.default.readFileSync(fileName, 'utf-8'); }, writeFile(fileName, content) { _fs.default.writeFileSync(fileName, content); }, replaceMnemonic(str, mnemonic, value) { const pattern = new RegExp(`${this.CHR_START}${mnemonic}${this.CHR_END}`, 'gi'); return str.replace(pattern, value); }, replaceFromMap(fileNameTemplate, objMnemonicAndValue, eventsCallback) { let file = this.readFile(fileNameTemplate); const { onBeforeWrite } = eventsCallback; const ENV = Object.assign({}, objMnemonicAndValue, _docker_mnemonics.default.run(objMnemonicAndValue)); let newFileContent = file; Object.keys(ENV).forEach(MNEMONIC => { const VALUE = ENV[MNEMONIC]; newFileContent = this.replaceMnemonic(newFileContent, MNEMONIC, VALUE); }); let newFileName = fileNameTemplate.replace(/\.template/gi, ''); if (typeof onBeforeWrite == 'function') newFileContent = onBeforeWrite.apply(null, [newFileContent]); this.writeFile(newFileName, newFileContent); return newFileContent; }, listMnemonics(fileName) { const fileContent = _fs.default.readFileSync(fileName, 'utf-8'); let mnemonics = fileContent.match(/<>.+<>/gi); if (mnemonics) { let uniqueMnemonics = Array.from(new Set(mnemonics)); return uniqueMnemonics.map(item => item.replace(/<>/gi, '')); } else { return []; } } }; var _default = mnemonic; exports.default = _default;