UNPKG

@hairy/lnv

Version:
60 lines (57 loc) 1.54 kB
import {createRequire as __createRequire} from 'module';var require=__createRequire(import.meta.url); // src/cli/utils/index.ts function extractSingleQuotes(argv) { const parsed = []; let currentString = ""; let inQuotes = false; let quoteChar = ""; for (const arg of argv) { if (arg.startsWith("'") || arg.startsWith("`")) { if (inQuotes) { currentString += ` ${arg.slice(1)}`; } else { inQuotes = true; quoteChar = arg[0]; currentString += arg.slice(1); } } else if (arg.endsWith("'") || arg.endsWith("`")) { if (inQuotes && quoteChar === arg[arg.length - 1]) { currentString += ` ${arg.slice(0, -1)}`; parsed.push(currentString.trim()); currentString = ""; inQuotes = false; } else { parsed.push(arg); } } else { inQuotes ? currentString += ` ${arg}` : parsed.push(arg); } } currentString && parsed.push(currentString.trim()); return parsed; } function extractTailCommands(argv) { const news = []; const runs = []; let is = false; for (const arg of argv) { if (is && arg === ";") { news.push(runs.join(" ")); is = false; continue; } is ? runs.push(arg) : news.push(arg); if (arg === "-r" || arg === "--run") is = true; if (arg === "--") { news.splice(news.length - 1, 1, "-r"); is = true; } } is && runs.length && news.push(runs.join(" ")); return news; } export { extractSingleQuotes, extractTailCommands };