A JavaScript port of the Ruby module of the same name, with TypeScript typings. Shellwords provides functions to manipulate strings according to the word parsing rules of the UNIX Bourne shell. Originally forked from jimmycuadra/shellwords, this package is updated to be at parity with a modern reference implementation (Ruby 3.1.2 at the time of writing) and implements Shellwords.join()
, which was missing from the original package. The goal of this is to maintain parity with the Ruby Shellwords
module, so if there is a discrepancy, please file a bug (or even better, a PR).
Add "shellwords-ts" to your package.json
file and run npm install
.
import Shellwords from "shellwords-ts";
Shellwords.split("foo 'bar baz'"); // ["foo", "bar baz"]
Shellwords.escape("What's up?"); // "What\\'s\\ up\\?"
Shellwords.join(["find", "~/Library/Application Support", "-name", "*.plist"]); // "find \\~/Library/Application\\ Support -name \\*.plist"
Shellwords.split("foo 'bar baz' quu", (rawPart) => {
// have access to the chunks of the raw string as it is scanned
});
Shellwords.escape()
no longer escapes+
; see this commit in the GitHub Ruby repo.