1
1
'use strict' ;
2
2
const isA = Array . isArray ;
3
3
/**
4
- * @typedef {string } KeyStr Variable name
5
- * @typedef {string | boolean | string[] } VarVal Variable value
4
+ * @typedef {string } KeyStr Variable name, in most cases, or kit name
6
5
* @typedef {string } OptStr Option string, e.g. '--', '-o', '--option'
7
- * @typedef {OptStr | null } OptDef Option definitions , e.g. '--', '-o', '--option', or null to refer to the variable name
8
- * @typedef {OptDef | OptDef[] } OptKit one or more option definitions
6
+ * @typedef {OptStr | null } OptDef Option definition , e.g. '--', '-o', '--option', or ` null` to refer to the variable name
7
+ * @typedef {OptDef | OptDef[] } OptKit one or more option definitions, for a shortest one
9
8
*
10
9
* @typedef {object } VarKit Variable configuration object
11
10
* @property {VarVal } [def] Variable **def**inition & **def**ault value (pun intended)
12
11
* @property {OptKit } [set] Array of options to set the variable value
13
12
* @property {OptKit } [rst] Array of options to reset the variable value
13
+ * @typedef {string | boolean | string[] } VarVal Variable value
14
14
*
15
- * @typedef {OptDef | OptDef[] } ExitKit Exit options, identical to `OptKit` for now
16
- * @typedef {Record<KeyStr, VarKit | ExitKit> } KeyKitMap
17
- * @typedef {Record<KeyStr, VarVal> } KeyValMap
15
+ * @typedef {OptDef | OptDef[] } ExitKit Exit options
16
+ * @typedef {Record<KeyStr, VarKit | ExitKit> } KeyKitMap `req`
17
+ * @typedef {Record<KeyStr, VarVal> } KeyValMap `res`
18
18
*
19
19
* @callback IsFatal
20
- * @param {{msg: string, i : number, opt: OptStr, key?: KeyStr, val?: VarVal } } err
20
+ * @param {{msg: string, avi : number, opt: OptStr, key?: KeyStr, val?: VarVal } } err
21
21
* @returns {boolean } Whether the parsing should continue (false) or quit (true)
22
22
* @typedef {Record<OptStr, KeyStr> } OptKeyMap internal type
23
23
*/
@@ -30,7 +30,7 @@ const god = ok => ok === undefined ? [] : isA(ok) ? ok : [ok];
30
30
* @param {KeyKitMap } req Options structure definition
31
31
* @param {KeyValMap } res Object to store parsed results
32
32
* @param {IsFatal } err Error handler function, return true to quit parsing
33
- * @returns {number | { i : number, key: KeyStr, opt: OptStr } }
33
+ * @returns {number | { avi : number, key: KeyStr, opt: OptStr } } `ret` is object when an exit option applied, or just `avi`
34
34
* @example
35
35
*/
36
36
export default function parse ( argv , i , req , res , err ) {
@@ -52,8 +52,8 @@ export default function parse(argv, i, req, res, err) {
52
52
return false ;
53
53
} return true ;
54
54
} , k = o => o == null ? key : o , // undefined is ok?
55
- ask = ( msg , val ) => err ( { msg, i, opt, key, val} ) ,
56
- exit = c => ( { i : i + c , key, opt } ) ;
55
+ ask = ( msg , val ) => err ( { msg, avi : i , opt, key, val} ) ,
56
+ exit = c => ( { avi : i + c , key, opt } ) ;
57
57
// prepare
58
58
/** @type {OptKeyMap } */
59
59
const set_ = { } , rst_ = { } , exit_ = { } ;
0 commit comments