@typespec/compiler 0.63.0-dev.6 → 0.63.0-dev.8

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 (69) hide show
  1. package/dist/manifest.js +2 -2
  2. package/dist/src/core/messages.d.ts +20 -2
  3. package/dist/src/core/messages.d.ts.map +1 -1
  4. package/dist/src/core/messages.js +6 -0
  5. package/dist/src/core/messages.js.map +1 -1
  6. package/dist/src/core/program.js +1 -1
  7. package/dist/src/core/program.js.map +1 -1
  8. package/dist/src/experimental/mutators.d.ts +184 -47
  9. package/dist/src/experimental/mutators.d.ts.map +1 -1
  10. package/dist/src/experimental/mutators.js +69 -11
  11. package/dist/src/experimental/mutators.js.map +1 -1
  12. package/dist/src/experimental/realm.d.ts +70 -3
  13. package/dist/src/experimental/realm.d.ts.map +1 -1
  14. package/dist/src/experimental/realm.js +84 -14
  15. package/dist/src/experimental/realm.js.map +1 -1
  16. package/dist/src/experimental/typekit/define-kit.d.ts +17 -17
  17. package/dist/src/experimental/typekit/define-kit.d.ts.map +1 -1
  18. package/dist/src/experimental/typekit/define-kit.js +15 -38
  19. package/dist/src/experimental/typekit/define-kit.js.map +1 -1
  20. package/dist/src/experimental/typekit/index.d.ts +79 -0
  21. package/dist/src/experimental/typekit/index.d.ts.map +1 -1
  22. package/dist/src/experimental/typekit/index.js +127 -0
  23. package/dist/src/experimental/typekit/index.js.map +1 -1
  24. package/dist/src/experimental/typekit/kits/index.d.ts +0 -1
  25. package/dist/src/experimental/typekit/kits/index.d.ts.map +1 -1
  26. package/dist/src/experimental/typekit/kits/index.js +0 -1
  27. package/dist/src/experimental/typekit/kits/index.js.map +1 -1
  28. package/dist/src/experimental/typekit/kits/literal.d.ts +2 -1
  29. package/dist/src/experimental/typekit/kits/literal.d.ts.map +1 -1
  30. package/dist/src/experimental/typekit/kits/literal.js.map +1 -1
  31. package/dist/src/experimental/typekit/kits/model-property.d.ts +2 -1
  32. package/dist/src/experimental/typekit/kits/model-property.d.ts.map +1 -1
  33. package/dist/src/experimental/typekit/kits/model-property.js.map +1 -1
  34. package/dist/src/experimental/typekit/kits/model.d.ts +2 -1
  35. package/dist/src/experimental/typekit/kits/model.d.ts.map +1 -1
  36. package/dist/src/experimental/typekit/kits/model.js +1 -1
  37. package/dist/src/experimental/typekit/kits/model.js.map +1 -1
  38. package/dist/src/experimental/typekit/kits/scalar.d.ts +2 -1
  39. package/dist/src/experimental/typekit/kits/scalar.d.ts.map +1 -1
  40. package/dist/src/experimental/typekit/kits/scalar.js.map +1 -1
  41. package/dist/src/experimental/typekit/kits/type.d.ts +1 -1
  42. package/dist/src/experimental/typekit/kits/type.d.ts.map +1 -1
  43. package/dist/src/experimental/typekit/kits/type.js +19 -13
  44. package/dist/src/experimental/typekit/kits/type.js.map +1 -1
  45. package/dist/src/experimental/typekit/kits/union-variant.d.ts +1 -1
  46. package/dist/src/experimental/typekit/kits/union-variant.d.ts.map +1 -1
  47. package/dist/src/experimental/typekit/kits/union-variant.js +1 -1
  48. package/dist/src/experimental/typekit/kits/union-variant.js.map +1 -1
  49. package/dist/src/experimental/typekit/kits/union.d.ts +1 -1
  50. package/dist/src/experimental/typekit/kits/union.d.ts.map +1 -1
  51. package/dist/src/experimental/typekit/kits/union.js +1 -1
  52. package/dist/src/experimental/typekit/kits/union.js.map +1 -1
  53. package/dist/src/experimental/typekit/utils.d.ts +28 -4
  54. package/dist/src/experimental/typekit/utils.d.ts.map +1 -1
  55. package/dist/src/experimental/typekit/utils.js +34 -23
  56. package/dist/src/experimental/typekit/utils.js.map +1 -1
  57. package/dist/src/lib/decorators.d.ts.map +1 -1
  58. package/dist/src/lib/decorators.js +9 -0
  59. package/dist/src/lib/decorators.js.map +1 -1
  60. package/dist/src/lib/visibility.js +5 -5
  61. package/dist/src/lib/visibility.js.map +1 -1
  62. package/dist/src/utils/misc.d.ts +1 -1
  63. package/dist/src/utils/misc.d.ts.map +1 -1
  64. package/dist/src/utils/misc.js.map +1 -1
  65. package/package.json +1 -1
  66. package/dist/src/experimental/typekit/kits/realm.d.ts +0 -24
  67. package/dist/src/experimental/typekit/kits/realm.d.ts.map +0 -1
  68. package/dist/src/experimental/typekit/kits/realm.js +0 -17
  69. package/dist/src/experimental/typekit/kits/realm.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mutators.d.ts","sourceRoot":"","sources":["../../../src/experimental/mutators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutators.d.ts","sourceRoot":"","sources":["../../../src/experimental/mutators.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,35 @@
