# args-tokenizer **Repository Path**: mirrors_TrySound/args-tokenizer ## Basic Information - **Project Name**: args-tokenizer - **Description**: Tokenize a shell string into argv array - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-16 - **Last Updated**: 2025-09-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # args-tokenizer `args-tokenizer` is a lightweight JavaScript library for parsing shell commands with arguments into an `argv` array. This makes it easy to work with command-line tools and libraries that expect an array format for arguments, such as [`tinyexec`](https://github.com/tinylibs/tinyexec). ## Features - Simple and intuitive API. - Handles quoted strings and escapes correctly. - Supports multiline input. - Ideal for parsing human-readable shell commands, especially `curl`-style commands. ---   Made at Webstudio, open source website builder. --- ## Installation Install `args-tokenizer`: ```bash npm install args-tokenizer ``` ## Usage Here's how you can use `args-tokenizer` to parse shell commands: ```js import { tokenizeArgs } from "args-tokenizer"; const args = tokenizeArgs(`ls -la "./src"`); console.log(args); // ["ls", "-la", "./src"] ``` ### Multiline Input Support `args-tokenizer` also supports multiline commands, such as: ```js const args = tokenizeArgs(` curl \\ -X POST \\ "https://my-url.com" `); console.log(args); // ["curl", "-X", "POST", "https://my-url.com"] ``` ### Example with `tinyexec` One common use case is passing more human-readable commands into the [`tinyexec`](https://github.com/tinylibs/tinyexec) library: ```js import { tokenizeArgs } from "args-tokenizer"; import { x } from "tinyexec"; const [command, ...args] = tokenizeArgs("ls -la"); const result = await x(command, args); console.log(result.stdout); ``` ## API ### `tokenizeArgs(command: string, options: Options): string[]` Parses a shell command string into an array of arguments. Properly handles: - Quoted strings (e.g., `'"./path/to/file"'`). - Escaped characters (e.g., `\"`). - Multiline commands (e.g., lines ending with `\\`). ### Options - `loose`: If `true`, the tokenizer will not throw an error when closing quotes are missing. Default is `false`. #### Examples ```js // Without loose option (default behavior) // This will throw an error due to the missing closing quote tokenizeArgs('command "arg1 arg2'); // With loose option enabled const args = tokenizeArgs('command "arg1 arg2', { loose: true }); // ['command', 'arg1 arg2'] ``` ## License This project is licensed under the [MIT License](./LICENSE). ## Contributing Contributions are welcome! Feel free to open issues or submit pull requests to improve the library.