0.0.2 • Published 3 years ago

nv-facutil-pattern v0.0.2

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

nv-facutil-pattern

  • nv-facutil-pattern
  • util for split function params with a nest-pattern-array

install

  • npm install nv-facutil-pattern

usage

  • ptrn-name must be String
  • ptrn-name can NOT include "|"

const {
    creat_ptrn_engine,
    creat_zipper,
    unzip,
} = require("nv-facutil-pattern");

example

zip

var params = [ 10,  20, 30,   40,  50, 60, 70, 80  ]
var ptrn   = ['a',['b','c', 'd', 'e','f','g'],'h']
var zip    = creat_zipper(ptrn)
zip(params)

>
{
  a: 10,
  'b|c|d|e|f|g': { b: 20, c: 30, d: 40, e: 50, f: 60, g: 70 },
  h: 80
}
>

var ptrn   = ['a',['b','c'], 'd', ['e','f','g','h']]
var zip    = creat_zipper(ptrn)
var j      = zip(params)

/*
> j
{
  a: 10,
  'b|c': { b: 20, c: 30 },
  d: 40,
  'e|f|g|h': { e: 50, f: 60, g: 70, h: 80 }
}
>
*/


var ptrn   = ['a',['b','c', 'd', 'e','f','g','h']]

unzip

    unzip(j)
    
    /*
    > unzip(j)
    {
      params: [
        10, 20, 30, 40,
        50, 60, 70, 80
      ],
      ptrn: [ 'a', [ 'b', 'c' ], 'd', [ 'e', 'f', 'g', 'h' ] ],
      eng: [...<4 unshow>...],
      forest: Forest {
        fid: 'fe772507-eaf6-4579-bf25-4b2ee7f9d09e',
        max_size: 10000,
        idpool: { minid_: 1, maxid_: 10000, used_: 11, lefted_: 9989 }
      }
    }
    >
    */

API

  • creat_ptrn_engine(ptrn,max_size,rtrn_forest=false)
  • zip_with_eng(params,eng)
  • zip_with_ptrn(params,ptrn,max_size=10000)
  • creat_zipper(ptrn,max_size=10000)
  • unzip(j,max_size=10000)

LICENSE

  • ISC