shapedef 1.0.27 → 1.0.29

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.
Files changed (77) hide show
  1. package/dist/cjs/common/array.d.ts +6 -0
  2. package/dist/cjs/common/array.d.ts.map +1 -0
  3. package/dist/cjs/common/array.js +30 -0
  4. package/dist/cjs/common/array.js.map +1 -0
  5. package/dist/cjs/index.d.ts +2 -0
  6. package/dist/cjs/index.d.ts.map +1 -1
  7. package/dist/cjs/index.js +2 -0
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/shape-utils.d.ts +0 -1
  10. package/dist/cjs/shape-utils.d.ts.map +1 -1
  11. package/dist/cjs/shape-utils.js +1 -38
  12. package/dist/cjs/shape-utils.js.map +1 -1
  13. package/dist/cjs/shape.d.ts +9 -2
  14. package/dist/cjs/shape.d.ts.map +1 -1
  15. package/dist/cjs/shape.js +27 -2
  16. package/dist/cjs/shape.js.map +1 -1
  17. package/dist/cjs/simplify.d.ts +3 -0
  18. package/dist/cjs/simplify.d.ts.map +1 -0
  19. package/dist/cjs/simplify.js +55 -0
  20. package/dist/cjs/simplify.js.map +1 -0
  21. package/dist/cjs/strip.d.ts +3 -0
  22. package/dist/cjs/strip.d.ts.map +1 -0
  23. package/dist/cjs/strip.js +30 -0
  24. package/dist/cjs/strip.js.map +1 -0
  25. package/dist/cjs/translations/postgres.d.ts.map +1 -1
  26. package/dist/cjs/translations/postgres.js +15 -6
  27. package/dist/cjs/translations/postgres.js.map +1 -1
  28. package/dist/cjs/translations/typescript.d.ts.map +1 -1
  29. package/dist/cjs/translations/typescript.js +2 -0
  30. package/dist/cjs/translations/typescript.js.map +1 -1
  31. package/dist/cjs/validation.d.ts.map +1 -1
  32. package/dist/cjs/validation.js +10 -0
  33. package/dist/cjs/validation.js.map +1 -1
  34. package/dist/esm/common/array.d.ts +6 -0
  35. package/dist/esm/common/array.d.ts.map +1 -0
  36. package/dist/esm/common/array.js +30 -0
  37. package/dist/esm/common/array.js.map +1 -0
  38. package/dist/esm/index.d.ts +2 -0
  39. package/dist/esm/index.d.ts.map +1 -1
  40. package/dist/esm/index.js +2 -0
  41. package/dist/esm/index.js.map +1 -1
  42. package/dist/esm/shape-utils.d.ts +0 -1
  43. package/dist/esm/shape-utils.d.ts.map +1 -1
  44. package/dist/esm/shape-utils.js +1 -38
  45. package/dist/esm/shape-utils.js.map +1 -1
  46. package/dist/esm/shape.d.ts +9 -2
  47. package/dist/esm/shape.d.ts.map +1 -1
  48. package/dist/esm/shape.js +27 -2
  49. package/dist/esm/shape.js.map +1 -1
  50. package/dist/esm/simplify.d.ts +3 -0
  51. package/dist/esm/simplify.d.ts.map +1 -0
  52. package/dist/esm/simplify.js +55 -0
  53. package/dist/esm/simplify.js.map +1 -0
  54. package/dist/esm/strip.d.ts +3 -0
  55. package/dist/esm/strip.d.ts.map +1 -0
  56. package/dist/esm/strip.js +30 -0
  57. package/dist/esm/strip.js.map +1 -0
  58. package/dist/esm/translations/postgres.d.ts.map +1 -1
  59. package/dist/esm/translations/postgres.js +15 -6
  60. package/dist/esm/translations/postgres.js.map +1 -1
  61. package/dist/esm/translations/typescript.d.ts.map +1 -1
  62. package/dist/esm/translations/typescript.js +2 -0
  63. package/dist/esm/translations/typescript.js.map +1 -1
  64. package/dist/esm/validation.d.ts.map +1 -1
  65. package/dist/esm/validation.js +10 -0
  66. package/dist/esm/validation.js.map +1 -1
  67. package/package.json +1 -1
  68. package/src/common/array.ts +28 -0
  69. package/src/index.ts +2 -0
  70. package/src/shape-utils.ts +0 -42
  71. package/src/shape.ts +38 -2
  72. package/src/simplify.ts +64 -0
  73. package/src/strip.ts +27 -0
  74. package/src/translations/postgres.test.ts +24 -0
  75. package/src/translations/postgres.ts +21 -5
  76. package/src/translations/typescript.ts +2 -0
  77. package/src/validation.ts +8 -0
