json-as 0.1.9 → 0.2.3

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/README.md CHANGED
@@ -18,15 +18,13 @@
18
18
  - ✅ Null
19
19
  - ✅ Dynamic Arrays
20
20
  - ✅ Dynamic Types
21
- - Dynamic Objects (Soon!)
21
+ - Dynamic Objects
22
22
  - ✅ Whitespace
23
23
 
24
- ## WARNING: Possible breaking changes coming for v2.0.0
25
-
26
24
  ## Usage
27
25
 
28
26
  ```js
29
- import { JSON, unknown } from 'json-as'
27
+ import { JSON } from 'json-as'
30
28
  ```
31
29
 
32
30
  **Object**
@@ -51,7 +49,7 @@ const parsed = JSON.parse<JSONSchema>(stringified)
51
49
  // { firstName: "Jairus", lastName: "Tanaka", age: 14 }
52
50
  ```
53
51
 
54
- **Array (Typed)**
52
+ **Array**
55
53
 
56
54
  ```js
57
55
  const stringified = JSON.stringify(['Hello', 'World'])
@@ -61,16 +59,6 @@ const parsed = JSON.parse<JSONSchema>(stringified)
61
59
  // ["Hello", "World"]
62
60
  ```
63
61
 
64
- **Array (Dynamic)**
65
-
66
- ```js
67
- const stringified = JSON.stringify(["Welcome to dynamic arrays", 3.14, ["Deep"], true, "It also supports nulls", null])
68
- // '["Welcome to dynamic arrays",3.14,["Deep"],true,"It also supports nulls",null]'
69
-
70
- const parsed = JSON.parse<unknown[]>(stringified)
71
- // ["Welcome to dynamic arrays", 3.14, ["Deep"], true, "It also supports nulls", null]
72
- ```
73
-
74
62
  **Float**
75
63
 
76
64
  ```js
@@ -120,34 +108,19 @@ const stringified = JSON.stringify(null)
120
108
  const parsed = JSON.parse(stringified)
121
109
  // null
122
110
  ```
123
-
124
- ## Accessing unknown types
125
- **Breaking changes for v2.0.0!**
126
- **Experimental usage only**
127
-
128
- ```js
129
- const parsed = JSON.parse<unknown[]>(["Welcome to dynamic arrays",3.14,["Deep"],true,"It also supports nulls",null])
130
- console.log(parsed[0].get<string>())
131
- // "Welcome to dynamic arrays"
132
- console.log(parsed[1].get<f64>().toString())
133
- // 3.14
134
- ```
135
-
136
111
  ## Benchmarks
137
112
 
138
113
  ```
