Implement LazyArray.splice(), implement unshift/shift/push/pop in terms of splice...
[logjson.git] / index.mjs
1 import Database from './Database.mjs'
2 import LazyValue from './LazyValue.mjs'
3 import LazyArray from './LazyArray.mjs'
4 import LazyObject from './LazyObject.mjs'
5  
6 let logjson_to_json = async value => {
7   if (value instanceof LazyValue) {
8     let new_value
9     if (value instanceof LazyArray) {
10       new_value = []
11       for (let i = 0; i < value.length; ++i)
12         new_value.push(await logjson_to_json(await value.get(i)))
13     }
14     else {
15       new_value = {}
16       let keys = value.keys()
17       for (let i = 0; i < keys.length; ++i) {
18         let key = keys[i]
19         new_value[key] = await logjson_to_json(await value.get(key))
20       }
21     }
22     value = new_value
23   }
24   return value
25 }
26
27 export default {
28   Database,
29   LazyValue,
30   LazyArray,
31   LazyObject,
32   logjson_to_json
33 }