@muze-nl/od-jsontag 0.2.6 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@muze-nl/od-jsontag",
3
- "version": "0.2.6",
3
+ "version": "0.2.7",
4
4
  "description": "On Demand JSONTag: parse/serialize large datastructures on demand, useful for sharing data between threads",
5
5
  "type": "module",
6
6
  "author": "Auke van Slooten <auke@muze.nl>",
package/src/parse.mjs CHANGED
@@ -825,17 +825,10 @@ export default function parse(input, meta, immutable=true)
825
825
  },
826
826
  handler: {
827
827
  get(target, prop, receiver) {
828
- firstParse(target, receiver)
829
828
  switch(prop) {
830
829
  case resultSet:
831
830
  return meta.resultArray
832
831
  break;
833
- case source:
834
- if (meta.access && !meta.access(target, prop, 'get')) {
835
- return undefined
836
- }
837
- return target
838
- break
839
832
  case isProxy:
840
833
  return true
841
834
  break
@@ -860,6 +853,15 @@ export default function parse(input, meta, immutable=true)
860
853
  case isChanged:
861
854
  return target[isChanged]
862
855
  break
856
+ }
857
+ firstParse(target, receiver)
858
+ switch(prop) {
859
+ case source:
860
+ if (meta.access && !meta.access(target, prop, 'get')) {
861
+ return undefined
862
+ }
863
+ return target
864
+ break
863
865
  default:
864
866
  if (meta.access && !meta.access(target, prop, 'get')) {
865
867
  return undefined
@@ -876,7 +878,6 @@ export default function parse(input, meta, immutable=true)
876
878
  if (immutable && prop!==resultSet && prop!==source) {
877
879
  throw new Error('dataspace is immutable')
878
880
  }
879
- firstParse(target, receiver)
880
881
  switch(prop) {
881
882
  case isChanged:
882
883
  break
@@ -888,18 +889,16 @@ export default function parse(input, meta, immutable=true)
888
889
  return true
889
890
  break
890
891
  case resultSet:
891
- break
892
- default:
893
- if (meta.access && !meta.access(target, prop, 'set')) {
894
- return undefined
895
- }
896
- if (JSONTag.getType(value)==='object' && !value[isProxy]) {
897
- value = getNewValueProxy(value)
898
- }
899
- target[prop] = value
900
-
901
892
  break
902
893
  }
894
+ firstParse(target, receiver)
895
+ if (meta.access && !meta.access(target, prop, 'set')) {
896
+ return undefined
897
+ }
898
+ if (JSONTag.getType(value)==='object' && !value[isProxy]) {
899
+ value = getNewValueProxy(value)
900
+ }
901
+ target[prop] = value
903
902
  target[isChanged] = true
904
903
  return true
905
904
  },
package/src/serialize.mjs CHANGED
@@ -16,7 +16,7 @@ function stringToSAB(strData) {
16
16
  }
17
17
 
18
18
  export default function serialize(value, options={}) {
19
- let resultArray = []
19
+ let resultArray = false
20
20
  let references = new WeakMap()
21
21
 
22
22
  if (options.meta) {
@@ -26,6 +26,15 @@ export default function serialize(value, options={}) {
26
26
  if (!options.meta.index.id) {
27
27
  options.meta.index.id = new Map()
28
28
  }
29
+ if (options.meta.resultArray) {
30
+ resultArray = options.meta.resultArray
31
+ }
32
+ }
33
+ if (!resultArray) {
34
+ resultArray = value[resultSet]
35
+ }
36
+ if (!resultArray) {
37
+ resultArray = []
29
38
  }
30
39
 
31
40
  function stringifyValue(value, inarray=false, current) {
@@ -149,9 +158,7 @@ export default function serialize(value, options={}) {
149
158
  return u8arr
150
159
  }
151
160
 
152
- if (value[resultSet]) {
153
- resultArray = value[resultSet].slice()
154
- } else {
161
+ if (!value[resultSet]) {
155
162
  resultArray.push(value)
156
163
  }
157
164
  let currentSource = 0
@@ -185,6 +192,7 @@ export default function serialize(value, options={}) {
185
192
  } else {
186
193
  skipCount++
187
194
  }
195
+
188
196
  currentSource++
189
197
  }
190
198
  let arr = result.map(encode)