nv-data-container

1.0.0 • Public • Published

nv-data-container

  • normal json can ONLY carry data at leaf node
  • nv-data-container will creat a Object that can carry data on every Node
  • its a simplified version of nv-facutil-cfg,easy to use

install

  • npm install nv-data-container

usage

 const {data,load,load_to_sdfs} = require("nv-data-container")

 var rt = data("RRRR")
 rt.a = data('AAAA')
 rt.a.x = data('XXXXXXXX')
 rt.b = data('BBBB')
 rt.c = data('CCCC')
 rt.d = data('DDDD')
 rt.d.e = data('EEEE')
 rt.d.e.f = data('FFFF')


 /*
 > rt
  [RRRR] {
   a:  [AAAA] { x:  [XXXXXXXX] {} },
   b:  [BBBB] {},
   c:  [CCCC] {},
   d:  [DDDD] { e:  [EEEE] { f:  [FFFF] {} } }
 }
 >
 */

 ### relation
 > rt.$relation()
 { a: { x: {} }, b: {}, c: {}, d: { e: { f: {} } } }

 >

 ### data
 > rt.$data()
 {
   a: 'AAAA',
   'a.x': 'XXXXXXXX',
   b: 'BBBB',
   c: 'CCCC',
   d: 'DDDD',
   'd.e': 'EEEE',
   'd.e.f': 'FFFF',
   '': 'RRRR'               //this is data carried by root
 }
 >

 ### get set plget plset  get_data set_data
 > rt.$plget(["a","x"])
 'XXXXXXXX'
 > rt.$get("a","x")
 'XXXXXXXX'
 >
 > rt.$get_data()
 'RRRR'
 >



 ### pls

 > rt.$pls()
 [
   [],
   [ 'a' ],
   [ 'a', 'x' ],
   [ 'b' ],
   [ 'c' ],
   [ 'd' ],
   [ 'd', 'e' ],
   [ 'd', 'e', 'f' ]
 ]
 >

 ###tree sdfs

 > rt.$tree()
 Tree { type: 'dict', key: null, val: 'RRRR' }
 >
 > rt.$sdfs()
 [
   Tree { type: 'dict', key: null, val: 'RRRR' },
   _Node { type: 'dict', key: 'a', val: 'AAAA' },
   _Node { type: 'dict', key: 'x', val: 'XXXXXXXX' },
   _Node { type: 'dict', key: 'b', val: 'BBBB' },
   _Node { type: 'dict', key: 'c', val: 'CCCC' },
   _Node { type: 'dict', key: 'd', val: 'DDDD' },
   _Node { type: 'dict', key: 'e', val: 'EEEE' },
   _Node { type: 'dict', key: 'f', val: 'FFFF' }
 ]
 >

 ###json-like

 > rt.$json()
 {
   relation: { a: { x: {} }, b: {}, c: {}, d: { e: [Object] } },
   data: {
     a: 'AAAA',
     'a.x': 'XXXXXXXX',
     b: 'BBBB',
     c: 'CCCC',
     d: 'DDDD',
     'd.e': 'EEEE',
     'd.e.f': 'FFFF',
     '': 'RRRR'
   }
 }
 >

 ### load
 var jobj = rt.$json()
 var d = load(jobj)

  [RRRR] {
   a:  [AAAA] { x:  [XXXXXXXX] {} },
   b:  [BBBB] {},
   c:  [CCCC] {},
   d:  [DDDD] { e:  [EEEE] { f:  [FFFF] {} } }
 }



 ### load to sdfs
 > load_to_sdfs(jobj)
 [
   Tree { type: 'dict', key: null, val: 'RRRR' },
   _Node { type: 'dict', key: 'a', val: 'AAAA' },
   _Node { type: 'dict', key: 'x', val: 'XXXXXXXX' },
   _Node { type: 'dict', key: 'b', val: 'BBBB' },
   _Node { type: 'dict', key: 'c', val: 'CCCC' },
   _Node { type: 'dict', key: 'd', val: 'DDDD' },
   _Node { type: 'dict', key: 'e', val: 'EEEE' },
   _Node { type: 'dict', key: 'f', val: 'FFFF' }
 ]
 >

METHODS

rt.$data                 rt.$get                  rt.$get_data
rt.$json                 rt.$plget                rt.$pls
rt.$plset                rt.$relation             rt.$sdfs
rt.$set                  rt.$set_data             rt.$tree

APIS

  • nvdata.data(any_thing)
  • nvdata.load(o)
  • nvdata.load_to_sdfs(o)
  • nvdata.ERROR_DICT

LICENSE

  • ISC

Package Sidebar

Install

npm i nv-data-container

Weekly Downloads

0

Version

1.0.0

License

ISC

Unpacked Size

7.66 kB

Total Files

3

Last publish

Collaborators

  • ihgazni2