UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

68 lines (65 loc) 1.85 kB
import * as fs from 'fs'; function getKeyValue(key, sourceLine) { var result; var ma; var re = new RegExp("".concat(key, "\\s*=\\s*(.*?)(\\s|$)")); for (var _i = 0, sourceLine_1 = sourceLine; _i < sourceLine_1.length; _i++) { var line = sourceLine_1[_i]; if (line.startsWith('#')) { // 忽略注释行 continue; } ma = line.match(re); if (ma) { result = ma[1] || ''; break; } } return result; } function getEnvVariableMap(filepath) { var sourceStr = ''; var re = new RegExp('(.*?)\\s*=\\s*(.*?)(\\s|$)'); if (fs.existsSync(filepath)) { sourceStr = fs.readFileSync(filepath, 'utf-8'); } else { sourceStr = filepath; } var sourceLine = sourceStr.split('\n'); var result = {}; for (var _i = 0, sourceLine_2 = sourceLine; _i < sourceLine_2.length; _i++) { var line = sourceLine_2[_i]; if (line.startsWith('#')) { // 忽略注释行 continue; } var match = line.match(re); if (match === null || match === void 0 ? void 0 : match[1]) { result[match[1]] = match[2] || ''; } } return result; } /** * 读取文件中环境变量的值,支持: * - NPM_TOKEN=xxx * - NPM_TOKEN = xxx * @param {string} key 环境变量的key * @param {string} filepath 保存环境变量的文件路径 * @returns {string} 环境变量的值 */ function readEnvVariable(key, filepath) { if (!fs.existsSync(filepath)) { console.log('[readEnvVariable] 文件不存在:', filepath, ',请先创建文件'); return ''; } try { var sourceStr = fs.readFileSync(filepath, 'utf-8'); var sourceLine = sourceStr.split('\n'); return getKeyValue(key, sourceLine); } catch (e) { console.log('[readEnvVariable] 打开文件失败:', filepath); process.exit(1); } } export { getEnvVariableMap, readEnvVariable };