mirror of
https://github.com/flynx/argv.js.git
synced 2025-12-19 01:51:39 +00:00
notes and docs...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
62112c9924
commit
3c00ffcaf8
56
README.md
56
README.md
@ -94,6 +94,8 @@ This code is an evolution of that parser.
|
|||||||
- [`<parser>.handlerDefault(..)`](#parserhandlerdefault)
|
- [`<parser>.handlerDefault(..)`](#parserhandlerdefault)
|
||||||
- [`<parser>.handleArgumentValue(..)`](#parserhandleargumentvalue)
|
- [`<parser>.handleArgumentValue(..)`](#parserhandleargumentvalue)
|
||||||
- [`<parser>.handleErrorExit(..)`](#parserhandleerrorexit)
|
- [`<parser>.handleErrorExit(..)`](#parserhandleerrorexit)
|
||||||
|
- [`<parser>.handle(..)`](#parserhandle)
|
||||||
|
- [`<parser>.setHandlerValue(..)`](#parsersethandlervalue)
|
||||||
- [More...](#more)
|
- [More...](#more)
|
||||||
- [License](#license)
|
- [License](#license)
|
||||||
|
|
||||||
@ -210,7 +212,7 @@ var parser = argv.Parser({
|
|||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
This will create a parser that supports the following:
|
This will create a parser that supports the folowing:
|
||||||
```shell
|
```shell
|
||||||
$ ./script.js --help
|
$ ./script.js --help
|
||||||
|
|
||||||
@ -261,10 +263,10 @@ The `<parser>` expects/handles the following data in the `<spec>` object:
|
|||||||
- option/command aliases
|
- option/command aliases
|
||||||
An alias is an option/command key with a _string_ value.
|
An alias is an option/command key with a _string_ value.
|
||||||
That value _references_ a different option or command, i.e. is an
|
That value _references_ a different option or command, i.e. is an
|
||||||
option/command name.
|
option/commnad name.
|
||||||
|
|
||||||
Looping (referencing the original alias) or dead-end (referencing
|
Looping (referencing the original alias) or dead-end (referencing
|
||||||
non-existent options) aliases are ignored.
|
non-existant options) aliases are ignored.
|
||||||
|
|
||||||
|
|
||||||
### Option/command configuration
|
### Option/command configuration
|
||||||
@ -335,9 +337,9 @@ Option/command priority in the `-help`.
|
|||||||
Can be a positive or negative number or `undefined`.
|
Can be a positive or negative number or `undefined`.
|
||||||
|
|
||||||
Ordering is as follows:
|
Ordering is as follows:
|
||||||
- options in descending positive `.priority`,
|
- options in decending positive `.priority`,
|
||||||
- options with undefined `.priority` in order of definition,
|
- options with undefined `.priority` in order of definition,
|
||||||
- options in descending negative `.priority`.
|
- options in decending negative `.priority`.
|
||||||
|
|
||||||
Note that options and commands are grouped separately.
|
Note that options and commands are grouped separately.
|
||||||
|
|
||||||
@ -351,13 +353,13 @@ arg: '<arg-name>'
|
|||||||
arg: '<arg-name> | <key>'
|
arg: '<arg-name> | <key>'
|
||||||
```
|
```
|
||||||
|
|
||||||
If defined and no explicit value is passed to the option command (via `=`)
|
If defined and no explicit value is passed to the option comand (via `=`)
|
||||||
then the _parser_ will consume the directly next non-option if present in
|
then the _parser_ will consume the directly next non-option if present in
|
||||||
`argv` as a value, passing it to the `<option>.type` handler, if defined,
|
`argv` as a value, passing it to the `<option>.type` handler, if defined,
|
||||||
then the `<option>.handler(..)`, if defined, or setting it to `<key>`
|
then the `<option>.handler(..)`, if defined, or setting it to `<key>`
|
||||||
otherwise.
|
otherwise.
|
||||||
|
|
||||||
Sets the option/command argument name given in `-help` for the option
|
Sets the option/command arument name given in `-help` for the option
|
||||||
and the key where the value will be written.
|
and the key where the value will be written.
|
||||||
|
|
||||||
The `<key>` is not used if `<option>.handler(..)` is defined.
|
The `<key>` is not used if `<option>.handler(..)` is defined.
|
||||||
@ -377,7 +379,7 @@ Supported types:
|
|||||||
- `"float"`
|
- `"float"`
|
||||||
- `"number"`
|
- `"number"`
|
||||||
- `"date"` – expects a `new Date(..)` compatible date string
|
- `"date"` – expects a `new Date(..)` compatible date string
|
||||||
- `"list"` – expects a `","`-separated value, split and written as
|
- `"list"` – expects a `","`-sparated value, split and written as
|
||||||
an `Array` object
|
an `Array` object
|
||||||
|
|
||||||
Type handlers are defined in `Parser.typeHandlers` or can be overwritten
|
Type handlers are defined in `Parser.typeHandlers` or can be overwritten
|
||||||
@ -565,7 +567,7 @@ Default value: `undefined`
|
|||||||
|
|
||||||
|
|
||||||
##### `<parser>.footer`
|
##### `<parser>.footer`
|
||||||
Additional information.
|
Aditional information.
|
||||||
|
|
||||||
<spec>.footer = <string> | <function> | undefined
|
<spec>.footer = <string> | <function> | undefined
|
||||||
|
|
||||||
@ -710,7 +712,7 @@ Remove callback from "event".
|
|||||||
|
|
||||||
#### `<parser>(..)`
|
#### `<parser>(..)`
|
||||||
|
|
||||||
Execute the `parser` instance.
|
Execute the `parser` insatance.
|
||||||
|
|
||||||
Run the parser on `process.argv`
|
Run the parser on `process.argv`
|
||||||
```
|
```
|
||||||
@ -725,7 +727,7 @@ the script path.
|
|||||||
-> <result>
|
-> <result>
|
||||||
```
|
```
|
||||||
|
|
||||||
Explicitly pass both a list of arguments and script path.
|
Explicitly pass both a list of args and script path.
|
||||||
```
|
```
|
||||||
<parser>(<argv>, <main>)
|
<parser>(<argv>, <main>)
|
||||||
-> <result>
|
-> <result>
|
||||||
@ -795,6 +797,38 @@ nothing for _nested parsers_.
|
|||||||
If set to `false` the _parser_ will simply return like any normal function.
|
If set to `false` the _parser_ will simply return like any normal function.
|
||||||
|
|
||||||
|
|
||||||
|
### `<parser>.handle(..)`
|
||||||
|
|
||||||
|
Manually trigger `<arg>` handling.
|
||||||
|
```
|
||||||
|
<parser>.handle(<arg>, <rest>, <key>, <value>)
|
||||||
|
-> <res>
|
||||||
|
```
|
||||||
|
|
||||||
|
This is intended to be used for delegating handling from one handler to
|
||||||
|
another. Note that this does not handle errors or other protocols handled
|
||||||
|
by `<parser>(..)`, this only calls the `<arg>` handler (or if it was not
|
||||||
|
defined the _default handler_) so it is not recommended for this to be
|
||||||
|
called from outside an option handler method/function.
|
||||||
|
|
||||||
|
This is not intended for overloading.
|
||||||
|
|
||||||
|
|
||||||
|
### `<parser>.setHandlerValue(..)`
|
||||||
|
|
||||||
|
Set handler value manually, this uses `<handler>.arg` and if not set `<key>` to
|
||||||
|
write `<value>` on the _parsed_ object.
|
||||||
|
```
|
||||||
|
<parser>.setHandlerValue(<handler>, <key>, <value>)
|
||||||
|
-> <parser>
|
||||||
|
```
|
||||||
|
|
||||||
|
This is useful when extending `argv.js`, for client code values can be set
|
||||||
|
directly.
|
||||||
|
|
||||||
|
This is not intended for overloading.
|
||||||
|
|
||||||
|
|
||||||
### More...
|
### More...
|
||||||
|
|
||||||
For more info see the [source](./argv.js).
|
For more info see the [source](./argv.js).
|
||||||
|
|||||||
5
argv.js
5
argv.js
@ -253,7 +253,7 @@ object.Constructor('Parser', {
|
|||||||
|
|
||||||
|
|
||||||
// instance stuff...
|
// instance stuff...
|
||||||
// XXX dp we need all three???
|
// XXX do we need all three???
|
||||||
script: null,
|
script: null,
|
||||||
scriptNmae: null,
|
scriptNmae: null,
|
||||||
scriptPath: null,
|
scriptPath: null,
|
||||||
@ -644,8 +644,7 @@ object.Constructor('Parser', {
|
|||||||
// context will be returned to the parent context, effectively
|
// context will be returned to the parent context, effectively
|
||||||
// stopping the nested context and letting the parent continue.
|
// stopping the nested context and letting the parent continue.
|
||||||
//
|
//
|
||||||
// XXX should we be able to force the parent/root to also stop???
|
// NOTE: to stop the parent parser push '-' to rest's head...
|
||||||
// ...this can be done by pushing '-' to the rest's head...
|
|
||||||
'-': {
|
'-': {
|
||||||
doc: 'stop processing arguments after this point',
|
doc: 'stop processing arguments after this point',
|
||||||
handler: function(){
|
handler: function(){
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user