@@ -131,6 +131,8 @@ const ts = (shape, ctx) => {
131
131
  return `[${shape.tup.map((x) => ts(x, incDepth(ctx))).join(", ")}]`;
132
132
  case "union":
133
133
  return maybeTypeAlias(shape, ctx, Array.from(new Set(shape.ofs.map((x) => ts(x, incDepth(ctx))))).join(" | "));
134
+ case "record":
135
+ return `Record<string, ${ts(shape.value, incDepth(ctx))}>`;
134
136
  case "mapping": {
135
137
  const parts = [];
136
138
  const members = [];
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../src/translations/typescript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../src/translations/typescript.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,MAAM,SAAS,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GACxB;IACE,EAAE,EAAE,IAAI,CAAC;CACV,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB,CAAC;AAkBN,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,gBAAgB,CAqJnE;AAED,wBAAgB,EAAE,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAG3E;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,CAAC,CAAC;CACV,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB,CAAC;AAwEN,wBAAgB,KAAK,CAAC,CAAC,SAAS,KAAK,EACnC,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,CAAC,GACH,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAK/B"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,MAAM,SAAS,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GACxB;IACE,EAAE,EAAE,IAAI,CAAC;CACV,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB,CAAC;AAkBN,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,gBAAgB,CA6JnE;AAED,wBAAgB,EAAE,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAG3E;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,CAAC,CAAC;CACV,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB,CAAC;AAwEN,wBAAgB,KAAK,CAAC,CAAC,SAAS,KAAK,EACnC,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,CAAC,GACH,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAK/B"}
@@ -111,6 +111,16 @@ function validate(x, shape) {
111
111
  }
112
112
  return ok();
113
113
  }
114
+ case "record": {
115
+ if (!(0, common_1.isPlainObject)(x))
116
+ return err("expected a plain object", path);
117
+ for (const [k, v] of Object.entries(x)) {
118
+ const result = check(v, shape.value, [...path, k]);
119
+ if (!result.ok)
120
+ return result;
121
+ }
122
+ return ok();
123
+ }
114
124
  case "ref":
115
125
  return err(`cannot validate ref`, path);