1
1
  import { CustomKeyMap } from "../emitter-framework/custom-key-map.js";
2
2
  import { Realm } from "./realm.js";
3
3
  import { $ } from "./typekit/index.js";
4
- /** @experimental */
4
+ /**
5
+ * Flow control for mutators.
6
+ *
7
+ * When filtering types in a mutator, the filter function may return MutatorFlow flags to control how mutation should
8
+ * proceed.
9
+ *
10
+ * @see {@link MutatorFilterFn}
11
+ *
12
+ * @experimental
13
+ */
5
14
  export var MutatorFlow;
6
15
  (function (MutatorFlow) {
7
- MutatorFlow[MutatorFlow["MutateAndRecurse"] = 0] = "MutateAndRecurse";
16
+ /**
17
+ * Mutate the type and recur, further mutating the type's children. This is the default behavior.
18
+ */
19
+ MutatorFlow[MutatorFlow["MutateAndRecur"] = 0] = "MutateAndRecur";
20
+ /**
21
+ * If this flag is set, the type will not be mutated.
22
+ */
8
23
  MutatorFlow[MutatorFlow["DoNotMutate"] = 1] = "DoNotMutate";
9
- MutatorFlow[MutatorFlow["DoNotRecurse"] = 2] = "DoNotRecurse";
24
+ /**
25
+ * If this flag is set, the mutator will not proceed recursively into the children of the type.
26
+ */
27
+ MutatorFlow[MutatorFlow["DoNotRecur"] = 2] = "DoNotRecur";
10
28
  })(MutatorFlow || (MutatorFlow = {}));
11
29
  /**
12
30
  * Determines if a type is mutable.
31
+ *
32
+ * @experimental
13
33
  */
