1.0.2 • Published 2 years ago
nv-dict-opt-shape v1.0.2
nv-dict-opt-shape
- iter all valid shapes IF (value is limited AND enumerable)
install
- npm install nv-dict-opt-shape
usage
const {
gen,
all,
is_valid
} = require("nv-dict-opt-shape")
example
var is_empty = (o)=> o===null || o === undefined;
var cfg = {
k0:["a","b"],
k1:[undefined,100,200],
k2:["X",9999,"Y"]
}
var g = gen(cfg,is_empty)
/*
> g.next().value
{ k0: 'a', k2: 'X' }
> g.next().value
{ k0: 'a', k2: 9999 }
> g.next().value
{ k0: 'a', k2: 'Y' }
> g.next().value
{ k0: 'a', k1: 100, k2: 'X' }
> g.next().value
{ k0: 'a', k1: 100, k2: 9999 }
> g.next().value
{ k0: 'a', k1: 100, k2: 'Y' }
> g.next().value
{ k0: 'a', k1: 200, k2: 'X' }
> g.next().value
{ k0: 'a', k1: 200, k2: 9999 }
> g.next().value
{ k0: 'a', k1: 200, k2: 'Y' }
> g.next().value
{ k0: 'b', k2: 'X' }
> g.next().value
{ k0: 'b', k2: 9999 }
> g.next().value
{ k0: 'b', k2: 'Y' }
> g.next().value
{ k0: 'b', k1: 100, k2: 'X' }
> g.next().value
{ k0: 'b', k1: 100, k2: 9999 }
> g.next().value
{ k0: 'b', k1: 100, k2: 'Y' }
> g.next().value
{ k0: 'b', k1: 200, k2: 'X' }
> g.next().value
{ k0: 'b', k1: 200, k2: 9999 }
> g.next().value
{ k0: 'b', k1: 200, k2: 'Y' }
> g.next().value
> all(cfg)
[
{ k0: 'a', k2: 'X' },
{ k0: 'a', k2: 9999 },
{ k0: 'a', k2: 'Y' },
{ k0: 'a', k1: 100, k2: 'X' },
{ k0: 'a', k1: 100, k2: 9999 },
{ k0: 'a', k1: 100, k2: 'Y' },
{ k0: 'a', k1: 200, k2: 'X' },
{ k0: 'a', k1: 200, k2: 9999 },
{ k0: 'a', k1: 200, k2: 'Y' },
{ k0: 'b', k2: 'X' },
{ k0: 'b', k2: 9999 },
{ k0: 'b', k2: 'Y' },
{ k0: 'b', k1: 100, k2: 'X' },
{ k0: 'b', k1: 100, k2: 9999 },
{ k0: 'b', k1: 100, k2: 'Y' },
{ k0: 'b', k1: 200, k2: 'X' },
{ k0: 'b', k1: 200, k2: 9999 },
{ k0: 'b', k1: 200, k2: 'Y' }
]
>
*/
METHODS
APIS
const DFLT_IS_EMPTY = is_unnu;
const is_valid = (d,cfg,is_empty=DFLT_IS_EMPTY) => {
function* gen(cfg,is_empty=DFLT_IS_EMPTY) {
const all = (cfg,is_empty=DFLT_IS_EMPTY) => _A.from(gen(cfg,is_empty))
LICENSE
- ISC
1.0.2
2 years ago