116
126
  case "tuple": {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shapedef",
3
- "version": "1.0.27",
3
+ "version": "1.0.29",
4
4
  "description": "",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "types": "./dist/cjs/index.d.ts",
@@ -0,0 +1,28 @@
1
+ export const range = (n: number): Array<number> =>
2
+ n <= 0 ? [] : Array.from(Array(Math.floor(n)).keys());
3
+
4
+ export const enumerate = <T>(arr: T[]): Array<[number, T]> => {
5
+ return arr.map((v, i) => [i, v]);
6
+ };
7
+
8
+ export const zipMin = <A, B>(a: A[], b: B[]): Array<[A, B]> => {
9
+ const length = Math.min(a.length, b.length);
10
+ return range(length).map((i) => [a[i]!, b[i]!]);
11
+ };
12
+
13
+ export const unique = <T>(arr: T[]): T[] => {
14
+ return Array.from(new Set<T>(arr));
15
+ };
16
+
17
+ export const uniqueBy = <T, KV = string>(
18
+ arr: T[],
19
+ key: (item: T) => KV,
20
+ ): T[] => {
21
+ const lookup = new Set();
22
+ return arr.filter((x) => {
23
+ const id = key(x);
24
+ if (lookup.has(id)) return false;
25
+ lookup.add(id);
26
+ return true;
27
+ });
28
+ };
package/src/index.ts CHANGED
@@ -5,3 +5,5 @@ export * from "./inputs";
5
5
  export * from "./translations";
6
6
  export * from "./validation";
7
7
  export * from "./turing";
8
+ export * from "./simplify";
9
+ export * from "./strip";
@@ -1,50 +1,8 @@
1
- import { TupleOf } from "./common";
2
1
  import { Shape, ShapeRef, shapes } from "./shape";
3
2
 
4
3
  export const shapeCompare = (a: Shape, b: Shape): boolean =>
5
4
  JSON.stringify(a) === JSON.stringify(b);
6
5
 
7
- export const simplifyShape = (shape: Shape): Shape => {
8
- switch (shape.type) {
9
- case "union": {
10
- const lookup = new Map<string, number>(
11
- shape.ofs.map((s, i) => [JSON.stringify(s), i]),
12
- );
13
- if (lookup.size === 1)
14
- return {
15
- ...shape,
16
- ofs: [simplifyShape(shape.ofs[0]!)],
17
- };
18
- return {
19
- ...shape,
20
- ofs: [...shape.ofs.map((x) => simplifyShape(x))],
21
- };
22
- }
23
- case "array": {
24
- return {
25
- ...shape,
26
- item: simplifyShape(shape.item),
27
- };
28
- }
29
- case "tuple": {
30
- return {
31
- ...shape,
32
- tup: [...shape.tup.map((x) => simplifyShape(x))] as TupleOf<Shape>,
33
- };
34
- }
35
- case "mapping": {
36
- return {
37
- ...shape,
38
- rec: Object.fromEntries(
39
- Object.entries(shape.rec).map(([k, v]) => [k, simplifyShape(v)]),
40
- ),
41
- };
42
- }
43
- default:
44
- return shape;
45
- }
46
- };
47
-
48
6
  export const getShapeDeps = (shape: Shape): ShapeRef[] => {
49
7
  const deps: Map<string, ShapeRef> = new Map();
50
8
 
package/src/shape.ts CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  import { Phantom, PhantomIgnore } from "./phantom";
10
10
  import { is } from "./validation";
11
11
 
12
- export const ShapeBrandSymbol = Symbol("Shape");
12
+ export const ShapeBrandSymbol = "Shape" as const;
13
13
  export type ShapeBrandSymbol = typeof ShapeBrandSymbol;
14
14
 
15
15
  export type ShapeAnnotation = {
@@ -178,6 +178,13 @@ export interface ShapeMapping<
178
178
  };
179
179
  }
180
180
 
181
+ export interface ShapeRecord<
182
+ Value extends Shape = Shape,
183
+ > extends ShapeBase<"record"> {
184
+ value: Value;
185
+ __phantom: { out: Record<string, OutputOfShape<Value>> };
186
+ }
187
+
181
188
  export interface ShapeVector<
182
189
  Dims extends number = number,
183
190
  > extends ShapeWithOutput<"vector", number[]> {
@@ -208,6 +215,7 @@ export type Shape =
208
215
  | ShapeRef
209
216
  | ShapeArray
210
217
  | ShapeMapping
218
+ | ShapeRecord
211
219
  | ShapeTuple
212
220
  | ShapeVector
213
221
  | ShapeUnion;
@@ -422,6 +430,17 @@ export namespace shapes {
422
430
  };
423
431
  }
424
432
 
433
+ export function record<Value extends Shape>(
434
+ value: Value,
435
+ ): ShapeRecord<Value> {
436
+ return {
437
+ type: "record",
438
+ value: value,
439
+ anno: {},
440
+ ...createPhantom(),
441
+ };
442
+ }
443
+
425
444
  export function vector<Dims extends number>(dims: Dims): ShapeVector<Dims> {
426
445
  return {
427
446
  type: "vector",
@@ -465,7 +484,8 @@ export namespace shapes {
465
484
  if (Array.isArray(x)) {
466
485
  if (x.length <= 0) return shapes.array(shapes.unknown());
467
486
  if (x.length === 1) return shapes.array(auto(x[0], options));
468
- const types = new Set(x.map((v) => typeof v));
487
+ const types = new Set(x.map((v) => JSON.stringify(auto(v, options))));
488
+
469
489
  return shapes.array(
470
490
  types.size === 1 ?
471
491
  auto(x[0], options)
@@ -592,6 +612,22 @@ export namespace shapes {
592
612
  };
593
613
  }),
594
614
  );
615
+ case "record": {
616
+ let rec: Record<string, unknown> = {};
617
+ if (isPlainObject(x)) {
618
+ rec = x;
619
+ } else if (typeof x === "string") {
620
+ const trimmed = x.trim();
621
+ if (trimmed.startsWith("{") && trimmed.endsWith("}")) {
622
+ try {
623
+ rec = JSON.parse(x) as Record<string, unknown>;
624
+ } catch {}
625
+ }
626
+ }
627
+ return Object.fromEntries(
628
+ Object.entries(rec).map(([k, v]) => [k, convert(v, shape.value)]),
629
+ );
630
+ }
595
631
  }
596
632
  };
597
633
 
@@ -0,0 +1,64 @@
1
+ import { annotate, Shape, ShapeMapping, shapes } from "./shape";
2
+ import { unique, uniqueBy } from "./common/array";
3
+ import { stripShape } from "./strip";
4
+
5
+ const idOf = (s: Shape): string => JSON.stringify(stripShape(s));
6
+
7
+ const mergeMappings = (ms: ShapeMapping[]): Shape => {
8
+ const keys = unique(ms.flatMap((m) => Object.keys(m.rec)));
9
+ const rec = Object.fromEntries(
10
+ keys.map((k) => {
11
+ const variants = ms.filter((m) => k in m.rec).map((m) => m.rec[k]!);
12
+ const merged = mergeAll(variants);
13
+ return [
14
+ k,
15
+ variants.length < ms.length ? annotate.optional(merged) : merged,
16
+ ];
17
+ }),
18
+ );
19
+ return shapes.mapping(rec);
20
+ };
21
+
22
+ const mergeAll = (items: Shape[]): Shape => {
23
+ const flat = items
24
+ .flatMap((it) => (it.type === "union" ? it.ofs : [it]))
25
+ .map(simp);
26
+ const deduped = uniqueBy(flat, idOf);
27
+ const survivors =
28
+ deduped.length > 1 ? deduped.filter((s) => s.type !== "unknown") : deduped;
29
+
30
+ if (survivors.length === 0) return shapes.unknown();
31
+ if (survivors.length === 1) return survivors[0]!;
32
+
33
+ const mappings = survivors.filter(
34
+ (s): s is ShapeMapping => s.type === "mapping",
35
+ );
36
+ const others = survivors.filter((s) => s.type !== "mapping");
37
+ if (mappings.length < 2) return shapes.union(...survivors);
38
+ const merged = mergeMappings(mappings);
39
+ return others.length === 0 ? merged : shapes.union(merged, ...others);
40
+ };
41
+
42
+ const isIdentifier = (k: string): boolean => /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(k);
43
+
44
+ const simp = (s: Shape): Shape => {
45
+ if (s.type === "array")
46
+ return annotate.by(shapes.array(simp(s.item)), s.anno);
47
+ if (s.type === "union") return mergeAll(s.ofs);
48
+ if (s.type === "record")
49
+ return annotate.by(shapes.record(simp(s.value)), s.anno);
50
+ if (s.type === "mapping") {
51
+ const keys = Object.keys(s.rec);
52
+ if (keys.length >= 2 && !keys.every(isIdentifier))
53
+ return annotate.by(shapes.record(mergeAll(Object.values(s.rec))), s.anno);
54
+ return annotate.by(
55
+ shapes.mapping(
56
+ Object.fromEntries(Object.entries(s.rec).map(([k, v]) => [k, simp(v)])),
57
+ ),
58
+ s.anno,
59
+ );
60
+ }
61
+ return s;
62
+ };
63
+
64
+ export const simplify = (s: Shape): Shape => simp(s);
package/src/strip.ts ADDED
@@ -0,0 +1,27 @@
1
+ import { isPlainObject } from "./common";
2
+ import { isShape, Shape, ShapeBrandSymbol } from "./shape";
3
+
4
+ export const stripShape = (s: unknown | Shape): unknown => {
5
+ if (typeof s === "undefined" || s === null) return s;
6
+ if (typeof s === "string" || typeof s === "number" || typeof s === "boolean")
7
+ return s;
8
+
9
+ if (Array.isArray(s)) return s.map((v) => stripShape(v));
10
+
11
+ if (isPlainObject(s) || isShape(s)) {
12
+ const obj: Record<string, unknown> = JSON.parse(JSON.stringify(s));
13
+ const out: Record<string, unknown> = {};
14
+
15
+ for (const [k, v] of Object.entries(obj)) {
16
+ if (k === "__phantom" || k === ShapeBrandSymbol) continue;
17
+ if (k === "anno" && isPlainObject(v)) {
18
+ if (Object.keys(v).length <= 0) continue;
19
+ }
20
+ out[k] = stripShape(v);
21
+ }
22
+
23
+ return out;
24
+ }
25
+
26
+ return s;
27
+ };
@@ -249,6 +249,30 @@ describe("postgres", (it) => {
249
249
  );
250
250
  });
