'use strict'; const SPACES_REGEXP = / +/g; const joinCommand = (file, args = []) => { if (!Array.isArray(args)) { return file; } return [file, ...args].join(' '); }; // Allow spaces to be escaped by a backslash if not meant as a delimiter const handleEscaping = (tokens, token, index) => { if (index === 0) { return [token]; } const previousToken = tokens[tokens.length - 1]; if (previousToken.endsWith('\\')) { return [...tokens.slice(0, -1), `${previousToken.slice(0, -1)} ${token}`]; } return [...tokens, token]; }; // Handle `execa.command()` const parseCommand = command => { return command .trim() .split(SPACES_REGEXP) .reduce(handleEscaping, []); }; module.exports = { joinCommand, parseCommand };
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
command.js | File | 738 B | 0644 |
|
error.js | File | 2.06 KB | 0644 |
|
kill.js | File | 2.94 KB | 0644 |
|
promise.js | File | 1.12 KB | 0644 |
|
stdio.js | File | 1.13 KB | 0644 |
|
stream.js | File | 2.34 KB | 0644 |
|