139
- AS-JSON Stringify String: ~1858051.4 ops/s | 53.82ms
140
- AS-JSON Parse String: ~4321632.43 ops/s | 23.14ms
141
- AS-JSON Stringify Integer: ~8529956.89 ops/s | 11.72ms
142
- AS-JSON Parse Integer: ~27839325.77 ops/s | 3.59ms
143
- AS-JSON Stringify Float: ~5128590.39 ops/s | 19.5ms
144
- AS-JSON Parse Float: ~21467505.24 ops/s | 4.66ms
145
- AS-JSON Stringify Boolean: ~361837455.83 ops/s | 0.28ms
146
- AS-JSON Parse Boolean: ~51522012.58 ops/s | 1.94ms
147
- AS-JSON Stringify Array: ~1421792.72 ops/s | 70.33ms
148
- AS-JSON Parse Array: ~3755593.05 ops/s | 26.63ms
149
- AS-JSON Stringify Object: ~3309471.1 ops/s | 30.22ms
150
- AS-JSON Parse Object: ~1054387.45 ops/s | 94.84ms
151
- AS-JSON Stringify Dynamic Array: ~285433.75 ops/s | 350.34ms
152
- AS-JSON Parse Dynamic Array: ~661516.87 ops/s | 151.17ms
114
+ AS-JSON Stringify String: ~4191267.51 ops/s | 23.86ms
115
+ AS-JSON Parse String: ~6218119.99 ops/s | 16.08ms
116
+ AS-JSON Stringify Integer: ~13775012.61 ops/s | 7.26ms
117
+ AS-JSON Parse Integer: ~55061164.13 ops/s | 1.82ms
118
+ AS-JSON Stringify Float: ~7739399.89 ops/s | 12.92ms
119
+ AS-JSON Parse Float: ~37522902.16 ops/s | 2.67ms
120
+ AS-JSON Stringify Boolean: ~615015015.02 ops/s | 0.16ms
121
+ AS-JSON Parse Boolean: ~93901879.87 ops/s | 1.06ms
122
+ AS-JSON Stringify Array: ~2380329.74 ops/s | 42.01ms
123
+ AS-JSON Parse Array: ~6258786.14 ops/s | 15.98ms
124
+ AS-JSON Stringify Object: ~5245632.91 ops/s | 19.06ms
125
+ AS-JSON Parse Object: ~1328576.06 ops/s | 75.27ms
153
126
  ```
@@ -0,0 +1,29 @@
1
+ import { unknown } from "./unknown"
2
+
3
+ /**
4
+ * Provides functionality common to all JavaScript objects.
5
+ */
6
+ export class DynamicObject {
7
+ [key: string]: any
8
+ // Having it marked as 'any' is for intellisense only
9
+ protected __data: Map<string, unknown> = new Map<string, unknown>()
10
+ set(path: string, value: unknown): void {
11
+ this.__data.set(path, value)
12
+ }
13
+ get<T = unknown>(path: string): T {
14
+ let type!: T
15
+ if (type instanceof unknown) {
16
+ // @ts-ignore
17
+ return this.__data.get(path)
18
+ } else {
19
+ // @ts-ignore
20
+ return this.__data.get(path).get<T>()
21
+ }
22
+ }
23
+ static keys(o: DynamicObject): string[] {
24
+ return o.__data.keys()
25
+ }
26
+ static values(o: DynamicObject): unknown[] {
27
+ return o.__data.values()
28
+ }
29
+ }
package/assembly/bench.ts CHANGED
@@ -2,12 +2,12 @@ import 'wasi'
2
2
 
3
3
  import { Date } from 'as-wasi'
4
4
 
5
- import { JSON } from './json'
5
+ import { JSON } from '.'
6
6
 
7
7
  import * as asJSON from "assemblyscript-json"
8
8
 
9
9
  import { unknown } from './unknown'
10
- import { Object } from './Object'
10
+ import { DynamicObject } from './DynamicObject'
11
11
 
12
12
  // @ts-ignore
13
13
  @json
@@ -19,7 +19,7 @@ const jsonData: JSONSchema = {
19
19
  hello: 'world'
20
20
  }
21
21
 
22
- const o = new Object()
22
+ const o = new DynamicObject()
23
23
 
24
24
  o['hello'] = unknown.wrap('world')
25
25
 
@@ -86,11 +86,11 @@ bench('AS-JSON Parse Object', () => {
86
86
  })
87
87
 
88
88
  bench('AS-JSON Stringify Dynamic Object', () => {
89
- JSON.stringify<Object>(o)
89
+ JSON.stringify<DynamicObject>(o)
90
90
  })
91
91
 
92
92
  bench('AS-JSON Parse Object', () => {
93
- JSON.parse<Object>('{"hello":"world"}')
93
+ JSON.parse<DynamicObject>('{"hello":"world"}')
94
94
  })
95
95
 
96
96
  bench('AS-JSON Stringify Dynamic Array', () => {
@@ -116,7 +116,7 @@ bench('AssemblyScript-JSON Stringify String', () => {
116
116
  String.UTF8.decode(binary.buffer)
117
117
  // Its odd. Not encoded in UTF16 Strings.
118
118
  // Since AS-JSON returns a string, so does assemblyscript-json in this bench.
119
- // Or else, the bench is biased.
119
+ // Or else, the bench is biased.
120
120
  })
121
121
 
122
122
  bench('AssemblyScript-JSON Parse String', () => {
@@ -1,8 +1,8 @@
1
1
  import { StringSink } from 'as-string-sink'
2
- import { Object } from './Object'
2
+ import { DynamicObject } from './DynamicObject'
3
3
  import { unknown, unknownTypes } from './unknown'
4
4
  export { unknown, unknownTypes } from './unknown'
5
- export { Object } from './Object'
5
+ export { DynamicObject as Object } from './DynamicObject'
6
6
 
7
7
  @global
8
8
  export class Nullable { }
@@ -29,7 +29,7 @@ const f_charCode: u16 = 116// "t"
29
29
  const nCode: u16 = 110// "n"
30
30
  const unknownId = idof<unknown>()
31
31
  const stringId = idof<string>()
32
- const objectId = idof<Object>()
32
+ const objectId = idof<DynamicObject>()
33
33
  const arrayStringId = idof<string[]>()
34
34
  const arrayBooleanId = idof<boolean[]>()
35
35
  const arrayBoolId = idof<bool[]>()
@@ -81,7 +81,7 @@ export namespace JSON {
81
81
  return serializeArray<T>(data)
82
82
  } else if (data instanceof unknown) {
83
83
  return serializeUnknown(data)
84
- } else if (data instanceof Object) {
84
+ } else if (data instanceof DynamicObject) {
85
85
  return serializeDynamicObject(data)
86
86
  }
87
87
 
@@ -115,16 +115,16 @@ export namespace JSON {
115
115
  // @ts-ignore
116
116
  else if (type instanceof unknown) return parseUnknown(data)
117
117
  // @ts-ignore
118
- else if (type instanceof Object) return parseDynamicObject(data)
118
+ else if (type instanceof DynamicObject) return parseDynamicObject(data)
119
119
  // @ts-ignore
120
120
  return parseObject<T>(data)
121
121
  }
122
122
  }
123
123
 
124
- export function serializeDynamicObject(data: Object): string {
124
+ export function serializeDynamicObject(data: DynamicObject): string {
125
125
  const result = new StringSink(lcbracket)
126
- const keys = Object.keys(data)
127
- const values = Object.values(data)
126
+ const keys = DynamicObject.keys(data)
127
+ const values = DynamicObject.values(data)
128
128
  const len: u32 = keys.length - 1
129
129
  if (len === -1) return '{}'
130
130
  for (let i: u32 = 0; i < len; i++) {
@@ -150,134 +150,134 @@ export function serializeUnknown(data: unknown): string {
150
150
  return serializeString(data.get<string>())
151
151
  }
152
152
  // @ts-ignore
153
- else if (data.type === objectId) {
153
+ else if (data.type === unknownTypes.boolean) {
154
154
  // @ts-ignore
155
- return serializeDynamicObject(data.get<Object>())
155
+ return serializeBoolean(data.get<boolean>())
156
156
  }
157
157
  // @ts-ignore
158
- else if (data.type === arrayUnknownId) {
158
+ else if (data.type === unknownTypes.i8) {
159
159
  // @ts-ignore
160
- return serializeUnknownArray(data.get<unknown[]>())
160
+ return data.get<i8>().toString()
161
161
  }
162
162
  // @ts-ignore
163
- else if (data.type === arrayBoolId) {
163
+ else if (data.type === unknownTypes.i16) {
164
164
  // @ts-ignore
165
- return serializeBooleanArray(data.get<bool[]>())
165
+ return data.get<i16>().toString()
166
166
  }
167
167
  // @ts-ignore
168
- else if (data.type === arrayBooleanId) {
168
+ else if (data.type === unknownTypes.i32) {
169
169
  // @ts-ignore
170
- return serializeBooleanArray(data.get<boolean[]>())
170
+ return data.get<i32>().toString()
171
171
  }
172
172
  // @ts-ignore
173
- else if (data.type === arrayF32Id) {
173
+ else if (data.type === unknownTypes.i64) {
174
174
  // @ts-ignore
175
- return serializeNumberArray<f32[]>(data.get<f32[]>())
175
+ return data.get<i64>().toString()
176
176
  }
177
177
  // @ts-ignore
178
- else if (data.type === arrayF64Id) {
178
+ else if (data.type === unknownTypes.u8) {
179
179
  // @ts-ignore
180
- return serializeNumberArray<f64[]>(data.get<f64[]>())
180
+ return data.get<u8>().toString()
181
181
  }
182
182
  // @ts-ignore
183
- else if (data.type === arrayU8Id) {
183
+ else if (data.type === unknownTypes.u16) {
184
184
  // @ts-ignore
185
- return serializeNumberArray<u8[]>(data.get<u8[]>())
185
+ return data.get<u16>().toString()
186
186
  }
187
187
  // @ts-ignore
188
- else if (data.type === arrayU16Id) {
188
+ else if (data.type === unknownTypes.u32) {
189
189
  // @ts-ignore
190
- return serializeNumberArray<u16[]>(data.get<u16[]>())
190
+ return data.get<u32>().toString()
191
191
  }
192
192
  // @ts-ignore
193
- else if (data.type === arrayU32Id) {
193
+ else if (data.type === unknownTypes.u64) {
194
194
  // @ts-ignore
195
- return serializeNumberArray<u32[]>(data.get<u32[]>())
195
+ return data.get<u64>().toString()
196
196
  }
197
197
  // @ts-ignore
198
- else if (data.type === arrayU64Id) {
198
+ else if (data.type === unknownTypes.f32) {
199
199
  // @ts-ignore
200
- return serializeNumberArray<u64[]>(data.get<u64[]>())
200
+ return data.get<f32>().toString()
201
201
  }
202
202
  // @ts-ignore
203
- else if (data.type === arrayI8Id) {
203
+ else if (data.type === unknownTypes.f64) {
204
204
  // @ts-ignore
205
- return serializeNumberArray<i8[]>(data.get<i8[]>())
205
+ return data.get<f64>().toString()
206
206
  }
207
207
  // @ts-ignore
208
- else if (data.type === arrayI16Id) {
208
+ else if (data.type === objectId) {
209
209
  // @ts-ignore
210
- return serializeNumberArray<i16[]>(data.get<i16[]>())
210
+ return serializeDynamicObject(data.get<DynamicObject>())
211
211
  }
212
212
  // @ts-ignore
213
- else if (data.type === arrayI32Id) {
213
+ else if (data.type === arrayUnknownId) {
214
214
  // @ts-ignore
215
- return serializeNumberArray<i32[]>(data.get<i32[]>())
215
+ return serializeUnknownArray(data.get<unknown[]>())
216
216
  }
217
217
  // @ts-ignore
218
- else if (data.type === arrayI64Id) {
218
+ else if (data.type === arrayBoolId) {
219
219
  // @ts-ignore
220
- return serializeNumberArray<i64[]>(data.get<i64[]>())
220
+ return serializeBooleanArray(data.get<bool[]>())
221
221
  }
222
222
  // @ts-ignore
223
- else if (data.type === arrayStringId) {
223
+ else if (data.type === arrayBooleanId) {
224
224
  // @ts-ignore
225
- return serializeStringArray(data.get<string[]>())
225
+ return serializeBooleanArray(data.get<boolean[]>())
226
226
  }
227
227
  // @ts-ignore
228
- else if (data.type === unknownTypes.boolean) {
228
+ else if (data.type === arrayF32Id) {
229
229
  // @ts-ignore
230
- return serializeBoolean(data.get<boolean>())
230
+ return serializeNumberArray<f32[]>(data.get<f32[]>())
231
231
  }
232
232
  // @ts-ignore
233
- else if (data.type === unknownTypes.i8) {
233
+ else if (data.type === arrayF64Id) {
234
234
  // @ts-ignore
235
- return data.get<i8>().toString()
235
+ return serializeNumberArray<f64[]>(data.get<f64[]>())
236
236
  }
237
237
  // @ts-ignore
238
- else if (data.type === unknownTypes.i16) {
238
+ else if (data.type === arrayU8Id) {
239
239
  // @ts-ignore
240
- return data.get<i16>().toString()
240
+ return serializeNumberArray<u8[]>(data.get<u8[]>())
241
241
  }
242
242
  // @ts-ignore
243
- else if (data.type === unknownTypes.i32) {
243
+ else if (data.type === arrayU16Id) {
244
244
  // @ts-ignore
245
- return data.get<i32>().toString()
245
+ return serializeNumberArray<u16[]>(data.get<u16[]>())
246
246
  }
247
247
  // @ts-ignore
248
- else if (data.type === unknownTypes.i64) {
248
+ else if (data.type === arrayU32Id) {
249
249
  // @ts-ignore
250
- return data.get<i64>().toString()
250
+ return serializeNumberArray<u32[]>(data.get<u32[]>())
251
251
  }
252
252
  // @ts-ignore
253
- else if (data.type === unknownTypes.u8) {
253
+ else if (data.type === arrayU64Id) {
254
254
  // @ts-ignore
255
- return data.get<u8>().toString()
255
+ return serializeNumberArray<u64[]>(data.get<u64[]>())
256
256
  }
257
257
  // @ts-ignore
258
- else if (data.type === unknownTypes.u16) {
258
+ else if (data.type === arrayI8Id) {
259
259
  // @ts-ignore
260
- return data.get<u16>().toString()
260
+ return serializeNumberArray<i8[]>(data.get<i8[]>())
261
261
  }
262
262
  // @ts-ignore
263
- else if (data.type === unknownTypes.u32) {
263
+ else if (data.type === arrayI16Id) {
264
264
  // @ts-ignore
265
- return data.get<u32>().toString()
265
+ return serializeNumberArray<i16[]>(data.get<i16[]>())
266
266
  }
267
267
  // @ts-ignore
268
- else if (data.type === unknownTypes.u64) {
268
+ else if (data.type === arrayI32Id) {
269
269
  // @ts-ignore
270
- return data.get<u64>().toString()
270
+ return serializeNumberArray<i32[]>(data.get<i32[]>())
271
271
  }
272
272
  // @ts-ignore
273
- else if (data.type === unknownTypes.f32) {
273
+ else if (data.type === arrayI64Id) {
274
274
  // @ts-ignore
275
- return data.get<f32>().toString()
275
+ return serializeNumberArray<i64[]>(data.get<i64[]>())
276
276
  }
277
277
  // @ts-ignore
278
- else if (data.type === unknownTypes.f64) {
278
+ else if (data.type === arrayStringId) {
279
279
  // @ts-ignore
280
- return data.get<f64>().toString()
280
+ return serializeStringArray(data.get<string[]>())
281
281
  }
282
282
  // @ts-ignore
283
283
  else {
@@ -377,7 +377,7 @@ function serializeObjectArray<T extends Array<any>>(data: T): string {
377
377
  return result.toString()
378
378
  }
379
379
 
380
- function serializeDynamicObjectArray(data: Object[]): string {
380
+ function serializeDynamicObjectArray(data: DynamicObject[]): string {
381
381
  const result = new StringSink(lbracket)
382
382
  const len: u32 = data.length - 1
383
383
  for (let i: u32 = 0; i < len; i++) {
@@ -436,7 +436,7 @@ export function serializeArray<T extends Array<any>>(data: T): string {
436
436
  result.writeCodePoint(rbracketCode)
437
437
  return result.toString()
438
438
  // @ts-ignore
439
- } else if (type instanceof Object) {
439
+ } else if (type instanceof DynamicObject) {
440
440
  for (let i = 0; i < len; i++) {
441
441
  result.write(serializeDynamicObject(unchecked(data[i])))
442
442
  result.writeCodePoint(commaCode)
@@ -712,9 +712,9 @@ export function parseObject<T>(data: string): T {
712
712
  return schema.__decode(result)
713
713
  }
714
714
 
715
- export function parseDynamicObject(data: string): Object {
715
+ export function parseDynamicObject(data: string): DynamicObject {
716
716
  const len: u32 = data.length - 1
717
- if (len === 1) return new Object()
717
+ if (len === 1) return new DynamicObject()
718
718
  const result = new Map<string, unknown>()
719
719
  let lastPos: u32 = 1
720
720
  let key: string = ''
@@ -750,7 +750,7 @@ export function parseDynamicObject(data: string): Object {
750
750
  }
751
751
 
752
752
  if ((len - lastPos) > 0) result.set(key, unknown.wrap(data.slice(lastPos + 1, len - 1).trim()))
753
- const o = new Object()
753
+ const o = new DynamicObject()
754
754
  // @ts-ignore
755
755
  o.__data = result
756
756
  return o
package/assembly/test.ts CHANGED
@@ -2,10 +2,10 @@ import { unknown, unknownTypes } from './unknown'
2
2
 
3
3
  import { console, stringify } from "../node_modules/as-console/assembly/wasi"
4
4
 
5
- import { JSON, parseDynamicObject, parseUnknown, parseUnknownArray } from './json'
6
-
7
- import { Object } from './Object'
5
+ import { JSON, parseDynamicObject, parseUnknown, parseUnknownArray } from '.'
8
6
 
7
+ import { DynamicObject } from './DynamicObject'
8
+ /*
9
9
  // Not inlining results in an error for some reason
10
10
  // @ts-ignore
11
11
  @inline
@@ -180,3 +180,13 @@ check<string[][]>('Encode/Decode string[][]', [['Hey'], ['ha'], ['ho']])
180
180
  check<JSONSchema>('Encode/Decode object', obj)
181
181
 
182
182
  check<EmptySchema>('Encode/Decode object', emptyObj)
183
+ */
184
+ // Unknown
185
+ //check<unknown[]>('Encode/Decode unknown[]', ["Welcome to dynamic arrays", ["Very", ["Deep", ["Array"]]], "It also supports nulls"])
186
+
187
+ //console.log(JSON.stringify(["Welcome to dynamic arrays", 3.14, ["Very", ["Deep", ["Array"]]], true, "It also supports nulls", null]))
188
+
189
+ //console.log(JSON.stringify(JSON.parse<unknown[]>('["Welcome to dynamic arrays",3.14,["Very",["Deep",["Array"]]],true,"It also supports nulls",null]')))
190
+ const foo = new Map()
191
+
192
+ //console.log(JSON.stringify(parseDynamicObject('{"hello":"world"}')))
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "json-as",
3
- "version": "0.1.9",
3
+ "version": "0.2.3",
4
4
  "description": "JSON encoder/decoder for AssemblyScript",
5
- "types": "assembly/json.ts",
6
- "ascMain": "assembly/json.ts",
5
+ "types": "assembly/index.ts",
6
+ "ascMain": "assembly/index.ts",
7
7
  "author": "JairusSW",
8
8
  "license": "MIT",
9
9
  "scripts": {
@@ -22,24 +22,23 @@
22
22
  "@as-pect/cli": "^6.2.4",
23
23
  "@assemblyscript/loader": "^0.19.10",
24
24
  "@serial-as/json": "^1.0.2",
25
- "@types/jest": "^26.0.24",
25
+ "@types/jest": "^27.0.2",
26
26
  "@types/line-column": "^1.0.0",
27
27
  "as-base64": "^0.2.0",
28
28
  "as-bignum": "^0.2.18",
29
29
  "as-console": "^6.0.2",
30
- "as-string-sink": "^0.4.2",
31
30
  "as-variant": "^0.2.1",
32
31
  "as-wasi": "^0.4.6",
33
32
  "asbuild": "^0.2.0",
34
- "assemblyscript": "^0.19.10",
33
+ "assemblyscript": "^0.19.18",
35
34
  "assemblyscript-json": "^1.1.0",
36
- "jest": "^27.0.6",
37
- "kati": "^0.5.1",
35
+ "jest": "^27.3.1",
36
+ "kati": "^0.6.2",
38
37
  "lerna": "^4.0.0",
39
38
  "rimraf": "^3.0.2",
40
- "ts-jest": "^27.0.4",
41
- "ts-node": "^10.1.0",
42
- "typescript": "^4.3.5"
39
+ "ts-jest": "^27.0.7",
40
+ "ts-node": "^10.4.0",
41
+ "typescript": "^4.4.4"
43
42
  },
44
43
  "dependencies": {},
45
44
  "repository": {
@@ -3,7 +3,7 @@ const as_1 = require("visitor-as/as");
3
3
  const visitor_as_1 = require("visitor-as");
4
4
  const utils_1 = require("visitor-as/dist/utils");
5
5
  function getTypeName(type) {
6
- let _type = utils_1.getName(type);
6
+ let _type = (0, utils_1.getName)(type);
7
7
  const OR_NULL = /\|.*null/;
8
8
  if (type.isNullable && !OR_NULL.test(_type)) {
9
9
  _type = `${_type} | null`;
@@ -29,9 +29,9 @@ class JSONTransformer extends visitor_as_1.BaseVisitor {
29
29
  }
30
30
  visitElementAccessExpression(node) {
31
31
  super.visitElementAccessExpression(node);
32
- if (utils_1.toString(node.expression) === 'o') {
32
+ if ((0, utils_1.toString)(node.expression) === 'o') {
33
33
  // Should be like if (node.expression.type.text === "Object") {
34
- const replacer = visitor_as_1.SimpleParser.parseExpression(`u32(changetype<usize>(${utils_1.toString(node.elementExpression)}))`);
34
+ const replacer = visitor_as_1.SimpleParser.parseExpression(`u32(changetype<usize>(${(0, utils_1.toString)(node.elementExpression)}))`);
35
35
  node.elementExpression = replacer;
36
36
  this.sources.push(replacer.range.source);
37
37
  }
@@ -49,7 +49,7 @@ class JSONTransformer extends visitor_as_1.BaseVisitor {
49
49
  this.convertToAnyArray(expr.elementExpressions);
50
50
  }
51
51
  // @ts-ignore
52
- replacement = visitor_as_1.SimpleParser.parseExpression(`unknown.wrap(${utils_1.toString(expr)})`);
52
+ replacement = visitor_as_1.SimpleParser.parseExpression(`unknown.wrap(${(0, utils_1.toString)(expr)})`);
53
53
  node.elementExpressions[i] = replacement;
54
54
  this.sources.push(replacement.range.source);
55
55
  }
@@ -66,14 +66,14 @@ class JSONTransformer extends visitor_as_1.BaseVisitor {
66
66
  this.convertToAnyArray(expr.elementExpressions);
67
67
  }
68
68
  // @ts-ignore
69
- replacement = visitor_as_1.SimpleParser.parseExpression(`unknown.wrap(${utils_1.toString(expr)})`);
69
+ replacement = visitor_as_1.SimpleParser.parseExpression(`unknown.wrap(${(0, utils_1.toString)(expr)})`);
70
70
  exprs[i] = replacement;
71
71
  this.sources.push(replacement.range.source);
72
72
  }
73
73
  }
74
74
  visitFieldDeclaration(node) {
75
75
  super.visitFieldDeclaration(node);
76
- const name = utils_1.toString(node.name);
76
+ const name = (0, utils_1.toString)(node.name);
77
77
  if (!node.type) {
78
78
  throw new Error(`Field ${name} is missing a type declaration`);
79
79
  }
@@ -96,7 +96,7 @@ class JSONTransformer extends visitor_as_1.BaseVisitor {
96
96
  return;
97
97
  }
98
98
  this.currentClass = node;
99
- const name = utils_1.getName(node);
99
+ const name = (0, utils_1.getName)(node);
100
100
  this.encodeStmts.delete(name);
101
101
  this.decodeCode.delete(name);
102
102
  this.visit(node.members);
@@ -146,10 +146,10 @@ function isanyArray(node) {
146
146
  if (node.elementExpressions.length === 0)
147
147
  return false;
148
148
  const firstKind = node.elementExpressions[0]?.kind;
149
- const isBoolean = (utils_1.toString(node.elementExpressions[0]) === 'true' || utils_1.toString(node.elementExpressions[0]) === 'false');
149
+ const isBoolean = ((0, utils_1.toString)(node.elementExpressions[0]) === 'true' || (0, utils_1.toString)(node.elementExpressions[0]) === 'false');
150
150
  for (const chunk of node.elementExpressions) {
151
151
  if (isBoolean) {
152
- if (utils_1.toString(chunk) !== 'true' || utils_1.toString(chunk) !== 'false')
152
+ if ((0, utils_1.toString)(chunk) !== 'true' || (0, utils_1.toString)(chunk) !== 'false')
153
153
  true;
154
154
  }
155
155
  else if (chunk.kind !== firstKind)
@@ -1,28 +0,0 @@
1
- import { unknown } from "./unknown"
2
-
3
- /**
4
- * Provides functionality common to all JavaScript objects.
5
- */
6
- export class Object {
7
- [key: string]: any
8
- // Having it marked as 'any' is for intellisense only
9
- protected __data: Map<string, unknown> = new Map<string, unknown>()
10
- @operator('[]')
11
- private __getKeyOp(key: usize): unknown {
12
- if (this.__data.has(changetype<string>(key))) {
13
- return this.__data.get(changetype<string>(key))
14
- } else {
15
- return unknown.wrap(null)
16
- }
17
- }
18
- @operator('[]=')
19
- private __setKeyOp(key: usize, value: unknown): void {
20
- this.__data.set(changetype<string>(key), value)
21
- }
22
- static keys(o: Object): string[] {
23
- return o.__data.keys()
24
- }
25
- static values(o: Object): unknown[] {
26
- return o.__data.values()
27
- }
28
- }