@typespec/emitter-framework 0.12.0-dev.2 → 0.12.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Changelog - @typespec/emitter-framework
2
2
 
3
+ ## 0.12.0
4
+
5
+ ### Features
6
+
7
+ - [#8686](https://github.com/microsoft/typespec/pull/8686) Make C# and TypeScript TypeExpression overridable for unsupported types.
8
+
9
+ ### Bump dependencies
10
+
11
+ - [#8437](https://github.com/microsoft/typespec/pull/8437) Upgrade dependencies
12
+
13
+ ### Bug Fixes
14
+
15
+ - [#8474](https://github.com/microsoft/typespec/pull/8474) Remove development exports from published package
16
+
17
+
3
18
  ## 0.11.0
4
19
 
5
20
  ### Features
@@ -84,6 +84,7 @@ it("renders a class declaration with properties using component override", async
84
84
  Prop1: string;
85
85
  Prop2: int32;
86
86
  Prop3?: Foo;
87
+ Prop4?: "foo" | "bar";
87
88
  }
88
89
  `);
89
90
  expect(_$createComponent(Wrapper, {
@@ -121,6 +122,8 @@ it("renders a class declaration with properties using component override", async
121
122
  public required int Prop2 { get; set; }
122
123
 
123
124
  public Bar? Prop3 { get; set; }
125
+
126
+ public string? Prop4 { get; set; }
124
127
  }
125
128
  `);
126
129
  });
@@ -133,6 +136,15 @@ function TestClientOverrides(props) {
133
136
  return props.default;
134
137
  }
135
138
  }
139
+ }).forTypeKind("Union", {
140
+ reference: props => {
141
+ for (const variant of props.type.variants.values()) {
142
+ if (variant.type.kind !== "String" || variant.type.kind === "String" && !variant.type.value) {
143
+ return props.default;
144
+ }
145
+ }
146
+ return "string";
147
+ }
136
148
  });
