@typeberry/lib 0.5.4-472e282 → 0.5.4-61ca416

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": "@typeberry/lib",
3
- "version": "0.5.4-472e282",
3
+ "version": "0.5.4-61ca416",
4
4
  "description": "Typeberry Library",
5
5
  "main": "./bin/lib/index.js",
6
6
  "types": "./bin/lib/index.d.ts",
@@ -1 +1 @@
1
- {"version":3,"file":"descriptors.d.ts","sourceRoot":"","sources":["../../../../../packages/core/json-parser/descriptors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEhF,yBAAiB,IAAI,CAAC;IACpB,kDAAkD;IAClD,SAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAElG;IAED,kDAAkD;IAClD,SAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAElG;IAED,4DAA4D;IAC5D,SAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAUnG;IAED,mDAAmD;IACnD,SAAgB,UAAU,CAAC,KAAK,SAAS,MAAM,uCAE9C;IAED,+DAA+D;IAC/D,SAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAEjG;IAED,wFAAwF;IACxF,SAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,CAEtE;IAED,sEAAsE;IACtE,SAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAEjE;IAED,6CAA6C;IAC7C,SAAgB,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,CAErE;IAED,kDAAkD;IAClD,SAAgB,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAWpF;IAED,uCAAuC;IACvC,SAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAWrG;IAED,0FAA0F;IAC1F,SAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EACzC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EACrB,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAC7B,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAKpC;CACF"}
1
+ {"version":3,"file":"descriptors.d.ts","sourceRoot":"","sources":["../../../../../packages/core/json-parser/descriptors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEhF,yBAAiB,IAAI,CAAC;IACpB,kDAAkD;IAClD,SAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAElG;IAED,kDAAkD;IAClD,SAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAElG;IAED,4DAA4D;IAC5D,SAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAUnG;IAED,mDAAmD;IACnD,SAAgB,UAAU,CAAC,KAAK,SAAS,MAAM,uCAE9C;IAED,+DAA+D;IAC/D,SAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAEjG;IAED,wFAAwF;IACxF,SAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,CAEtE;IAED,sEAAsE;IACtE,SAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,CAEjE;IAED,6CAA6C;IAC7C,SAAgB,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,CAErE;IAED,kDAAkD;IAClD,SAAgB,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAWpF;IAED,uCAAuC;IACvC,SAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAcrG;IAED,0FAA0F;IAC1F,SAAgB,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,EACzC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EACrB,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAC7B,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAKpC;CACF"}
@@ -69,6 +69,9 @@ export var json;
69
69
  if (typeof inJson !== "object" || inJson === null) {
70
70
  throw new Error("Expected map for parsing");
71
71
  }
72
+ if (Array.isArray(inJson)) {
73
+ throw new Error("Expected map, got array");
74
+ }
72
75
  const result = new Map();
73
76
  for (const [key, value] of Object.entries(inJson)) {
74
77
  result.set(parseFromJson(key, K, `${context}.key`), parseFromJson(value, V, `${context}.value`));
@@ -135,4 +135,34 @@ test("JSON parser", async (t) => {
135
135
  assert.strictEqual(result.k, undefined);
136
136
  assert.strictEqual(result.v, true);
137
137
  });
138
+ await t.test("map", () => {
139
+ const j = `{"k": { "a": "b", "c": "d" } }`;
140
+ class TestClass {
141
+ static fromJson = {
142
+ k: json.map("string", "string"),
143
+ };
144
+ k = new Map();
145
+ }
146
+ const result = parseFromJson(JSON.parse(j), TestClass.fromJson);
147
+ assert.deepStrictEqual(result.k, new Map([
148
+ ["a", "b"],
149
+ ["c", "d"],
150
+ ]));
151
+ });
152
+ await t.test("map type mismatch", () => {
153
+ const j = `{"k": [["a", "b"], ["c", "d"]]}`;
154
+ class TestClass {
155
+ static fromJson = {
156
+ k: json.map("string", "string"),
157
+ };
158
+ k = new Map();
159
+ }
160
+ try {
161
+ parseFromJson(JSON.parse(j), TestClass.fromJson);
162
+ assert.fail("Expected error to be thrown");
163
+ }
164
+ catch (e) {
165
+ assert.strictEqual(`${e}`, "Error: [<root>.k] Error while parsing the value: Error: Expected map, got array");
166
+ }
167
+ });
138
168
  });