251
251
 
252
+ it("generates composite PRIMARY KEY constraint for multiple primary keys", () => {
253
+ expect(
254
+ postgres(
255
+ annotate.named(
256
+ shapes.mapping({
257
+ tenant_id: annotate.primary(shapes.int()),
258
+ user_id: annotate.primary(shapes.int()),
259
+ name: shapes.str(),
260
+ }),
261
+ "TenantUser",
262
+ ),
263
+ ),
264
+ ).toBe(
265
+ [
266
+ `CREATE TABLE IF NOT EXISTS "TenantUser" (`,
267
+ ` "tenant_id" INTEGER,`,
268
+ ` "user_id" INTEGER,`,
269
+ ` "name" TEXT NOT NULL,`,
270
+ ` PRIMARY KEY ("tenant_id", "user_id")`,
271
+ `)`,
272
+ ].join("\n"),
273
+ );
274
+ });
275
+
252
276
  it("returns column type for unnamed mappings", () => {
253
277
  expect(postgres(shapes.mapping({ x: shapes.int() }))).toBe("JSONB");
254
278
  });
@@ -51,6 +51,8 @@ const pgType = (shape: Shape): string => {
51
51
  return `vector(${shape.dims})`;
52
52
  case "mapping":
53
53
  return "JSONB";
54
+ case "record":
55
+ return "JSONB";
54
56
  case "bytes":
55
57
  return "BYTEA";
56
58
  }