137
149
  return _$createComponent(Experimental_ComponentOverrides, {
138
150
  overrides: overrides,
@@ -1 +1 @@
1
- {"version":3,"names":["Experimental_ComponentOverrides","Experimental_ComponentOverridesConfig","Tester","List","d","createCSharpNamePolicy","SourceFile","t","beforeEach","describe","expect","it","Output","ClassDeclaration","EnumDeclaration","runner","createInstance","Wrapper","props","policy","_$createComponent","program","namePolicy","children","path","TestModel","compile","code","model","type","toRenderTo","Foo","Bar","TestClientOverrides","hardline","overrides","forTypeKind","reference","name","default","TestInterface","interface","TestReference","_$createIntrinsic","TestEnum","enum"],"sources":["../../../../../src/csharp/components/class/declaration.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SACEA,+BAA+B,EAC/BC,qCAAqC,QAChC,gBAAgB;AACvB,SAASC,MAAM,QAAQ,oBAAoB;AAC3C,SAASC,IAAI,QAAuB,gBAAgB;AACpD,SAASC,CAAC,QAAQ,wBAAwB;AAC1C,SAASC,sBAAsB,EAAEC,UAAU,QAAQ,kBAAkB;AACrE,SAASC,CAAC,QAA6B,4BAA4B;AACnE,SAASC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACzD,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,SAASC,gBAAgB,EAAEC,eAAe,QAAQ,gBAAgB;AAElE,IAAIC,MAAsB;AAE1BP,UAAU,CAAC,YAAY;EACrBO,MAAM,GAAG,MAAMb,MAAM,CAACc,cAAc,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,SAASC,OAAOA,CAACC,KAA6B,EAAE;EAC9C,MAAMC,MAAM,GAAGd,sBAAsB,CAAC,CAAC;EACvC,OAAAe,iBAAA,CACGR,MAAM;IAAA,IAACS,OAAOA,CAAA;MAAA,OAAEN,MAAM,CAACM,OAAO;IAAA;IAAEC,UAAU,EAAEH,MAAM;IAAA,IAAAI,SAAA;MAAA,OAAAH,iBAAA,CAChDd,UAAU;QAACkB,IAAI;QAAA,IAAAD,SAAA;UAAA,OAAYL,KAAK,CAACK,QAAQ;QAAA;MAAA;IAAA;EAAA;AAGhD;AAEAZ,EAAE,CAAC,oCAAoC,EAAE,YAAY;EACnD,MAAM;IAAEc;EAAU,CAAC,GAAG,MAAMV,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACnD,YAAYpB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,OAAAH,iBAAA,CACLP,gBAAgB;QAACgB,IAAI,EAAEJ;MAAS;IAAA;EAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFnB,EAAE,CAAC,6CAA6C,EAAE,YAAY;EAC5D,MAAM;IAAEc;EAAU,CAAC,GAAG,MAAMV,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACnD,YAAYpB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA;AACA;AACA,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,OAAAH,iBAAA,CACLP,gBAAgB;QAACgB,IAAI,EAAEJ;MAAS;IAAA;EAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFnB,EAAE,CAAC,sEAAsE,EAAE,YAAY;EACrF,MAAM;IAAEc,SAAS;IAAEM,GAAG;IAAEC;EAAI,CAAC,GAAG,MAAMjB,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AAC7D,YAAYpB,CAAC,CAACqB,KAAK,CAAC,KAAK,CAAC;AAC1B,YAAYrB,CAAC,CAACqB,KAAK,CAAC,KAAK,CAAC;AAC1B,YAAYrB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA;AACA;AACA;AACA,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,OAAAH,iBAAA,CACLa,mBAAmB;QAAA,IAAAV,SAAA;UAAA,OAAAH,iBAAA,CACjBjB,IAAI;YAAC+B,QAAQ;YAAA,IAAAX,SAAA;cAAA,QAAAH,iBAAA,CACXP,gBAAgB;gBAACgB,IAAI,EAAEE;cAAG,IAAAX,iBAAA,CAC1BP,gBAAgB;gBAACgB,IAAI,EAAEG;cAAG,IAAAZ,iBAAA,CAC1BP,gBAAgB;gBAACgB,IAAI,EAAEJ;cAAS;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA,EAIzC,CAAC,CAACK,UAAU,CAAC1B,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS6B,mBAAmBA,CAACf,KAA8B,EAAE;EAC3D,MAAMiB,SAAS,GAAGlC,qCAAqC,CAAC,CAAC,CAACmC,WAAW,CAAC,OAAO,EAAE;IAC7EC,SAAS,EAAGnB,KAAK,IAAK;MACpB,IAAIA,KAAK,CAACW,IAAI,CAACS,IAAI,KAAK,KAAK,EAAE;QAC7B,OAAO,KAAK;MACd,CAAC,MAAM;QACL,OAAOpB,KAAK,CAACqB,OAAO;MACtB;IACF;EACF,CAAC,CAAC;EACF,OAAAnB,iBAAA,CACGpB,+BAA+B;IAACmC,SAAS,EAAEA,SAAS;IAAA,IAAAZ,SAAA;MAAA,OAClDL,KAAK,CAACK,QAAQ;IAAA;EAAA;AAGrB;AAEAZ,EAAE,CAAC,yBAAyB,EAAE,YAAY;EACxC,MAAM;IAAEc;EAAU,CAAC,GAAG,MAAMV,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACnD,YAAYpB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,OAAAH,iBAAA,CACLP,gBAAgB;QAACgB,IAAI,EAAEJ,SAAS;QAAEa,IAAI;MAAA;IAAA;EAAA,EAE3C,CAAC,CAACR,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFnB,EAAE,CAAC,uCAAuC,EAAE,YAAY;EACtD,MAAM;IAAEc;EAAU,CAAC,GAAG,MAAMV,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACnD,YAAYpB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,OAAAH,iBAAA,CACLP,gBAAgB;QAACgB,IAAI,EAAEJ,SAAS;QAAA;MAAA;IAAA;EAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFrB,QAAQ,CAAC,mBAAmB,EAAE,MAAM;EAClCE,EAAE,CAAC,wBAAwB,EAAE,YAAY;IACvC,MAAM;MAAE6B;IAAc,CAAC,GAAG,MAAMzB,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACzD,gBAAgBpB,CAAC,CAACkC,SAAS,CAAC,eAAe,CAAC;AAC5C;AACA,GAAG,CAAC;IAEA/B,MAAM,CAAAU,iBAAA,CACHH,OAAO;MAAA,IAAAM,SAAA;QAAA,OAAAH,iBAAA,CACLP,gBAAgB;UAACgB,IAAI,EAAEW;QAAa;MAAA;IAAA,EAEzC,CAAC,CAACV,UAAU,CAAC;AACjB;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFnB,EAAE,CAAC,iCAAiC,EAAE,YAAY;IAChD,MAAM;MAAE6B;IAAc,CAAC,GAAG,MAAMzB,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACzD,gBAAgBpB,CAAC,CAACkC,SAAS,CAAC,eAAe,CAAC;AAC5C;AACA;AACA,GAAG,CAAC;IAEA/B,MAAM,CAAAU,iBAAA,CACHH,OAAO;MAAA,IAAAM,SAAA;QAAA,OAAAH,iBAAA,CACLP,gBAAgB;UAACgB,IAAI,EAAEW;QAAa;MAAA;IAAA,EAEzC,CAAC,CAACV,UAAU,CAAC;AACjB;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFnB,EAAE,CAAC,oCAAoC,EAAE,YAAY;EACnD,MAAM;IAAEc,SAAS;IAAEiB;EAAc,CAAC,GAAG,MAAM3B,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AAClE,YAAYpB,CAAC,CAACqB,KAAK,CAAC,eAAe,CAAC;AACpC,YAAYrB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA;AACA,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,QAAAH,iBAAA,CACLP,gBAAgB;QAACgB,IAAI,EAAEa;MAAa,IAAAC,iBAAA,aAAAvB,iBAAA,CAEpCP,gBAAgB;QAACgB,IAAI,EAAEJ;MAAS;IAAA;EAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFnB,EAAE,CAAC,mCAAmC,EAAE,YAAY;EAClD,MAAM;IAAEc,SAAS;IAAEmB;EAAS,CAAC,GAAG,MAAM7B,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AAC7D,iBAAiBpB,CAAC,CAACsC,IAAI,CAAC,UAAU,CAAC;AACnC;AACA;AACA;AACA,YAAYtC,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA;AACA,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,QAAAH,iBAAA,CACLN,eAAe;QAACe,IAAI,EAAEe;MAAQ,IAAAD,iBAAA,aAAAvB,iBAAA,CAE9BP,gBAAgB;QAACgB,IAAI,EAAEJ;MAAS;IAAA;EAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFnB,EAAE,CAAC,+CAA+C,EAAE,YAAY;EAC9D,MAAM;IAAEc;EAAU,CAAC,GAAG,MAAMV,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACnD,YAAYpB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA;AACA,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,OAAAH,iBAAA,CACLP,gBAAgB;QAACgB,IAAI,EAAEJ;MAAS;IAAA;EAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFnB,EAAE,CAAC,mCAAmC,EAAE,YAAY;EAClD,MAAM;IAAEc,SAAS;IAAEmB;EAAS,CAAC,GAAG,MAAM7B,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AAC7D,iBAAiBpB,CAAC,CAACsC,IAAI,CAAC,UAAU,CAAC;AACnC;AACA;AACA;AACA,YAAYtC,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA;AACA,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,QAAAH,iBAAA,CACLN,eAAe;QAACe,IAAI,EAAEe;MAAQ,IAAAD,iBAAA,aAAAvB,iBAAA,CAE9BP,gBAAgB;QAACgB,IAAI,EAAEJ;MAAS;IAAA;EAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFrB,QAAQ,CAAC,mBAAmB,EAAE,MAAM;EAClCE,EAAE,CAAC,2BAA2B,EAAE,YAAY;IAC1C,MAAM;MAAEc;IAAU,CAAC,GAAG,MAAMV,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACrD;AACA,YAAYpB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA;AACA;AACA;AACA,GAAG,CAAC;IAEAlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;MAAA,IAAAM,SAAA;QAAA,OAAAH,iBAAA,CACLP,gBAAgB;UAACgB,IAAI,EAAEJ;QAAS;MAAA;IAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFnB,EAAE,CAAC,gCAAgC,EAAE,YAAY;IAC/C,MAAM;MAAE6B;IAAc,CAAC,GAAG,MAAMzB,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACzD;AACA,wBAAwBpB,CAAC,CAACkC,SAAS,CAAC,eAAe,CAAC;AACpD;AACA;AACA;AACA;AACA,KAAK,CAAC;IAEF/B,MAAM,CAAAU,iBAAA,CACHH,OAAO;MAAA,IAAAM,SAAA;QAAA,OAAAH,iBAAA,CACLP,gBAAgB;UAACgB,IAAI,EAAEW;QAAa;MAAA;IAAA,EAEzC,CAAC,CAACV,UAAU,CAAC;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Experimental_ComponentOverrides","Experimental_ComponentOverridesConfig","Tester","List","d","createCSharpNamePolicy","SourceFile","t","beforeEach","describe","expect","it","Output","ClassDeclaration","EnumDeclaration","runner","createInstance","Wrapper","props","policy","_$createComponent","program","namePolicy","children","path","TestModel","compile","code","model","type","toRenderTo","Foo","Bar","TestClientOverrides","hardline","overrides","forTypeKind","reference","name","default","variant","variants","values","kind","value","TestInterface","interface","TestReference","_$createIntrinsic","TestEnum","enum"],"sources":["../../../../../src/csharp/components/class/declaration.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SACEA,+BAA+B,EAC/BC,qCAAqC,QAChC,gBAAgB;AACvB,SAASC,MAAM,QAAQ,oBAAoB;AAC3C,SAASC,IAAI,QAAuB,gBAAgB;AACpD,SAASC,CAAC,QAAQ,wBAAwB;AAC1C,SAASC,sBAAsB,EAAEC,UAAU,QAAQ,kBAAkB;AACrE,SAASC,CAAC,QAA6B,4BAA4B;AACnE,SAASC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACzD,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,SAASC,gBAAgB,EAAEC,eAAe,QAAQ,gBAAgB;AAElE,IAAIC,MAAsB;AAE1BP,UAAU,CAAC,YAAY;EACrBO,MAAM,GAAG,MAAMb,MAAM,CAACc,cAAc,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,SAASC,OAAOA,CAACC,KAA6B,EAAE;EAC9C,MAAMC,MAAM,GAAGd,sBAAsB,CAAC,CAAC;EACvC,OAAAe,iBAAA,CACGR,MAAM;IAAA,IAACS,OAAOA,CAAA;MAAA,OAAEN,MAAM,CAACM,OAAO;IAAA;IAAEC,UAAU,EAAEH,MAAM;IAAA,IAAAI,SAAA;MAAA,OAAAH,iBAAA,CAChDd,UAAU;QAACkB,IAAI;QAAA,IAAAD,SAAA;UAAA,OAAYL,KAAK,CAACK,QAAQ;QAAA;MAAA;IAAA;EAAA;AAGhD;AAEAZ,EAAE,CAAC,oCAAoC,EAAE,YAAY;EACnD,MAAM;IAAEc;EAAU,CAAC,GAAG,MAAMV,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACnD,YAAYpB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,OAAAH,iBAAA,CACLP,gBAAgB;QAACgB,IAAI,EAAEJ;MAAS;IAAA;EAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFnB,EAAE,CAAC,6CAA6C,EAAE,YAAY;EAC5D,MAAM;IAAEc;EAAU,CAAC,GAAG,MAAMV,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACnD,YAAYpB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA;AACA;AACA,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,OAAAH,iBAAA,CACLP,gBAAgB;QAACgB,IAAI,EAAEJ;MAAS;IAAA;EAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFnB,EAAE,CAAC,sEAAsE,EAAE,YAAY;EACrF,MAAM;IAAEc,SAAS;IAAEM,GAAG;IAAEC;EAAI,CAAC,GAAG,MAAMjB,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AAC7D,YAAYpB,CAAC,CAACqB,KAAK,CAAC,KAAK,CAAC;AAC1B,YAAYrB,CAAC,CAACqB,KAAK,CAAC,KAAK,CAAC;AAC1B,YAAYrB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,OAAAH,iBAAA,CACLa,mBAAmB;QAAA,IAAAV,SAAA;UAAA,OAAAH,iBAAA,CACjBjB,IAAI;YAAC+B,QAAQ;YAAA,IAAAX,SAAA;cAAA,QAAAH,iBAAA,CACXP,gBAAgB;gBAACgB,IAAI,EAAEE;cAAG,IAAAX,iBAAA,CAC1BP,gBAAgB;gBAACgB,IAAI,EAAEG;cAAG,IAAAZ,iBAAA,CAC1BP,gBAAgB;gBAACgB,IAAI,EAAEJ;cAAS;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA,EAIzC,CAAC,CAACK,UAAU,CAAC1B,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS6B,mBAAmBA,CAACf,KAA8B,EAAE;EAC3D,MAAMiB,SAAS,GAAGlC,qCAAqC,CAAC,CAAC,CACtDmC,WAAW,CAAC,OAAO,EAAE;IACpBC,SAAS,EAAGnB,KAAK,IAAK;MACpB,IAAIA,KAAK,CAACW,IAAI,CAACS,IAAI,KAAK,KAAK,EAAE;QAC7B,OAAO,KAAK;MACd,CAAC,MAAM;QACL,OAAOpB,KAAK,CAACqB,OAAO;MACtB;IACF;EACF,CAAC,CAAC,CACDH,WAAW,CAAC,OAAO,EAAE;IACpBC,SAAS,EAAGnB,KAAK,IAAK;MACpB,KAAK,MAAMsB,OAAO,IAAItB,KAAK,CAACW,IAAI,CAACY,QAAQ,CAACC,MAAM,CAAC,CAAC,EAAE;QAClD,IACEF,OAAO,CAACX,IAAI,CAACc,IAAI,KAAK,QAAQ,IAC7BH,OAAO,CAACX,IAAI,CAACc,IAAI,KAAK,QAAQ,IAAI,CAACH,OAAO,CAACX,IAAI,CAACe,KAAM,EACvD;UACA,OAAO1B,KAAK,CAACqB,OAAO;QACtB;MACF;MACA,OAAO,QAAQ;IACjB;EACF,CAAC,CAAC;EACJ,OAAAnB,iBAAA,CACGpB,+BAA+B;IAACmC,SAAS,EAAEA,SAAS;IAAA,IAAAZ,SAAA;MAAA,OAClDL,KAAK,CAACK,QAAQ;IAAA;EAAA;AAGrB;AAEAZ,EAAE,CAAC,yBAAyB,EAAE,YAAY;EACxC,MAAM;IAAEc;EAAU,CAAC,GAAG,MAAMV,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACnD,YAAYpB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,OAAAH,iBAAA,CACLP,gBAAgB;QAACgB,IAAI,EAAEJ,SAAS;QAAEa,IAAI;MAAA;IAAA;EAAA,EAE3C,CAAC,CAACR,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFnB,EAAE,CAAC,uCAAuC,EAAE,YAAY;EACtD,MAAM;IAAEc;EAAU,CAAC,GAAG,MAAMV,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACnD,YAAYpB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,OAAAH,iBAAA,CACLP,gBAAgB;QAACgB,IAAI,EAAEJ,SAAS;QAAA;MAAA;IAAA;EAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFrB,QAAQ,CAAC,mBAAmB,EAAE,MAAM;EAClCE,EAAE,CAAC,wBAAwB,EAAE,YAAY;IACvC,MAAM;MAAEkC;IAAc,CAAC,GAAG,MAAM9B,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACzD,gBAAgBpB,CAAC,CAACuC,SAAS,CAAC,eAAe,CAAC;AAC5C;AACA,GAAG,CAAC;IAEApC,MAAM,CAAAU,iBAAA,CACHH,OAAO;MAAA,IAAAM,SAAA;QAAA,OAAAH,iBAAA,CACLP,gBAAgB;UAACgB,IAAI,EAAEgB;QAAa;MAAA;IAAA,EAEzC,CAAC,CAACf,UAAU,CAAC;AACjB;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFnB,EAAE,CAAC,iCAAiC,EAAE,YAAY;IAChD,MAAM;MAAEkC;IAAc,CAAC,GAAG,MAAM9B,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACzD,gBAAgBpB,CAAC,CAACuC,SAAS,CAAC,eAAe,CAAC;AAC5C;AACA;AACA,GAAG,CAAC;IAEApC,MAAM,CAAAU,iBAAA,CACHH,OAAO;MAAA,IAAAM,SAAA;QAAA,OAAAH,iBAAA,CACLP,gBAAgB;UAACgB,IAAI,EAAEgB;QAAa;MAAA;IAAA,EAEzC,CAAC,CAACf,UAAU,CAAC;AACjB;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFnB,EAAE,CAAC,oCAAoC,EAAE,YAAY;EACnD,MAAM;IAAEc,SAAS;IAAEsB;EAAc,CAAC,GAAG,MAAMhC,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AAClE,YAAYpB,CAAC,CAACqB,KAAK,CAAC,eAAe,CAAC;AACpC,YAAYrB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA;AACA,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,QAAAH,iBAAA,CACLP,gBAAgB;QAACgB,IAAI,EAAEkB;MAAa,IAAAC,iBAAA,aAAA5B,iBAAA,CAEpCP,gBAAgB;QAACgB,IAAI,EAAEJ;MAAS;IAAA;EAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFnB,EAAE,CAAC,mCAAmC,EAAE,YAAY;EAClD,MAAM;IAAEc,SAAS;IAAEwB;EAAS,CAAC,GAAG,MAAMlC,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AAC7D,iBAAiBpB,CAAC,CAAC2C,IAAI,CAAC,UAAU,CAAC;AACnC;AACA;AACA;AACA,YAAY3C,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA;AACA,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,QAAAH,iBAAA,CACLN,eAAe;QAACe,IAAI,EAAEoB;MAAQ,IAAAD,iBAAA,aAAA5B,iBAAA,CAE9BP,gBAAgB;QAACgB,IAAI,EAAEJ;MAAS;IAAA;EAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFnB,EAAE,CAAC,+CAA+C,EAAE,YAAY;EAC9D,MAAM;IAAEc;EAAU,CAAC,GAAG,MAAMV,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACnD,YAAYpB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA;AACA,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,OAAAH,iBAAA,CACLP,gBAAgB;QAACgB,IAAI,EAAEJ;MAAS;IAAA;EAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFnB,EAAE,CAAC,mCAAmC,EAAE,YAAY;EAClD,MAAM;IAAEc,SAAS;IAAEwB;EAAS,CAAC,GAAG,MAAMlC,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AAC7D,iBAAiBpB,CAAC,CAAC2C,IAAI,CAAC,UAAU,CAAC;AACnC;AACA;AACA;AACA,YAAY3C,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA;AACA,GAAG,CAAC;EAEFlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;IAAA,IAAAM,SAAA;MAAA,QAAAH,iBAAA,CACLN,eAAe;QAACe,IAAI,EAAEoB;MAAQ,IAAAD,iBAAA,aAAA5B,iBAAA,CAE9BP,gBAAgB;QAACgB,IAAI,EAAEJ;MAAS;IAAA;EAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFrB,QAAQ,CAAC,mBAAmB,EAAE,MAAM;EAClCE,EAAE,CAAC,2BAA2B,EAAE,YAAY;IAC1C,MAAM;MAAEc;IAAU,CAAC,GAAG,MAAMV,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACrD;AACA,YAAYpB,CAAC,CAACqB,KAAK,CAAC,WAAW,CAAC;AAChC;AACA;AACA;AACA;AACA,GAAG,CAAC;IAEAlB,MAAM,CAAAU,iBAAA,CACHH,OAAO;MAAA,IAAAM,SAAA;QAAA,OAAAH,iBAAA,CACLP,gBAAgB;UAACgB,IAAI,EAAEJ;QAAS;MAAA;IAAA,EAErC,CAAC,CAACK,UAAU,CAAC;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;EAEFnB,EAAE,CAAC,gCAAgC,EAAE,YAAY;IAC/C,MAAM;MAAEkC;IAAc,CAAC,GAAG,MAAM9B,MAAM,CAACW,OAAO,CAACnB,CAAC,CAACoB,IAAI;AACzD;AACA,wBAAwBpB,CAAC,CAACuC,SAAS,CAAC,eAAe,CAAC;AACpD;AACA;AACA;AACA;AACA,KAAK,CAAC;IAEFpC,MAAM,CAAAU,iBAAA,CACHH,OAAO;MAAA,IAAAM,SAAA;QAAA,OAAAH,iBAAA,CACLP,gBAAgB;UAACgB,IAAI,EAAEgB;QAAa;MAAA;IAAA,EAEzC,CAAC,CAACf,UAAU,CAAC;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"type-expression.d.ts","sourceRoot":"","sources":["../../../../src/csharp/components/type-expression.tsx"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,IAAI,EACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAM1D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,QAAQ,CAmCnE;AAED,QAAA,MAAM,yBAAyB,4BAqC7B,CAAC;AAEH,wBAAgB,4BAA4B,CAC1C,CAAC,EAAE,OAAO,EACV,IAAI,EAAE,MAAM,GAAG,aAAa,GAC3B,MAAM,GAAG,IAAI,CAoBf;AAyBD,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"type-expression.d.ts","sourceRoot":"","sources":["../../../../src/csharp/components/type-expression.tsx"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,IAAI,EACV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAM1D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,QAAQ,CAqCnE;AAED,QAAA,MAAM,yBAAyB,4BAqC7B,CAAC;AAEH,wBAAgB,4BAA4B,CAC1C,CAAC,EAAE,OAAO,EACV,IAAI,EAAE,MAAM,GAAG,aAAa,GAC3B,MAAM,GAAG,IAAI,CAoBf;AAyBD,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
@@ -8,57 +8,57 @@ import { reportTypescriptDiagnostic } from "../../typescript/lib.js";
8
8
  import { getNullableUnionInnerType } from "./utils/nullable-util.js";
9
9
  import { efRefkey } from "./utils/refkey.js";
10
10
  export function TypeExpression(props) {
11
- if (props.type.kind === "Union") {
12
- const nullabletype = getNullableUnionInnerType(props.type);
13
- if (nullabletype) {
14
- return code`${_$createComponent(TypeExpression, {
15
- type: nullabletype
16
- })}?`;
17
- }
18
- }
19
- const {
20
- $
21
- } = useTsp();
22
- if (isDeclaration($, props.type)) {
23
- return _$createComponent(Experimental_OverridableComponent, {
24
- reference: true,
25
- get type() {
26
- return props.type;
27
- },
28
- get children() {
11
+ return _$createComponent(Experimental_OverridableComponent, {
12
+ reference: true,
13
+ get type() {
14
+ return props.type;
15
+ },
16
+ children: () => {
17
+ if (props.type.kind === "Union") {
18
+ const nullabletype = getNullableUnionInnerType(props.type);
19
+ if (nullabletype) {
20
+ return code`${_$createComponent(TypeExpression, {
21
+ type: nullabletype
22
+ })}?`;
23
+ }
24
+ }
25
+ const {
26
+ $
27
+ } = useTsp();
28
+ if (isDeclaration($, props.type)) {
29
29
  return _$createComponent(Reference, {
30
30
  get refkey() {
31
31
  return efRefkey(props.type);
32
32
  }
33
33
  });
34
34
  }
35
- });
36
- }
37
- if ($.scalar.is(props.type)) {
38
- return getScalarIntrinsicExpression($, props.type);
39
- } else if ($.array.is(props.type)) {
40
- return code`${_$createComponent(TypeExpression, {
41
- get type() {
42
- return props.type.indexer.value;
43
- }
44
- })}[]`;
45
- } else if ($.record.is(props.type)) {
46
- return code`IDictionary<string, ${_$createComponent(TypeExpression, {
47
- get type() {
48
- return props.type.indexer.value;
35
+ if ($.scalar.is(props.type)) {
36
+ return getScalarIntrinsicExpression($, props.type);
37
+ } else if ($.array.is(props.type)) {
38
+ return code`${_$createComponent(TypeExpression, {
39
+ get type() {
40
+ return props.type.indexer.value;
41
+ }
42
+ })}[]`;
43
+ } else if ($.record.is(props.type)) {
44
+ return code`IDictionary<string, ${_$createComponent(TypeExpression, {
45
+ get type() {
46
+ return props.type.indexer.value;
47
+ }
48
+ })}>`;
49
+ } else if ($.literal.isString(props.type)) {
50
+ // c# doesn't have literal types, so we map them to their corresponding C# types in general
51
+ return code`string`;
52
+ } else if ($.literal.isNumeric(props.type)) {
53
+ return Number.isInteger(props.type.value) ? code`int` : code`double`;
54
+ } else if ($.literal.isBoolean(props.type)) {
55
+ return code`bool`;
56
+ } else if (isVoidType(props.type)) {
57
+ return code`void`;
49
58
  }
50
- })}>`;
51
- } else if ($.literal.isString(props.type)) {
52
- // c# doesn't have literal types, so we map them to their corresponding C# types in general
53
- return code`string`;
54
- } else if ($.literal.isNumeric(props.type)) {
55
- return Number.isInteger(props.type.value) ? code`int` : code`double`;
56
- } else if ($.literal.isBoolean(props.type)) {
57
- return code`bool`;
58
- } else if (isVoidType(props.type)) {
59
- return code`void`;
60
- }
61
- throw new Error(`Unsupported type for TypeExpression: ${props.type.kind} (${getTypeName(props.type)})`);
59
+ throw new Error(`Unsupported type for TypeExpression: ${props.type.kind} (${getTypeName(props.type)})`);
60
+ }
61
+ });
62
62
  }
63
63
  const intrinsicNameToCSharpType = new Map([
64
64
  // Core types
@@ -1 +1 @@
1
- {"version":3,"names":["Experimental_OverridableComponent","code","Reference","getTypeName","isVoidType","useTsp","reportTypescriptDiagnostic","getNullableUnionInnerType","efRefkey","TypeExpression","props","type","kind","nullabletype","_$createComponent","$","isDeclaration","reference","children","refkey","scalar","is","getScalarIntrinsicExpression","array","indexer","value","record","literal","isString","isNumeric","Number","isInteger","isBoolean","Error","intrinsicNameToCSharpType","Map","intrinsicName","isUtcDateTime","extendsUtcDateTime","getStdBase","name","csType","get","program","target","Boolean"],"sources":["../../../../src/csharp/components/type-expression.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,iCAAiC,QAAQ,gBAAgB;AAClE,SAASC,IAAI,QAAuB,gBAAgB;AACpD,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SACEC,WAAW,EACXC,UAAU,QAIL,oBAAoB;AAE3B,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,0BAA0B,QAAQ,yBAAyB;AACpE,SAASC,yBAAyB,QAAQ,0BAA0B;AACpE,SAASC,QAAQ,QAAQ,mBAAmB;AAM5C,OAAO,SAASC,cAAcA,CAACC,KAA0B,EAAY;EACnE,IAAIA,KAAK,CAACC,IAAI,CAACC,IAAI,KAAK,OAAO,EAAE;IAC/B,MAAMC,YAAY,GAAGN,yBAAyB,CAACG,KAAK,CAACC,IAAI,CAAC;IAC1D,IAAIE,YAAY,EAAE;MAChB,OAAOZ,IAAI,GAAAa,iBAAA,CAAKL,cAAc;QAACE,IAAI,EAAEE;MAAY,KAAQ;IAC3D;EACF;EACA,MAAM;IAAEE;EAAE,CAAC,GAAGV,MAAM,CAAC,CAAC;EACtB,IAAIW,aAAa,CAACD,CAAC,EAAEL,KAAK,CAACC,IAAI,CAAC,EAAE;IAChC,OAAAG,iBAAA,CACGd,iCAAiC;MAACiB,SAAS;MAAA,IAACN,IAAIA,CAAA;QAAA,OAAED,KAAK,CAACC,IAAI;MAAA;MAAA,IAAAO,SAAA;QAAA,OAAAJ,iBAAA,CAC1DZ,SAAS;UAAA,IAACiB,MAAMA,CAAA;YAAA,OAAEX,QAAQ,CAACE,KAAK,CAACC,IAAI,CAAC;UAAA;QAAA;MAAA;IAAA;EAG7C;EACA,IAAII,CAAC,CAACK,MAAM,CAACC,EAAE,CAACX,KAAK,CAACC,IAAI,CAAC,EAAE;IAC3B,OAAOW,4BAA4B,CAACP,CAAC,EAAEL,KAAK,CAACC,IAAI,CAAC;EACpD,CAAC,MAAM,IAAII,CAAC,CAACQ,KAAK,CAACF,EAAE,CAACX,KAAK,CAACC,IAAI,CAAC,EAAE;IACjC,OAAOV,IAAI,GAAAa,iBAAA,CAAKL,cAAc;MAAA,IAACE,IAAIA,CAAA;QAAA,OAAED,KAAK,CAACC,IAAI,CAACa,OAAO,CAACC,KAAK;MAAA;IAAA,MAAS;EACxE,CAAC,MAAM,IAAIV,CAAC,CAACW,MAAM,CAACL,EAAE,CAACX,KAAK,CAACC,IAAI,CAAC,EAAE;IAClC,OAAOV,IAAI,uBAAAa,iBAAA,CAAyBL,cAAc;MAAA,IAACE,IAAIA,CAAA;QAAA,OAAED,KAAK,CAACC,IAAI,CAACa,OAAO,CAACC,KAAK;MAAA;IAAA,KAAQ;EAC3F,CAAC,MAAM,IAAIV,CAAC,CAACY,OAAO,CAACC,QAAQ,CAAClB,KAAK,CAACC,IAAI,CAAC,EAAE;IACzC;IACA,OAAOV,IAAI,QAAQ;EACrB,CAAC,MAAM,IAAIc,CAAC,CAACY,OAAO,CAACE,SAAS,CAACnB,KAAK,CAACC,IAAI,CAAC,EAAE;IAC1C,OAAOmB,MAAM,CAACC,SAAS,CAACrB,KAAK,CAACC,IAAI,CAACc,KAAK,CAAC,GAAGxB,IAAI,KAAK,GAAGA,IAAI,QAAQ;EACtE,CAAC,MAAM,IAAIc,CAAC,CAACY,OAAO,CAACK,SAAS,CAACtB,KAAK,CAACC,IAAI,CAAC,EAAE;IAC1C,OAAOV,IAAI,MAAM;EACnB,CAAC,MAAM,IAAIG,UAAU,CAACM,KAAK,CAACC,IAAI,CAAC,EAAE;IACjC,OAAOV,IAAI,MAAM;EACnB;EAEA,MAAM,IAAIgC,KAAK,CACb,wCAAwCvB,KAAK,CAACC,IAAI,CAACC,IAAI,KAAKT,WAAW,CAACO,KAAK,CAACC,IAAI,CAAC,GACrF,CAAC;AACH;AAEA,MAAMuB,yBAAyB,GAAG,IAAIC,GAAG,CAAwB;AAC/D;AACA,CAAC,SAAS,EAAE,QAAQ,CAAC;AAAE;AACvB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAAE;AACtB,CAAC,SAAS,EAAE,MAAM,CAAC;AAAE;AACrB,CAAC,MAAM,EAAE,MAAM,CAAC;AAAE;AAClB,CAAC,MAAM,EAAE,MAAM,CAAC;AAAE;AAClB,CAAC,OAAO,EAAE,IAAI,CAAC;AAAE;AACjB,CAAC,OAAO,EAAE,QAAQ,CAAC;AAAE;;AAErB;AACA,CAAC,SAAS,EAAE,SAAS,CAAC;AAAE;AACxB,CAAC,SAAS,EAAE,KAAK,CAAC;AAAE;AACpB,CAAC,OAAO,EAAE,OAAO,CAAC;AAAE;AACpB,CAAC,SAAS,EAAE,SAAS,CAAC;AAAE;AACxB,CAAC,YAAY,EAAE,SAAS,CAAC;AAAE;AAC3B,CAAC,OAAO,EAAE,MAAM,CAAC;AAAE;AACnB,CAAC,OAAO,EAAE,KAAK,CAAC;AAAE;AAClB,CAAC,OAAO,EAAE,OAAO,CAAC;AAAE;AACpB,CAAC,MAAM,EAAE,OAAO,CAAC;AAAE;AACnB,CAAC,SAAS,EAAE,KAAK,CAAC;AAAE;AACpB,CAAC,QAAQ,EAAE,OAAO,CAAC;AAAE;AACrB,CAAC,QAAQ,EAAE,MAAM,CAAC;AAAE;AACpB,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAAE;AACtB,CAAC,OAAO,EAAE,MAAM,CAAC;AAAE;AACnB,CAAC,SAAS,EAAE,OAAO,CAAC;AAAE;AACtB,CAAC,SAAS,EAAE,QAAQ,CAAC;AAAE;;AAEvB;AACA,CAAC,WAAW,EAAE,UAAU,CAAC;AAAE;AAC3B,CAAC,WAAW,EAAE,UAAU,CAAC;AAAE;AAC3B,CAAC,aAAa,EAAE,gBAAgB,CAAC;AAAE;AACnC,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;AAAE;AACtC,CAAC,UAAU,EAAE,UAAU,CAAC;AAAE;;AAE1B;AACA,CAAC,KAAK,EAAE,KAAK,CAAC,CAAE;AAAA,CACjB,CAAC;AAEF,OAAO,SAASb,4BAA4BA,CAC1CP,CAAU,EACVJ,IAA4B,EACb;EACf,IAAIyB,aAAqB;EAEzB,IAAIrB,CAAC,CAACK,MAAM,CAACiB,aAAa,CAAC1B,IAAI,CAAC,IAAII,CAAC,CAACK,MAAM,CAACkB,kBAAkB,CAAC3B,IAAI,CAAC,EAAE;IACrE,OAAO,gBAAgB;EACzB;EACA,IAAII,CAAC,CAACK,MAAM,CAACC,EAAE,CAACV,IAAI,CAAC,EAAE;IACrByB,aAAa,GAAGrB,CAAC,CAACK,MAAM,CAACmB,UAAU,CAAC5B,IAAI,CAAC,EAAE6B,IAAI,IAAI,EAAE;EACvD,CAAC,MAAM;IACLJ,aAAa,GAAGzB,IAAI,CAAC6B,IAAI;EAC3B;EAEA,MAAMC,MAAM,GAAGP,yBAAyB,CAACQ,GAAG,CAACN,aAAa,CAAC;EAE3D,IAAI,CAACK,MAAM,EAAE;IACXnC,0BAA0B,CAACS,CAAC,CAAC4B,OAAO,EAAE;MAAE1C,IAAI,EAAE,+BAA+B;MAAE2C,MAAM,EAAEjC;IAAK,CAAC,CAAC;IAC9F,OAAO,QAAQ,CAAC,CAAC;EACnB;EAEA,OAAO8B,MAAM;AACf;AAEA,SAASzB,aAAaA,CAACD,CAAU,EAAEJ,IAAU,EAAW;EACtD,QAAQA,IAAI,CAACC,IAAI;IACf,KAAK,WAAW;IAChB,KAAK,WAAW;IAChB,KAAK,MAAM;IACX,KAAK,WAAW;IAChB,KAAK,YAAY;MACf,OAAO,IAAI;IACb,KAAK,cAAc;MACjB,OAAO,KAAK;IAEd,KAAK,OAAO;MACV,IAAIG,CAAC,CAACQ,KAAK,CAACF,EAAE,CAACV,IAAI,CAAC,IAAII,CAAC,CAACW,MAAM,CAACL,EAAE,CAACV,IAAI,CAAC,EAAE;QACzC,OAAO,KAAK;MACd;MACA,OAAO,IAAI;IACb,KAAK,OAAO;MACV,OAAOkC,OAAO,CAAClC,IAAI,CAAC6B,IAAI,CAAC;IAC3B;MACE,OAAO,KAAK;EAChB;AACF;AAEA,SAASN,yBAAyB","ignoreList":[]}
1
+ {"version":3,"names":["Experimental_OverridableComponent","code","Reference","getTypeName","isVoidType","useTsp","reportTypescriptDiagnostic","getNullableUnionInnerType","efRefkey","TypeExpression","props","_$createComponent","reference","type","children","kind","nullabletype","$","isDeclaration","refkey","scalar","is","getScalarIntrinsicExpression","array","indexer","value","record","literal","isString","isNumeric","Number","isInteger","isBoolean","Error","intrinsicNameToCSharpType","Map","intrinsicName","isUtcDateTime","extendsUtcDateTime","getStdBase","name","csType","get","program","target","Boolean"],"sources":["../../../../src/csharp/components/type-expression.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"type-expression.d.ts","sourceRoot":"","sources":["../../../../src/typescript/components/type-expression.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgC,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAY7E,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,CAAC;IAEX;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,qCAyDxD"}
1
+ {"version":3,"file":"type-expression.d.ts","sourceRoot":"","sources":["../../../../src/typescript/components/type-expression.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgC,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAY7E,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,CAAC;IAEX;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,qCA+DxD"}
@@ -11,94 +11,94 @@ import { InterfaceExpression } from "./interface-declaration.js";
11
11
  import { RecordExpression } from "./record-expression.js";
12
12
  import { UnionExpression } from "./union/expression.js";
13
13
  export function TypeExpression(props) {
14
+ const type = props.type;
14
15
  const {
15
16
  $
16
17
  } = useTsp();
17
- const type = props.type;
18
- if (!props.noReference && isDeclaration($, type)) {
19
- // todo: probably need abstraction around deciding what's a declaration in the output
20
- // (it may not correspond to things which are declarations in TypeSpec?)
21
- return _$createComponent(Experimental_OverridableComponent, {
22
- reference: true,
23
- type: type,
24
- get children() {
18
+ return _$createComponent(Experimental_OverridableComponent, {
19
+ reference: true,
20
+ type: type,
21
+ children: () => {
22
+ if (!props.noReference && isDeclaration($, type)) {
23
+ // todo: probably need abstraction around deciding what's a declaration in the output
24
+ // (it may not correspond to things which are declarations in TypeSpec?)
25
25
  return _$createComponent(Reference, {
26
26
  get refkey() {
27
27
  return efRefkey(type);
28
28
  }
29
29
  });
30
+ //throw new Error("Reference not implemented");
30
31
  }
31
- });
32
- //throw new Error("Reference not implemented");
33
- }
34
32
 
35
- // TODO: Make sure this is an exhaustive switch, including EnumMember and such
36
- switch (type.kind) {
37
- case "Scalar":
38
- case "Intrinsic":
39
- return [_$memo(() => getScalarIntrinsicExpression($, type))];
40
- case "Boolean":
41
- case "Number":
42
- case "String":
43
- return _$createComponent(ValueExpression, {
44
- get jsValue() {
45
- return type.value;
46
- }
47
- });
48
- case "Union":
49
- return _$createComponent(UnionExpression, {
50
- type: type
51
- });
52
- case "UnionVariant":
53
- return _$createComponent(TypeExpression, {
54
- get type() {
55
- return type.type;
56
- }
57
- });
58
- case "Tuple":
59
- return ["[", _$createComponent(For, {
60
- get each() {
61
- return type.values;
62
- },
63
- comma: true,
64
- line: true,
65
- children: element => _$createComponent(TypeExpression, {
66
- type: element
67
- })
68
- }), "]"];
69
- case "ModelProperty":
70
- return _$createComponent(TypeExpression, {
71
- get type() {
72
- return type.type;
73
- }
74
- });
75
- case "Model":
76
- if ($.array.is(type)) {
77
- const elementType = type.indexer.value;
78
- return _$createComponent(ArrayExpression, {
79
- elementType: elementType
80
- });
81
- }
82
- if ($.record.is(type)) {
83
- const elementType = type.indexer.value;
84
- return _$createComponent(RecordExpression, {
85
- elementType: elementType
86
- });
33
+ // TODO: Make sure this is an exhaustive switch, including EnumMember and such
34
+ switch (type.kind) {
35
+ case "Scalar":
36
+ case "Intrinsic":
37
+ return [_$memo(() => getScalarIntrinsicExpression($, type))];
38
+ case "Boolean":
39
+ case "Number":
40
+ case "String":
41
+ return _$createComponent(ValueExpression, {
42
+ get jsValue() {
43
+ return type.value;
44
+ }
45
+ });
46
+ case "Union":
47
+ return _$createComponent(UnionExpression, {
48
+ type: type
49
+ });
50
+ case "UnionVariant":
51
+ return _$createComponent(TypeExpression, {
52
+ get type() {
53
+ return type.type;
54
+ }
55
+ });
56
+ case "Tuple":
57
+ return ["[", _$createComponent(For, {
58
+ get each() {
59
+ return type.values;
60
+ },
61
+ comma: true,
62
+ line: true,
63
+ children: element => _$createComponent(TypeExpression, {
64
+ type: element
65
+ })
66
+ }), "]"];
67
+ case "ModelProperty":
68
+ return _$createComponent(TypeExpression, {
69
+ get type() {
70
+ return type.type;
71
+ }
72
+ });
73
+ case "Model":
74
+ if ($.array.is(type)) {
75
+ const elementType = type.indexer.value;
76
+ return _$createComponent(ArrayExpression, {
77
+ elementType: elementType
78
+ });
79
+ }
80
+ if ($.record.is(type)) {
81
+ const elementType = type.indexer.value;
82
+ return _$createComponent(RecordExpression, {
83
+ elementType: elementType
84
+ });
85
+ }
86
+ return _$createComponent(InterfaceExpression, {
87
+ type: type
88
+ });
89
+ case "Operation":
90
+ return _$createComponent(FunctionType, {
91
+ type: type
92
+ });
93
+ default:
94
+ reportTypescriptDiagnostic($.program, {
95
+ code: "typescript-unsupported-type",
96
+ target: type
97
+ });
98
+ return "any";
87
99
  }
88
- return _$createComponent(InterfaceExpression, {
89
- type: type
90
- });
91
- case "Operation":
92
- return _$createComponent(FunctionType, {
93
- type: type
94
- });
95
- default:
96
- reportTypescriptDiagnostic($.program, {
97
- code: "typescript-unsupported-type",
98
- target: type
99
- });
100
- return "any";
101
- }
100
+ }
101
+ });
102
102
  }
103
103
  const intrinsicNameToTSType = new Map([
104
104
  // Core types
@@ -1 +1 @@
1
- {"version":3,"names":["For","Reference","ValueExpression","Experimental_OverridableComponent","useTsp","reportTypescriptDiagnostic","efRefkey","ArrayExpression","FunctionType","InterfaceExpression","RecordExpression","UnionExpression","TypeExpression","props","$","type","noReference","isDeclaration","_$createComponent","reference","children","refkey","kind","_$memo","getScalarIntrinsicExpression","jsValue","value","each","values","comma","line","element","array","is","elementType","indexer","record","program","code","target","intrinsicNameToTSType","Map","intrinsicName","scalar","isUtcDateTime","extendsUtcDateTime","encoding","getEncoding","emittedType","getStdBase","name","tsType","get","Boolean"],"sources":["../../../../src/typescript/components/type-expression.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["For","Reference","ValueExpression","Experimental_OverridableComponent","useTsp","reportTypescriptDiagnostic","efRefkey","ArrayExpression","FunctionType","InterfaceExpression","RecordExpression","UnionExpression","TypeExpression","props","type","$","_$createComponent","reference","children","noReference","isDeclaration","refkey","kind","_$memo","getScalarIntrinsicExpression","jsValue","value","each","values","comma","line","element","array","is","elementType","indexer","record","program","code","target","intrinsicNameToTSType","Map","intrinsicName","scalar","isUtcDateTime","extendsUtcDateTime","encoding","getEncoding","emittedType","getStdBase","name","tsType","get","Boolean"],"sources":["../../../../src/typescript/components/type-expression.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/emitter-framework",
3
- "version": "0.12.0-dev.2",
3
+ "version": "0.12.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "repository": {
@@ -41,14 +41,13 @@
41
41
  "@alloy-js/core": "^0.20.0",
42
42
  "@alloy-js/csharp": "^0.20.0",
43
43
  "@alloy-js/typescript": "^0.20.0",
44
- "@typespec/compiler": "^1.4.0"
44
+ "@typespec/compiler": "^1.5.0"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@alloy-js/cli": "^0.20.0",
48
48
  "@alloy-js/core": "^0.20.0",
49
49
  "@alloy-js/rollup-plugin": "^0.1.0",
50
50
  "@alloy-js/typescript": "^0.20.0",
51
- "@typespec/compiler": "^1.4.0",
52
51
  "concurrently": "^9.1.2",
53
52
  "pathe": "^2.0.3",
54
53
  "prettier": "~3.6.2",
@@ -59,9 +58,9 @@
59
58
  "tree-sitter-typescript": "^0.23.0",
60
59
  "typescript": "~5.9.2",
61
60
  "vitest": "^3.1.2",
62
- "web-tree-sitter": "^0.25.4"
61
+ "web-tree-sitter": "^0.25.4",
62
+ "@typespec/compiler": "^1.5.0"
63
63
  },
64
- "dependencies": {},
65
64
  "scripts": {
66
65
  "build": "alloy build",
67
66
  "clean": "rimraf ./dist",
package/package.json.bak CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/emitter-framework",
3
- "version": "0.12.0-dev.2",
3
+ "version": "0.12.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "repository": {
@@ -58,14 +58,14 @@
58
58
  "@alloy-js/core": "^0.20.0",
59
59
  "@alloy-js/csharp": "^0.20.0",
60
60
  "@alloy-js/typescript": "^0.20.0",
61
- "@typespec/compiler": "^1.4.0"
61
+ "@typespec/compiler": "workspace:^"
62
62
  },
63
63
  "devDependencies": {
64
64
  "@alloy-js/cli": "^0.20.0",
65
65
  "@alloy-js/core": "^0.20.0",
66
66
  "@alloy-js/rollup-plugin": "^0.1.0",
67
67
  "@alloy-js/typescript": "^0.20.0",
68
- "@typespec/compiler": "^1.4.0",
68
+ "@typespec/compiler": "workspace:^",
69
69
  "concurrently": "^9.1.2",
70
70
  "pathe": "^2.0.3",
71
71
  "prettier": "~3.6.2",
@@ -77,6 +77,5 @@
77
77
  "typescript": "~5.9.2",
78
78
  "vitest": "^3.1.2",
79
79
  "web-tree-sitter": "^0.25.4"
80
- },
81
- "dependencies": {}
82
- }
80
+ }
81
+ }
@@ -73,6 +73,7 @@ it("renders a class declaration with properties using component override", async
73
73
  Prop1: string;
74
74
  Prop2: int32;
75
75
  Prop3?: Foo;
76
+ Prop4?: "foo" | "bar";
76
77
  }
77
78
  `);
78
79
 
@@ -102,20 +103,36 @@ it("renders a class declaration with properties using component override", async
102
103
  public required int Prop2 { get; set; }
103
104
 
104
105
  public Bar? Prop3 { get; set; }
106
+
107
+ public string? Prop4 { get; set; }
105
108
  }
106
109
  `);
107
110
  });
108
111
 
109
112
  function TestClientOverrides(props: { children?: Children }) {
110
- const overrides = Experimental_ComponentOverridesConfig().forTypeKind("Model", {
111
- reference: (props) => {
112
- if (props.type.name === "Foo") {
113
- return "Bar";
114
- } else {
115
- return props.default;
116
- }
117
- },
118
- });
113
+ const overrides = Experimental_ComponentOverridesConfig()
114
+ .forTypeKind("Model", {
115
+ reference: (props) => {
116
+ if (props.type.name === "Foo") {
117
+ return "Bar";
118
+ } else {
119
+ return props.default;
120
+ }
121
+ },
122
+ })
123
+ .forTypeKind("Union", {
124
+ reference: (props) => {
125
+ for (const variant of props.type.variants.values()) {
126
+ if (
127
+ variant.type.kind !== "String" ||
128
+ (variant.type.kind === "String" && !variant.type.value)
129
+ ) {
130
+ return props.default;
131
+ }
132
+ }
133
+ return "string";
134
+ },
135
+ });
119
136
  return (
120
137
  <Experimental_ComponentOverrides overrides={overrides}>
121
138
  {props.children}
@@ -19,39 +19,41 @@ export interface TypeExpressionProps {
19
19
  }
20
20
 
21
21
  export function TypeExpression(props: TypeExpressionProps): Children {
22
- if (props.type.kind === "Union") {
23
- const nullabletype = getNullableUnionInnerType(props.type);
24
- if (nullabletype) {
25
- return code`${(<TypeExpression type={nullabletype} />)}?`;
26
- }
27
- }
28
- const { $ } = useTsp();
29
- if (isDeclaration($, props.type)) {
30
- return (
31
- <Experimental_OverridableComponent reference type={props.type}>
32
- <Reference refkey={efRefkey(props.type)} />
33
- </Experimental_OverridableComponent>
34
- );
35
- }
36
- if ($.scalar.is(props.type)) {
37
- return getScalarIntrinsicExpression($, props.type);
38
- } else if ($.array.is(props.type)) {
39
- return code`${(<TypeExpression type={props.type.indexer.value} />)}[]`;
40
- } else if ($.record.is(props.type)) {
41
- return code`IDictionary<string, ${(<TypeExpression type={props.type.indexer.value} />)}>`;
42
- } else if ($.literal.isString(props.type)) {
43
- // c# doesn't have literal types, so we map them to their corresponding C# types in general
44
- return code`string`;
45
- } else if ($.literal.isNumeric(props.type)) {
46
- return Number.isInteger(props.type.value) ? code`int` : code`double`;
47
- } else if ($.literal.isBoolean(props.type)) {
48
- return code`bool`;
49
- } else if (isVoidType(props.type)) {
50
- return code`void`;
51
- }
22
+ return (
23
+ <Experimental_OverridableComponent reference type={props.type}>
24
+ {() => {
25
+ if (props.type.kind === "Union") {
26
+ const nullabletype = getNullableUnionInnerType(props.type);
27
+ if (nullabletype) {
28
+ return code`${(<TypeExpression type={nullabletype} />)}?`;
29
+ }
30
+ }
31
+ const { $ } = useTsp();
32
+ if (isDeclaration($, props.type)) {
33
+ return <Reference refkey={efRefkey(props.type)} />;
34
+ }
35
+ if ($.scalar.is(props.type)) {
36
+ return getScalarIntrinsicExpression($, props.type);
37
+ } else if ($.array.is(props.type)) {
38
+ return code`${(<TypeExpression type={props.type.indexer.value} />)}[]`;
39
+ } else if ($.record.is(props.type)) {
40
+ return code`IDictionary<string, ${(<TypeExpression type={props.type.indexer.value} />)}>`;
41
+ } else if ($.literal.isString(props.type)) {
42
+ // c# doesn't have literal types, so we map them to their corresponding C# types in general
43
+ return code`string`;
44
+ } else if ($.literal.isNumeric(props.type)) {
45
+ return Number.isInteger(props.type.value) ? code`int` : code`double`;
46
+ } else if ($.literal.isBoolean(props.type)) {
47
+ return code`bool`;
48
+ } else if (isVoidType(props.type)) {
49
+ return code`void`;
50
+ }
52
51
 
53
- throw new Error(
54
- `Unsupported type for TypeExpression: ${props.type.kind} (${getTypeName(props.type)})`,
52
+ throw new Error(
53
+ `Unsupported type for TypeExpression: ${props.type.kind} (${getTypeName(props.type)})`,
54
+ );
55
+ }}
56
+ </Experimental_OverridableComponent>
55
57
  );
56
58
  }
57
59
 
@@ -24,62 +24,68 @@ export interface TypeExpressionProps {
24
24
  }
25
25
 
26
26
  export function TypeExpression(props: TypeExpressionProps) {
27
- const { $ } = useTsp();
28
27
  const type = props.type;
29
- if (!props.noReference && isDeclaration($, type)) {
30
- // todo: probably need abstraction around deciding what's a declaration in the output
31
- // (it may not correspond to things which are declarations in TypeSpec?)
32
- return (
33
- <Experimental_OverridableComponent reference type={type}>
34
- <Reference refkey={efRefkey(type)} />
35
- </Experimental_OverridableComponent>
36
- );
37
- //throw new Error("Reference not implemented");
38
- }
39
-
40
- // TODO: Make sure this is an exhaustive switch, including EnumMember and such
41
- switch (type.kind) {
42
- case "Scalar":
43
- case "Intrinsic":
44
- return <>{getScalarIntrinsicExpression($, type)}</>;
45
- case "Boolean":
46
- case "Number":
47
- case "String":
48
- return <ValueExpression jsValue={type.value} />;
49
- case "Union":
50
- return <UnionExpression type={type} />;
51
- case "UnionVariant":
52
- return <TypeExpression type={type.type} />;
53
- case "Tuple":
54
- return (
55
- <>
56
- [
57
- <For each={type.values} comma line>
58
- {(element) => <TypeExpression type={element} />}
59
- </For>
60
- ]
61
- </>
62
- );
63
- case "ModelProperty":
64
- return <TypeExpression type={type.type} />;
65
- case "Model":
66
- if ($.array.is(type)) {
67
- const elementType = type.indexer!.value;
68
- return <ArrayExpression elementType={elementType} />;
69
- }
70
-
71
- if ($.record.is(type)) {
72
- const elementType = (type as Model).indexer!.value;
73
- return <RecordExpression elementType={elementType} />;
74
- }
28
+ const { $ } = useTsp();
75
29
 
76
- return <InterfaceExpression type={type} />;
77
- case "Operation":
78
- return <FunctionType type={type} />;
79
- default:
80
- reportTypescriptDiagnostic($.program, { code: "typescript-unsupported-type", target: type });
81
- return "any";
82
- }
30
+ return (
31
+ <Experimental_OverridableComponent reference type={type}>
32
+ {() => {
33
+ if (!props.noReference && isDeclaration($, type)) {
34
+ // todo: probably need abstraction around deciding what's a declaration in the output
35
+ // (it may not correspond to things which are declarations in TypeSpec?)
36
+ return <Reference refkey={efRefkey(type)} />;
37
+ //throw new Error("Reference not implemented");
38
+ }
39
+
40
+ // TODO: Make sure this is an exhaustive switch, including EnumMember and such
41
+ switch (type.kind) {
42
+ case "Scalar":
43
+ case "Intrinsic":
44
+ return <>{getScalarIntrinsicExpression($, type)}</>;
45
+ case "Boolean":
46
+ case "Number":
47
+ case "String":
48
+ return <ValueExpression jsValue={type.value} />;
49
+ case "Union":
50
+ return <UnionExpression type={type} />;
51
+ case "UnionVariant":
52
+ return <TypeExpression type={type.type} />;
53
+ case "Tuple":
54
+ return (
55
+ <>
56
+ [
57
+ <For each={type.values} comma line>
58
+ {(element) => <TypeExpression type={element} />}
59
+ </For>
60
+ ]
61
+ </>
62
+ );
63
+ case "ModelProperty":
64
+ return <TypeExpression type={type.type} />;
65
+ case "Model":
66
+ if ($.array.is(type)) {
67
+ const elementType = type.indexer!.value;
68
+ return <ArrayExpression elementType={elementType} />;
69
+ }
70
+
71
+ if ($.record.is(type)) {
72
+ const elementType = (type as Model).indexer!.value;
73
+ return <RecordExpression elementType={elementType} />;
74
+ }
75
+
76
+ return <InterfaceExpression type={type} />;
77
+ case "Operation":
78
+ return <FunctionType type={type} />;
79
+ default:
80
+ reportTypescriptDiagnostic($.program, {
81
+ code: "typescript-unsupported-type",
82
+ target: type,
83
+ });
84
+ return "any";
85
+ }
86
+ }}
87
+ </Experimental_OverridableComponent>
88
+ );
83
89
  }
84
90
 
85
91
  const intrinsicNameToTSType = new Map<string, string | null>([