1.0.2 • Published 2 years ago

nv-dict-opt-shape v1.0.2

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

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