Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kwsites/commands
Command line arguments processor for node.js and in the browser
https://github.com/kwsites/commands
Last synced: 3 months ago
JSON representation
Command line arguments processor for node.js and in the browser
- Host: GitHub
- URL: https://github.com/kwsites/commands
- Owner: kwsites
- License: mit
- Created: 2012-04-30T06:54:16.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2020-05-11T06:46:20.000Z (over 4 years ago)
- Last Synced: 2024-07-13T07:31:55.492Z (4 months ago)
- Language: TypeScript
- Homepage:
- Size: 92.8 KB
- Stars: 6
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-github-star - commands
README
Overview
========Simplify access to command line arguments in node apps, and query string or hash parsing in the browser environment.
Installation
============If using in node, installation via npm is as simple as `npm install @kwsites/commands`.
API
===`Commands.get( key [, defaultValue] )` get the value of a named argument, or when that argument wasn't supplied get the supplied default value.
`Commands.exists( key )` get a boolean flag for whether a named argument was supplied
Usage - node.js
===============Include Commands with require, then read command line arguments in camel case:
```javascript
const commands = require('@kwsites/commands');
console.log( Commands.get('someArg') ); // outputs "foo"
console.log( Commands.get('someUnknownArg', 'defaultValue') ); // outputs "defaultValue"
console.log( Commands.exists('someUnknownArg') ); // outputs false
console.log( Commands.get('bar') ); // outputs true
console.log( Commands.get('baz') ); // outputs false
``````
> node script.js -some-arg "foo" --bar --no-baz
```Command line arguments can be sent either with a hyphen prefix for naming an argument where the next argument is the value of that argument (in this case "-some-arg" is converted to "someArg" and has the value "foo"). A double hyphen prefix is used to denote a flag, so here bar is true and baz is false because "--no-" is used as flag negation.
Usage - browser
===============Including Commands as a script tag then makes available a global variable called "commands" that has the same API as in node however the data source is the query string and hash segments of the URL. Unlike in the node environment, evaluation of the arguments takes place every time they are queried to allow for changes in the hash of the page.
console.log( commands.get('someArg') ); // outputs "foo"
console.log( commands.get('someUnknownArg', 'defaultValue') ); // outputs "defaultValue"
console.log( commands.exists('someUnknownArg') ); // outputs false
console.log( commands.get('bar') ); // outputs true
console.log( commands.get('baz') ); // outputs falselocation.href = 'somepage.html?someArg=foo&--bar--no-baz'
Here both the query string and hash are being used although it can be either or neither, if there are entities in the URL that are being used as options (ie: prefixed with a double hyphen) then they will still need a trailing ampersand to make the URL conform to the W3C spec.