14
34
  export function isMutableType(type) {
15
35
  switch (type.kind) {
@@ -20,11 +40,15 @@ export function isMutableType(type) {
20
40
  case "FunctionParameter":
21
41
  case "Object":
22
42
  case "Projection":
43
+ case "Namespace":
23
44
  return false;
24
45
  default:
46
+ void type;
25
47
  return true;
26
48
  }
27
49
  }
50
+ // #endregion
51
+ // #region Mutator Application
28
52
  const typeId = CustomKeyMap.objectKeyer();
29
53
  const mutatorId = CustomKeyMap.objectKeyer();
30
54
  const seen = new CustomKeyMap(([type, mutators]) => {
@@ -34,16 +58,49 @@ const seen = new CustomKeyMap(([type, mutators]) => {
34
58
  return key;
35
59
  });
36
60
  /**
37
- * Mutate the type graph with some namespace mutation.
38
- * **Warning** this will most likely end up mutating the entire TypeGraph
39
- * as every type relate to namespace in some way or another
40
- * causing parent navigation which in turn would mutate everything in that namespace.
61
+ * Mutate the type graph, allowing namespaces to be mutated.
62
+ *
63
+ * **Warning**: This function will likely mutate the entire type graph. Most TypeSpec types relate to namespaces
64
+ * in some way (e.g. through namespace parent links, or the `namespace` property of a Model).
65
+ *
66
+ * @param program - The program in which the `type` occurs.
67
+ * @param mutators - An array of mutators to apply to the type graph rooted at `type`.
68
+ * @param type - The type to mutate.
69
+ *
70
+ * @returns an object containing the mutated `type` and a nullable `Realm` in which the mutated type resides.
71
+ *
72
+ * @see {@link mutateSubgraph}
73
+ *
41
74
  * @experimental
42
75
  */
43
76
  export function mutateSubgraphWithNamespace(program, mutators, type) {
44
77
  return mutateSubgraph(program, mutators, type);
45
78
  }
46
- /** @experimental */
79
+ /**
80
+ * Mutate the type graph.
81
+ *
82
+ * Mutators clone the input `type`, creating a new type instance that is mutated in place.
83
+ *
84
+ * The mutator returns the mutated type and optionally a `realm` in which the mutated clone resides.
85
+ *
86
+ * @see {@link Mutator}
87
+ * @see {@link Realm}
88
+ *
89
+ * **Warning**: Mutators _SHOULD NOT_ modify the source type. Modifications to the source type
90
+ * will be visible to other emitters or libraries that view the original source type, and will
91
+ * be sensitive to the order in which the mutator was applied. Only edit the `clone` type.
92
+ * Furthermore, mutators must take care not to modify elements of the source and clone types
93
+ * that are shared between the two types, such as the properties of any parent references
94
+ * or the `decorators` of the type without taking care to clone them first.
95
+ *
96
+ * @param program - The program in which the `type` occurs.
97
+ * @param mutators - An array of mutators to apply to the type graph rooted at `type`.
98
+ * @param type - The type to mutate.
99
+ *
100
+ * @returns an object containing the mutated `type` and a nullable `Realm` in which the mutated type resides.
101
+ *
102
+ * @experimental
103
+ */
47
104
  export function mutateSubgraph(program, mutators, type) {
48
105
  const realm = new Realm(program, "realm for mutation");
49
106
  const interstitialFunctions = [];
@@ -93,7 +150,7 @@ export function mutateSubgraph(program, mutators, type) {
93
150
  }
94
151
  else {
95
152
  mutate = (filterResult & MutatorFlow.DoNotMutate) === 0;
96
- recurse = (filterResult & MutatorFlow.DoNotRecurse) === 0;
153
+ recurse = (filterResult & MutatorFlow.DoNotRecur) === 0;
97
154
  }
98
155
  }
99
156
  else {
@@ -144,10 +201,10 @@ export function mutateSubgraph(program, mutators, type) {
144
201
  if (newMutators.size > 0) {
145
202
  visitSubgraph();
146
203
  }
147
- $.type.finishType(clone);
204
+ $(realm).type.finishType(clone);
148
205
  return clone;
149
206
  function initializeClone() {
150
- clone = $.type.clone(type);
207
+ clone = $(realm).type.clone(type);
151
208
  seen.set([type, activeMutators], clone);
152
209
  seen.set([type, mutatorsToApply], clone);
153
210
  }
@@ -197,4 +254,5 @@ export function mutateSubgraph(program, mutators, type) {
197
254
  }
198
255
  }
199
256
  }
257
+ // #endregion
200
258
  //# sourceMappingURL=mutators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mutators.js","sourceRoot":"","sources":["../../../src/experimental/mutators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutators.js","sourceRoot":"","sources":["../../../src/experimental/mutators.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAuJvC;;;;;;;;;GASG;AACH,MAAM,CAAN,IAAY,WAaX;AAbD,WAAY,WAAW;IACrB;;OAEG;IACH,iEAAkB,CAAA;IAClB;;OAEG;IACH,2DAAoB,CAAA;IACpB;;OAEG;IACH,yDAAmB,CAAA;AACrB,CAAC,EAbW,WAAW,KAAX,WAAW,QAatB;AAqBD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAU;IACtC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,mBAAmB,CAAC;QACzB,KAAK,WAAW,CAAC;QACjB,KAAK,UAAU,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,mBAAmB,CAAC;QACzB,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,KAAK,CAAC;QACf;YACE,KAAM,IAA2B,CAAC;YAClC,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AASD,aAAa;AAEb,8BAA8B;AAE9B,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;AAC1C,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;AAC7C,MAAM,IAAI,GAAG,IAAI,YAAY,CAAgD,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE;IAChG,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;SACzD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC/B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACf,OAAO,GAAG,CAAC;AACb,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAgB,EAChB,QAAgC,EAChC,IAAO;IAEP,OAAO,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAW,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAgB,EAChB,QAAmB,EACnB,IAAO;IAEP,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IACvD,MAAM,qBAAqB,GAAmB,EAAE,CAAC;IAEjD,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE9D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,SAAS,oBAAoB,CAC3B,IAAO,EACP,cAA4B;QAE5B,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE,CAAC;YACb,0BAA0B,EAAE,CAAC;YAC7B,OAAO,QAAa,CAAC;QACvB,CAAC;QAED,IAAI,KAAK,GAAuB,IAAI,CAAC;QACrC,MAAM,mBAAmB,GAInB,EAAE,CAAC;QAET,mCAAmC;QACnC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAiC,CAAC;YAClE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,SAAS;YACX,CAAC;YAED,IAAI,UAAU,GAAwB,IAAI,CAAC;YAC3C,IAAI,SAAS,GAA+B,IAAI,CAAC;YAEjD,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,UAAU,GAAG,MAAM,CAAC;gBACpB,MAAM,GAAG,IAAI,CAAC;gBACd,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;gBACvD,SAAS,GAAG,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;gBAExD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;oBACzD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;wBAC1B,MAAM,GAAG,IAAI,CAAC;wBACd,OAAO,GAAG,IAAI,CAAC;oBACjB,CAAC;yBAAM,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;wBAClC,MAAM,GAAG,KAAK,CAAC;wBACf,OAAO,GAAG,IAAI,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBACxD,OAAO,GAAG,CAAC,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,IAAI,CAAC;oBACd,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,MAAM,eAAe,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAElE,mDAAmD;QACnD,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACzB,qFAAqF;gBACrF,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC5C,aAAa,EAAE,CAAC;gBAChB,qBAAqB,CAAC,GAAG,EAAE,CAAC;gBAC5B,OAAO,KAAK,IAAI,IAAI,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,6DAA6D;gBAC7D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,4FAA4F;QAC5F,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,0BAA0B,EAAE,CAAC;YAC7B,OAAO,QAAa,CAAC;QACvB,CAAC;QAED,2BAA2B;QAC3B,0BAA0B,EAAE,CAAC;QAC7B,eAAe,EAAE,CAAC;QAElB,KAAK,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,mBAAmB,EAAE,CAAC;YAC5D,qDAAqD;YACrD,MAAM,MAAM,GAAgB,CAAC,UAAW,IAAI,SAAU,CAAC,CACrD,IAAI,EACJ,KAAa,EACb,OAAO,EACP,KAAK,CACC,CAAC;YAET,IAAI,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACtC,KAAK,GAAG,MAAM,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,KAAK,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACzB,aAAa,EAAE,CAAC;QAClB,CAAC;QAED,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAM,CAAC,CAAC;QAEjC,OAAO,KAAM,CAAC;QAEd,SAAS,eAAe;YACtB,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,SAAS,0BAA0B;YACjC,KAAK,MAAM,YAAY,IAAI,qBAAqB,EAAE,CAAC;gBACjD,YAAY,EAAE,CAAC;YACjB,CAAC;YAED,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,CAAC;QAED,SAAS,aAAa;YACpB,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC;YAC3B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,OAAO;oBACV,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;wBAC5C,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;wBAExD,IAAI,KAAK,EAAE,CAAC;4BACT,KAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;wBACpD,CAAC;oBACH,CAAC;oBACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACjB,MAAM,GAAG,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAY,EAAE,WAAW,CAAC,CAAC;wBACzE,IAAI,KAAK,EAAE,CAAC;4BACT,KAAa,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;wBACrC,CAAC;oBACH,CAAC;oBACD,MAAM;gBACR,KAAK,eAAe;oBAClB,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAmB,EAAE,WAAW,CAAC,CAAC;oBAC5E,IAAI,KAAK,EAAE,CAAC;wBACT,KAAa,CAAC,IAAI,GAAG,OAAO,CAAC;oBAChC,CAAC;oBAED,MAAM;gBACR,KAAK,WAAW;oBACd,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;oBACrE,IAAI,KAAK,EAAE,CAAC;wBACT,KAAa,CAAC,UAAU,GAAG,SAAS,CAAC;oBACxC,CAAC;oBAED,MAAM;gBACR,KAAK,QAAQ;oBACX,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU;wBACnC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC;wBACpD,CAAC,CAAC,SAAS,CAAC;oBACd,IAAI,KAAK,EAAE,CAAC;wBACT,KAAa,CAAC,UAAU,GAAG,aAAa,CAAC;oBAC5C,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,aAAa"}
@@ -1,5 +1,14 @@
1
1
  import { Program } from "../core/program.js";
2
2
  import { Type } from "../core/types.js";
3
+ import { Typekit } from "./typekit/index.js";
4
+ /**
5
+ * A Realm's view of a Program's state map for a given state key.
6
+ *
7
+ * For all operations, if a type was created within the realm, the realm's own state map is used. Otherwise, the owning'
8
+ * Program's state map is used.
9
+ *
10
+ * @experimental
11
+ */
3
12
  declare class StateMapRealmView<V> implements Map<Type, V> {
4
13
  #private;
5
14
  constructor(realm: Realm, realmState: Map<Type, V>, parentState: Map<Type, V>);
@@ -15,20 +24,78 @@ declare class StateMapRealmView<V> implements Map<Type, V> {
15
24
  keys(): IterableIterator<Type>;
16
25
  [Symbol.iterator](): IterableIterator<[Type, V]>;
17
26
  [Symbol.toStringTag]: string;
18
- dispatch(keyType: Type): Map<Type, V>;
19
27
  }
20
- /** @experimental */
28
+ /**
29
+ * A Realm is an alternate view of a Program where types can be cloned, deleted, and modified without affecting the
30
+ * original types in the Program.
31
+ *
32
+ * The realm stores the types that exist within the realm, views of state maps that only apply within the realm,
33
+ * and a view of types that have been removed from the realm's view.
34
+ *
35
+ * @experimental
36
+ */
21
37
  export declare class Realm {
22
38
  #private;
23
39
  key: symbol;
40
+ /**
41
+ * Create a new realm in the given program.
42
+ *
43
+ * @param program - The program to create the realm in.
44
+ * @param description - A short description of the realm's purpose.
45
+ */
24
46
  constructor(program: Program, description: string);
47
+ /**
48
+ * The typekit instance bound to this realm.
49
+ *
50
+ * If the realm does not already have a typekit associated with it, one will be created and bound to this realm.
51
+ */
52
+ get typekit(): Typekit;
53
+ /**
54
+ * The program that this realm is associated with.
55
+ */
56
+ get program(): Program;
57
+ /**
58
+ * Gets a state map for the given state key symbol.
59
+ *
60
+ * This state map is a view of the program's state map for the given state key, with modifications made to the realm's
61
+ * own state.
62
+ *
63
+ * @param stateKey - The symbol to use as the state key.
64
+ * @returns The realm's state map for the given state key.
65
+ */
25
66
  stateMap(stateKey: symbol): StateMapRealmView<any>;
67
+ /**
68
+ * Clones a type and adds it to the realm. This operation will use the realm's typekit to clone the type.
69
+ *
70
+ * @param type - The type to clone.
71
+ * @returns A clone of the input type that exists within this realm.
72
+ */
26
73
  clone<T extends Type>(type: T): T;
74
+ /**
75
+ * Removes a type from this realm. This operation will not affect the type in the program, only this realm's view
76
+ * of the type.
77
+ *
78
+ * @param type - The TypeSpec type to remove from this realm.
79
+ */
27
80
  remove(type: Type): void;
81
+ /**
82
+ * Determines whether or not this realm contains a given type.
83
+ *
84
+ * @param type - The type to check.
85
+ * @returns true if the type was created within this realm or added to this realm, false otherwise.
86
+ */
28
87
  hasType(type: Type): boolean;
88
+ /**
89
+ * Adds a type to this realm. Once a type is added to the realm, the realm considers it part of itself.
90
+ *
91
+ * A type can be present in multiple realms, but `Realm.realmForType` will only return the last realm that the type
92
+ * was added to.
93
+ *
94
+ * @param type - The type to add to this realm.
95
+ */
29
96
  addType(type: Type): void;
30
97
  static realmForKey(key: symbol, parentRealm?: Realm): Realm | undefined;
31
- static realmForType: Map<Type, Realm>;
98
+ static realmForType: WeakMap<Type, Realm>;
32
99
  }
33
100
  export {};
34
101
  //# sourceMappingURL=realm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"realm.d.ts","sourceRoot":"","sources":["../../../src/experimental/realm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGxC,cAAM,iBAAiB,CAAC,CAAC,CAAE,YAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;;gBAK7B,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAMpF,GAAG,CAAC,CAAC,EAAE,IAAI;IAIX,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG;IAKnB,GAAG,CAAC,CAAC,EAAE,IAAI;IAIX,MAAM,CAAC,CAAC,EAAE,IAAI;IAId,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG;IAQ3E,IAAI,IAAI,WAGP;IAED,KAAK;IAIJ,OAAO,IAAI,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAYtC,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAQ7B,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC;IAQ/B,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB,CAAC,MAAM,CAAC,WAAW,CAAC,SAAc;IAElC,QAAQ,CAAC,OAAO,EAAE,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;CAOtC;AAED,oBAAoB;AACpB,qBAAa,KAAK;;IAiBT,GAAG,EAAG,MAAM,CAAC;gBAER,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM;IAMjD,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAWzB,KAAK,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC;IASjC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIxB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAI5B,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAczB,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK;IAInD,MAAM,CAAC,YAAY,mBAA0B;CAC9C"}
1
+ {"version":3,"file":"realm.d.ts","sourceRoot":"","sources":["../../../src/experimental/realm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAiB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;;;;;;GAOG;AACH,cAAM,iBAAiB,CAAC,CAAC,CAAE,YAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;;gBAK7B,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAMpF,GAAG,CAAC,CAAC,EAAE,IAAI;IAIX,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG;IAKnB,GAAG,CAAC,CAAC,EAAE,IAAI;IAIX,MAAM,CAAC,CAAC,EAAE,IAAI;IAId,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG;IAQ3E,IAAI,IAAI,WAEP;IAED,KAAK;IAIJ,OAAO,IAAI,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAYtC,MAAM,IAAI,gBAAgB,CAAC,CAAC,CAAC;IAQ7B,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC;IAQ/B,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB,CAAC,MAAM,CAAC,WAAW,CAAC,SAAc;CASnC;AAED;;;;;;;;GAQG;AACH,qBAAa,KAAK;;IAeT,GAAG,EAAG,MAAM,CAAC;IAEpB;;;;;OAKG;gBACS,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM;IASjD;;;;OAIG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAWzB;;;;;OAKG;IACH,KAAK,CAAC,CAAC,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC;IASjC;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIxB;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAI5B;;;;;;;OAOG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAczB,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK;IAInD,MAAM,CAAC,YAAY,uBAA8B;CAClD"}
@@ -1,6 +1,14 @@
1
1
  var _a;
2
2
  import { compilerAssert } from "../core/diagnostics.js";
3
- import { $ } from "./typekit/define-kit.js";
3
+ import { createTypekit } from "./typekit/index.js";
4
+ /**
5
+ * A Realm's view of a Program's state map for a given state key.
6
+ *
7
+ * For all operations, if a type was created within the realm, the realm's own state map is used. Otherwise, the owning'
8
+ * Program's state map is used.
9
+ *
10
+ * @experimental
11
+ */
4
12
  class StateMapRealmView {
5
13
  #realm;
6
14
  #parentState;
@@ -11,17 +19,17 @@ class StateMapRealmView {
11
19
  this.#realmState = realmState;
12
20
  }
13
21
  has(t) {
14
- return this.dispatch(t).has(t) ?? false;
22
+ return this.#select(t).has(t) ?? false;
15
23
  }
16
24
  set(t, v) {
17
- this.dispatch(t).set(t, v);
25
+ this.#select(t).set(t, v);
18
26
  return this;
19
27
  }
20
28
  get(t) {
21
- return this.dispatch(t).get(t);
29
+ return this.#select(t).get(t);
22
30
  }
23
31
  delete(t) {
24
- return this.dispatch(t).delete(t);
32
+ return this.#select(t).delete(t);
25
33
  }
26
34
  forEach(cb, thisArg) {
27
35
  for (const item of this.entries()) {
@@ -30,8 +38,7 @@ class StateMapRealmView {
30
38
  return this;
31
39
  }
32
40
  get size() {
33
- // extremely non-optimal, maybe worth not offering it?
34
- return [...this.entries()].length;
41
+ return this.#realmState.size + this.#parentState.size;
35
42
  }
36
43
  clear() {
37
44
  this.#realmState.clear();
@@ -61,17 +68,24 @@ class StateMapRealmView {
61
68
  return this.entries();
62
69
  }
63
70
  [Symbol.toStringTag] = "StateMap";
64
- dispatch(keyType) {
71
+ #select(keyType) {
65
72
  if (this.#realm.hasType(keyType)) {
66
73
  return this.#realmState;
67
74
  }
68
75
  return this.#parentState;
69
76
  }
70
77
  }
71
- /** @experimental */
78
+ /**
79
+ * A Realm is an alternate view of a Program where types can be cloned, deleted, and modified without affecting the
80
+ * original types in the Program.
81
+ *
82
+ * The realm stores the types that exist within the realm, views of state maps that only apply within the realm,
83
+ * and a view of types that have been removed from the realm's view.
84
+ *
85
+ * @experimental
86
+ */
72
87
  export class Realm {
73
88
  #program;
74
- // Type registry
75
89
  /**
76
90
  * Stores all types owned by this realm.
77
91
  */
@@ -80,14 +94,44 @@ export class Realm {
80
94
  * Stores types that are deleted in this realm. When a realm is active and doing a traversal, you will
81
95
  * not find this type in e.g. collections. Deleted types are mapped to `null` if you ask for it.
82
96
  */
83
- #deletedTypes = new Set();
97
+ #deletedTypes = new WeakSet();
84
98
  #stateMaps = new Map();
85
99
  key;
100
+ /**
101
+ * Create a new realm in the given program.
102
+ *
103
+ * @param program - The program to create the realm in.
104
+ * @param description - A short description of the realm's purpose.
105
+ */
86
106
  constructor(program, description) {
87
107
  this.key = Symbol(description);
88
108
  this.#program = program;
89
109
  _a.#knownRealms.set(this.key, this);
90
110
  }
111
+ #_typekit;
112
+ /**
113
+ * The typekit instance bound to this realm.
114
+ *
115
+ * If the realm does not already have a typekit associated with it, one will be created and bound to this realm.
116
+ */
117
+ get typekit() {
118
+ return (this.#_typekit ??= createTypekit(this));
119
+ }
120
+ /**
121
+ * The program that this realm is associated with.
122
+ */
123
+ get program() {
124
+ return this.#program;
125
+ }
126
+ /**
127
+ * Gets a state map for the given state key symbol.
128
+ *
129
+ * This state map is a view of the program's state map for the given state key, with modifications made to the realm's
130
+ * own state.
131
+ *
132
+ * @param stateKey - The symbol to use as the state key.
133
+ * @returns The realm's state map for the given state key.
134
+ */
91
135
  stateMap(stateKey) {
92
136
  let m = this.#stateMaps.get(stateKey);
93
137
  if (!m) {
@@ -96,24 +140,50 @@ export class Realm {
96
140
  }
97
141
  return new StateMapRealmView(this, m, this.#program.stateMap(stateKey));
98
142
  }
143
+ /**
144
+ * Clones a type and adds it to the realm. This operation will use the realm's typekit to clone the type.
145
+ *
146
+ * @param type - The type to clone.
147
+ * @returns A clone of the input type that exists within this realm.
148
+ */
99
149
  clone(type) {
100
150
  compilerAssert(type, "Undefined type passed to clone");
101
151
  const clone = this.#cloneIntoRealm(type);
102
- $.type.finishType(clone);
152
+ this.typekit.type.finishType(clone);
103
153
  return clone;
104
154
  }
155
+ /**
156
+ * Removes a type from this realm. This operation will not affect the type in the program, only this realm's view
157
+ * of the type.
158
+ *
159
+ * @param type - The TypeSpec type to remove from this realm.
160
+ */
105
161
  remove(type) {
106
162
  this.#deletedTypes.add(type);
107
163
  }
164
+ /**
165
+ * Determines whether or not this realm contains a given type.
166
+ *
167
+ * @param type - The type to check.
168
+ * @returns true if the type was created within this realm or added to this realm, false otherwise.
169
+ */
108
170
  hasType(type) {
109
171
  return this.#types.has(type);
110
172
  }
173
+ /**
174
+ * Adds a type to this realm. Once a type is added to the realm, the realm considers it part of itself.
175
+ *
176
+ * A type can be present in multiple realms, but `Realm.realmForType` will only return the last realm that the type
177
+ * was added to.
178
+ *
179
+ * @param type - The type to add to this realm.
180
+ */
111
181
  addType(type) {
112
182
  this.#types.add(type);
113
183
  _a.realmForType.set(type, this);
114
184
  }
115
185
  #cloneIntoRealm(type) {
116
- const clone = $.type.clone(type);
186
+ const clone = this.typekit.type.clone(type);
117
187
  this.#types.add(clone);
118
188
  _a.realmForType.set(clone, this);
119
189
  return clone;
@@ -122,7 +192,7 @@ export class Realm {
122
192
  static realmForKey(key, parentRealm) {
123
193
  return this.#knownRealms.get(key);
124
194
  }
125
- static realmForType = new Map();
195
+ static realmForType = new WeakMap();
126
196
  }
127
197
  _a = Realm;
128
198
  //# sourceMappingURL=realm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"realm.js","sourceRoot":"","sources":["../../../src/experimental/realm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"realm.js","sourceRoot":"","sources":["../../../src/experimental/realm.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,13 @@
1
1
  import { type Program } from "../../core/program.js";
2
- /** @experimental */
3
- export declare function setCurrentProgram(program: Program): void;
4
- /** @experimental */
5
- export interface TypekitPrototype {
6
- program: Program;
7
- }
8
- /** @experimental */
9
- export declare const TypekitPrototype: Record<string, unknown>;
10
- /** @experimental */
11
- export declare function createTypekit(): TypekitPrototype;
12
- /** @experimental */
13
- export interface TypekitContext {
14
- program: Program;
2
+ import { Realm } from "../realm.js";
3
+ /**
4
+ * A Typekit is a collection of utility functions and namespaces that allow you to work with TypeSpec types.
5
+ *
6
+ * @experimental
7
+ */
8
+ export interface Typekit {
9
+ readonly program: Program;
10
+ readonly realm: Realm;
15
11
  }
16
12
  /**
17
13
  * contextual typing to type guards is annoying (often have to restate the signature),
@@ -21,8 +17,12 @@ export interface TypekitContext {
21
17
  export type StripGuards<T> = {
22
18
  [K in keyof T]: T[K] extends (...args: infer P) => infer R ? (...args: P) => R : StripGuards<T[K]>;
23
19
  };
24
- /** @experimental */
25
- export declare function defineKit<T extends Record<string, any>>(source: StripGuards<T> & ThisType<TypekitPrototype>): void;
26
- /** @experimental */
27
- export declare const $: TypekitPrototype;
20
+ /**
21
+ * Defines an extension to the Typekit interface.
22
+ *
23
+ * All Typekit instances will inherit the functionality defined by calls to this function.
24
+ *
25
+ * @experimental
26
+ */
27
+ export declare function defineKit<T extends Record<string, any>>(source: StripGuards<T> & ThisType<Typekit>): void;
28
28
  //# sourceMappingURL=define-kit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-kit.d.ts","sourceRoot":"","sources":["../../../../src/experimental/typekit/define-kit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAIrD,oBAAoB;AACpB,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAExD;AAED,oBAAoB;AACpB,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,oBAAoB;AACpB,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,CAAC;AAE5D,oBAAoB;AACpB,wBAAgB,aAAa,IAAI,gBAAgB,CAkChD;AAED,oBAAoB;AACpB,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GACtD,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GACjB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtB,CAAC;AAEF,oBAAoB;AACpB,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAClD,IAAI,CAIN;AAED,oBAAoB;AACpB,eAAO,MAAM,CAAC,EAAE,gBAAkC,CAAC"}
1
+ {"version":3,"file":"define-kit.d.ts","sourceRoot":"","sources":["../../../../src/experimental/typekit/define-kit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;CACvB;AAYD;;;;GAIG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC,GACtD,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GACjB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrD,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,GACzC,IAAI,CAIN"}
@@ -1,45 +1,22 @@
1
- const CURRENT_PROGRAM = Symbol.for("TypeSpec.currentProgram");
2
- /** @experimental */
3
- export function setCurrentProgram(program) {
4
- globalThis[CURRENT_PROGRAM] = program;
5
- }
6
- /** @experimental */
1
+ /**
2
+ * The prototype object for Typekit instances.
3
+ *
4
+ * @see {@link defineKit}
5
+ *
6
+ * @experimental
7
+ * @internal
8
+ */
7
9
  export const TypekitPrototype = {};
8
- /** @experimental */
9
- export function createTypekit() {
10
- const tk = Object.create(TypekitPrototype);
11
- Object.defineProperty(tk, "program", {
12
- get() {
13
- return globalThis[CURRENT_PROGRAM];
14
- },
15
- });
16
- const handler = {
17
- get(target, prop, receiver) {
18
- const value = Reflect.get(target, prop, receiver);
19
- if (prop === "program") {
20
- // don't wrap program (probably need to ensure this isn't a nested program somewhere)
21
- return value;
22
- }
23
- if (typeof value === "function") {
24
- return function (...args) {
25
- return value.apply(proxy, args);
26
- };
27
- }
28
- if (typeof value === "object" && value !== null) {
29
- return new Proxy(value, handler);
30
- }
31
- return value;
32
- },
33
- };
34
- const proxy = new Proxy(tk, handler);
35
- return proxy;
36
- }
37
- /** @experimental */
10
+ /**
11
+ * Defines an extension to the Typekit interface.
12
+ *
13
+ * All Typekit instances will inherit the functionality defined by calls to this function.
14
+ *
15
+ * @experimental
16
+ */
38
17
  export function defineKit(source) {
39
18
  for (const [name, fnOrNs] of Object.entries(source)) {
40
19
  TypekitPrototype[name] = fnOrNs;
41
20
  }
42
21
  }
43
- /** @experimental */
44
- export const $ = createTypekit();
45
22
  //# sourceMappingURL=define-kit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-kit.js","sourceRoot":"","sources":["../../../../src/experimental/typekit/define-kit.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAE9D,oBAAoB;AACpB,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAC/C,UAAkB,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC;AACjD,CAAC;AAOD,oBAAoB;AACpB,MAAM,CAAC,MAAM,gBAAgB,GAA4B,EAAE,CAAC;AAE5D,oBAAoB;AACpB,MAAM,UAAU,aAAa;IAC3B,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE3C,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE;QACnC,GAAG;YACD,OAAQ,UAAkB,CAAC,eAAe,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAmC;QAC9C,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;YACxB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAElD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,qFAAqF;gBACrF,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,UAAqB,GAAG,IAAW;oBACxC,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAClC,CAAC,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAChD,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACnC,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC;AACf,CAAC;AAkBD,oBAAoB;AACpB,MAAM,UAAU,SAAS,CACvB,MAAmD;IAEnD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IAClC,CAAC;AACH,CAAC;AAED,oBAAoB;AACpB,MAAM,CAAC,MAAM,CAAC,GAAqB,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"define-kit.js","sourceRoot":"","sources":["../../../../src/experimental/typekit/define-kit.ts"],"names":[],"mappings":"AAaA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA4B,EAAE,CAAC;AAa5D;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,MAA0C;IAE1C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IAClC,CAAC;AACH,CAAC"}