shapedef 1.0.5 → 1.0.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"shape-utils.d.ts","sourceRoot":"","sources":["../../src/shape-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,YAAY,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OACT,CAAC;AAE1C,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,KAAG,KAuC5C,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,QAAQ,EAyCnD,CAAC"}
1
+ {"version":3,"file":"shape-utils.d.ts","sourceRoot":"","sources":["../../src/shape-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAU,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,YAAY,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OACT,CAAC;AAE1C,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,KAAG,KAuC5C,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,QAAQ,EA8CnD,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getShapeDeps = exports.simplifyShape = exports.shapeCompare = void 0;
4
+ const shape_1 = require("./shape");
4
5
  const shapeCompare = (a, b) => JSON.stringify(a) === JSON.stringify(b);
5
6
  exports.shapeCompare = shapeCompare;
6
7
  const simplifyShape = (shape) => {
@@ -42,6 +43,10 @@ const simplifyShape = (shape) => {
42
43
  exports.simplifyShape = simplifyShape;
43
44
  const getShapeDeps = (shape) => {
44
45
  const deps = new Map();
46
+ if (shape.anno.foreign?.shapeName) {
47
+ const ref = shape_1.shapes.ref(shape.anno.foreign.shapeName);
48
+ deps.set(ref.name, ref);
49
+ }
45
50
  switch (shape.type) {
46
51
  case "ref":
47
52
  {
@@ -1 +1 @@
1
- {"version":3,"file":"shape-utils.js","sourceRoot":"","sources":["../../src/shape-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shape-utils.js","sourceRoot":"","sources":["../../src/shape-utils.ts"],"names":[],"mappings":";;;AACA,mCAAkD;AAE3C,MAAM,YAAY,GAAG,CAAC,CAAQ,EAAE,CAAQ,EAAW,EAAE,CAC1D,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAD7B,QAAA,YAAY,gBACiB;AAEnC,MAAM,aAAa,GAAG,CAAC,KAAY,EAAS,EAAE;IACnD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAChD,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;gBACnB,OAAO;oBACL,GAAG,KAAK;oBACR,GAAG,EAAE,CAAC,IAAA,qBAAa,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;iBACpC,CAAC;YACJ,OAAO;gBACL,GAAG,KAAK;gBACR,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,CAAC,CAAC,CAAC,CAAC;aACjD,CAAC;QACJ,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO;gBACL,GAAG,KAAK;gBACR,IAAI,EAAE,IAAA,qBAAa,EAAC,KAAK,CAAC,IAAI,CAAC;aAChC,CAAC;QACJ,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO;gBACL,GAAG,KAAK;gBACR,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,CAAC,CAAC,CAAC,CAAmB;aACnE,CAAC;QACJ,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,OAAO;gBACL,GAAG,KAAK;gBACR,GAAG,EAAE,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAA,qBAAa,EAAC,CAAC,CAAC,CAAC,CAAC,CACjE;aACF,CAAC;QACJ,CAAC;QACD;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC,CAAC;AAvCW,QAAA,aAAa,iBAuCxB;AAEK,MAAM,YAAY,GAAG,CAAC,KAAY,EAAc,EAAE;IACvD,MAAM,IAAI,GAA0B,IAAI,GAAG,EAAE,CAAC;IAE9C,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,cAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,KAAK;YACR,CAAC;gBACC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC5B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACf,IAAA,oBAAY,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;YACD,MAAM;QACR,KAAK,SAAS;YACZ,CAAC;gBACC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7C,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YACD,MAAM;QACR,KAAK,OAAO;YACV,CAAC;gBACC,IAAA,oBAAY,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM;QACR,KAAK,OAAO;YACV,CAAC;gBACC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;oBAC9B,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YACD,MAAM;QACR,KAAK,OAAO;YACV,CAAC;gBACC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;oBAC9B,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YACD,MAAM;IACV,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACnC,CAAC,CAAC;AA9CW,QAAA,YAAY,gBA8CvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"shape-utils.d.ts","sourceRoot":"","sources":["../../src/shape-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,YAAY,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OACT,CAAC;AAE1C,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,KAAG,KAuC5C,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,QAAQ,EAyCnD,CAAC"}
1
+ {"version":3,"file":"shape-utils.d.ts","sourceRoot":"","sources":["../../src/shape-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAU,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,YAAY,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,OACT,CAAC;AAE1C,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,KAAG,KAuC5C,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,KAAK,KAAG,QAAQ,EA8CnD,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getShapeDeps = exports.simplifyShape = exports.shapeCompare = void 0;
4
+ const shape_1 = require("./shape");
4
5
  const shapeCompare = (a, b) => JSON.stringify(a) === JSON.stringify(b);
5
6
  exports.shapeCompare = shapeCompare;
6
7
  const simplifyShape = (shape) => {
@@ -42,6 +43,10 @@ const simplifyShape = (shape) => {
42
43
  exports.simplifyShape = simplifyShape;
43
44
  const getShapeDeps = (shape) => {
44
45
  const deps = new Map();
46
+ if (shape.anno.foreign?.shapeName) {
47
+ const ref = shape_1.shapes.ref(shape.anno.foreign.shapeName);
48
+ deps.set(ref.name, ref);
49
+ }
45
50
  switch (shape.type) {
46
51
  case "ref":
47
52
  {
@@ -1 +1 @@
1
- {"version":3,"file":"shape-utils.js","sourceRoot":"","sources":["../../src/shape-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shape-utils.js","sourceRoot":"","sources":["../../src/shape-utils.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.5",
3
+ "version": "1.0.6",
4
4
  "description": "",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "types": "./dist/cjs/index.d.ts",
@@ -0,0 +1,90 @@
1
+ import { describe, expect } from "vitest";
2
+ import { annotate, shapes } from "./shape";
3
+ import { getShapeDeps } from "./shape-utils";
4
+
5
+ const names = (deps: ReturnType<typeof getShapeDeps>) =>
6
+ deps.map((d) => d.name);
7
+
8
+ describe("getShapeDeps", (it) => {
9
+ it("returns no deps for leaf shapes", () => {
10
+ expect(getShapeDeps(shapes.str())).toEqual([]);
11
+ expect(getShapeDeps(shapes.int())).toEqual([]);
12
+ expect(getShapeDeps(shapes.bool())).toEqual([]);
13
+ expect(getShapeDeps(shapes.nil())).toEqual([]);
14
+ expect(getShapeDeps(shapes.unknown())).toEqual([]);
15
+ expect(getShapeDeps(shapes.literalStr("x"))).toEqual([]);
16
+ expect(getShapeDeps(shapes.literalInt(1))).toEqual([]);
17
+ expect(getShapeDeps(shapes.vector(3))).toEqual([]);
18
+ });
19
+
20
+ it("returns the ref itself as a dep", () => {
21
+ expect(names(getShapeDeps(shapes.ref("Foo")))).toEqual(["Foo"]);
22
+ });
23
+
24
+ it("includes refs inside a ref hint", () => {
25
+ const shape = shapes.ref("Foo", shapes.mapping({ id: shapes.ref("Bar") }));
26
+ expect(names(getShapeDeps(shape as any))).toEqual(["Foo", "Bar"]);
27
+ });
28
+
29
+ it("recurses into array item", () => {
30
+ expect(names(getShapeDeps(shapes.array(shapes.ref("Foo"))))).toEqual([
31
+ "Foo",
32
+ ]);
33
+ });
34
+
35
+ it("recurses into mapping fields", () => {
36
+ const shape = shapes.mapping({
37
+ a: shapes.ref("Foo"),
38
+ b: shapes.ref("Bar"),
39
+ c: shapes.str(),
40
+ });
41
+ expect(names(getShapeDeps(shape))).toEqual(["Foo", "Bar"]);
42
+ });
43
+
44
+ it("recurses into tuple items", () => {
45
+ const shape = shapes.tuple(
46
+ shapes.ref("Foo"),
47
+ shapes.str(),
48
+ shapes.ref("Bar"),
49
+ );
50
+ expect(names(getShapeDeps(shape))).toEqual(["Foo", "Bar"]);
51
+ });
52
+
53
+ it("recurses into union members", () => {
54
+ const shape = shapes.union(
55
+ shapes.ref("Foo"),
56
+ shapes.str(),
57
+ shapes.ref("Bar"),
58
+ );
59
+ expect(names(getShapeDeps(shape))).toEqual(["Foo", "Bar"]);
60
+ });
61
+
62
+ it("deduplicates refs with the same name", () => {
63
+ const shape = shapes.mapping({
64
+ a: shapes.ref("Foo"),
65
+ b: shapes.ref("Foo"),
66
+ });
67
+ expect(names(getShapeDeps(shape))).toEqual(["Foo"]);
68
+ });
69
+
70
+ it("collects anno.foreign as a dep", () => {
71
+ const shape = annotate.foreign(shapes.int(), "User", "id");
72
+ expect(names(getShapeDeps(shape))).toEqual(["User"]);
73
+ });
74
+
75
+ it("collects anno.foreign from nested mapping fields", () => {
76
+ const shape = shapes.mapping({
77
+ userId: annotate.foreign(shapes.int(), "User", "id"),
78
+ postId: annotate.foreign(shapes.int(), "Post", "id"),
79
+ });
80
+ expect(names(getShapeDeps(shape))).toEqual(["User", "Post"]);
81
+ });
82
+
83
+ it("combines ref and anno.foreign deps", () => {
84
+ const shape = shapes.mapping({
85
+ type: shapes.ref("Kind"),
86
+ ownerId: annotate.foreign(shapes.int(), "Owner", "id"),
87
+ });
88
+ expect(names(getShapeDeps(shape))).toEqual(["Kind", "Owner"]);
89
+ });
90
+ });
@@ -1,5 +1,5 @@
1
1
  import { TupleOf } from "./common";
2
- import { Shape, ShapeRef } from "./shape";
2
+ import { Shape, ShapeRef, shapes } from "./shape";
3
3
 
4
4
  export const shapeCompare = (a: Shape, b: Shape): boolean =>
5
5
  JSON.stringify(a) === JSON.stringify(b);
@@ -48,6 +48,11 @@ export const simplifyShape = (shape: Shape): Shape => {
48
48
  export const getShapeDeps = (shape: Shape): ShapeRef[] => {
49
49
  const deps: Map<string, ShapeRef> = new Map();
50
50
 
51
+ if (shape.anno.foreign?.shapeName) {
52
+ const ref = shapes.ref(shape.anno.foreign.shapeName);
53
+ deps.set(ref.name, ref);
54
+ }
55
+
51
56
  switch (shape.type) {
52
57
  case "ref":
53
58
  {