UNPKG

poku

Version:

🐷 Poku makes testing easy for Node.js, Bun, Deno, and you at the same time.

62 lines (61 loc) 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveEnvVariables = exports.parseEnvLine = exports.removeComments = void 0; const removeComments = (input) => { let output = ''; let quoteChar = ''; let inQuote = false; for (let i = 0; i < input.length; i++) { const char = input[i]; if (inQuote) { output += char; if (char === quoteChar && input[i - 1] !== '\\') inQuote = false; } else if (char === '"' || char === "'") { inQuote = true; quoteChar = char; output += char; } else if (char === '#') break; else output += char; } return output.trim(); }; exports.removeComments = removeComments; const parseEnvLine = (line) => { const index = line.indexOf('='); if (index === -1) return null; const arg = line.substring(0, index).trim(); const value = line .substring(index + 1) .trim() .replace(/^['"]|['"]$/g, ''); return { arg, value }; }; exports.parseEnvLine = parseEnvLine; const resolveEnvVariables = (str, env) => { let result = ''; let i = 0; while (i < str.length) { if (str[i] === '$' && str[i + 1] === '{') { i += 2; let varName = ''; while (i < str.length && str[i] !== '}') { varName += str[i]; i++; } i++; result += env[varName] ?? ''; } else { result += str[i]; i++; } } return result; }; exports.resolveEnvVariables = resolveEnvVariables;