@@ -61,10 +63,13 @@ const pgColumnDef = (
61
63
  shape: Shape,
62
64
  options: PostgresOptions,
63
65
  overrideType?: string,
66
+ skipPrimaryKey?: boolean,
64
67
  ): string => {
65
68
  const parts: string[] = [`"${colName}"`, overrideType ?? pgType(shape)];
66
69
  if (shape.anno.primary) {
67
- parts.push("PRIMARY KEY");
70
+ if (!skipPrimaryKey) {
71
+ parts.push("PRIMARY KEY");
72
+ }
68
73
  } else if (!shape.anno.optional) {
69
74
  parts.push("NOT NULL");
70
75
  }
@@ -102,10 +107,21 @@ export const postgres = (shape: Shape, options: PostgresOptions = {}) => {
102
107
  }
103
108
  }
104
109
 
105
- const cols = Object.entries(shape.rec)
106
- .map(([k, v]) => ` ${pgColumnDef(k, v, options, enumTypeNames.get(k))}`)
107
- .join(",\n");
108
- const tableStatement = `CREATE TABLE IF NOT EXISTS "${tableName}" (\n${cols}\n)`;
110
+ const primaryKeys = Object.entries(shape.rec)
111
+ .filter(([, v]) => v.anno.primary)
112
+ .map(([k]) => k);
113
+ const multiPk = primaryKeys.length > 1;
114
+
115
+ const colLines = Object.entries(shape.rec).map(
116
+ ([k, v]) =>
117
+ ` ${pgColumnDef(k, v, options, enumTypeNames.get(k), multiPk)}`,
118
+ );
119
+ if (multiPk) {
120
+ colLines.push(
121
+ ` PRIMARY KEY (${primaryKeys.map((k) => `"${k}"`).join(", ")})`,
122
+ );
123
+ }
124
+ const tableStatement = `CREATE TABLE IF NOT EXISTS "${tableName}" (\n${colLines.join(",\n")}\n)`;
109
125
 
110
126
  return enumStatements.length > 0 ?
111
127
  [...enumStatements, tableStatement].join(";\n")
@@ -169,6 +169,8 @@ const ts = (shape: Shape, ctx: Context): string => {
169
169
  " | ",
170
170
  ),
171
171
  );
172
+ case "record":
173
+ return `Record<string, ${ts(shape.value, incDepth(ctx))}>`;
172
174
  case "mapping": {
173
175
  const parts: string[] = [];
174
176
  const members: string[] = [];
package/src/validation.ts CHANGED
@@ -133,6 +133,14 @@ export function validate(x: unknown, shape: Shape): ValidationResult {
133
133
  }
134
134
  return ok();
135
135
  }
136
+ case "record": {
137
+ if (!isPlainObject(x)) return err("expected a plain object", path);
138
+ for (const [k, v] of Object.entries(x)) {
139
+ const result = check(v, shape.value, [...path, k]);
140
+ if (!result.ok) return result;
141
+ }
142
+ return ok();
143
+ }
136
144
  case "ref":
137
145
  return err(`cannot validate ref`, path);
138
146
  case "tuple": {