npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

cmdline-parser

v0.2.2

Published

Command line information parser

Downloads

6

Readme

CmdLineParser.js

cmdline-parser.js is a tool allowing you to retrieve all the information and components of a command line 🐚

Features ✨

  • Can parse multiple commands
  • Can parse quotes in arguments
  • Supports multiple tokens
    • >, >>, <, <<, |, ||, &&
  • Supports node.js and browser
  • Supports multiple parser instances
  • Supports custom parser settings (disable tokens...)

JsDelivr

<script src="https://cdn.jsdelivr.net/gh/SkwalExe/[email protected]/dist/cmdlineparser.min.js"></script>

NPM module

Install the npm module

npm install cmdline-parser

And import it in your project

const CmdLineParser = require('cmdline-parser');

let myParser = new CmdLineParser();

Setting up

You can import the library into you website with JsDelivr or, you can use the npm module and import it in your project.

Parsing your first commands ✨

Parsing a command line

let command = "echo Hello; echo World";
let parsed = myParser.parse(command);

The parse method returns an array of Commands (because a command line can contain multiple commands command1; command2).

Parsing a single command

let command = "echo Hello";
let parsed = myParser.parseCommand(command);

The parseCommand method returns a Command object.

Parsing arguments

You can get an array of arguments from a string using the parseArgs method:

let args = myParser.parseArgs("echo 'Hello World' Hello universe");
// ['echo', 'Hello World', 'Hello', 'universe']

Supports quotes ✨

The Command object

The Command object is a representation of a command and has the following properties:

  • invalid: true if the command is invalid (for example if quotes are not closed)
  • invalidReason: the reason why the command is invalid as a string
  • args: array of arguments passed to the command
  • name: the name of the command
  • text: the original command line

We also parse redirectors etc like >, >>, <, <<, |, ||, && inside the corresponding token

Example

let command = myParser.parseCommand("echo 'Hello World' > file.txt && echo 'Hello universe'");

console.log(command[">"]); // [ 'file.txt' ]
console.log(command["&&"]); // Command { name: 'echo', ... }

final

If you have any problem, don't hesitate to open an issue

contributing

  1. Start by forking this repository

  2. Then clone your fork to your local machine.

git clone https://github.com/your-username/cmdline-parser.js.git
  1. Install dev dependencies
npm install --save-dev
  1. Create a new branch
git checkout -b super-cool-feature
  1. Then make your changes

  2. Update the changelog and version number if needed (using Semantic Versioning) also, update the version number in the JsDelivr links

# bug fix
npm version patch --no-git-tag-version

# add a new feature 
npm version minor --no-git-tag-version

# changes that break backwards compatibility
npm version major --no-git-tag-version
  1. List and correct linting errors
npm run lint
  1. Update the minified/browser version of the library
npm run build
  1. Once you're done, commit your changes and push them to the remote repository.
git add --all
git commit -m "Add super-cool-feature"
git push origin super-cool-feature
  1. Then, open a pull request on GitHub from your fork.
  2. Go to this link
  3. Click compare across forks
  4. On the right, on head repository select your fork
  5. And on compare select the branch you just created
  6. Click on Create Pull Request and submit your pull request