@tsonic/emitter 0.0.2 → 0.0.4

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 (159) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/adapter-generator.d.ts.map +1 -1
  3. package/dist/adapter-generator.js +3 -2
  4. package/dist/adapter-generator.js.map +1 -1
  5. package/dist/array.test.js +1 -1
  6. package/dist/array.test.js.map +1 -1
  7. package/dist/core/imports.d.ts +2 -2
  8. package/dist/core/imports.d.ts.map +1 -1
  9. package/dist/core/imports.js +60 -4
  10. package/dist/core/imports.js.map +1 -1
  11. package/dist/core/imports.test.js +4 -4
  12. package/dist/core/imports.test.js.map +1 -1
  13. package/dist/core/module-emitter/static-container.d.ts.map +1 -1
  14. package/dist/core/module-emitter/static-container.js +3 -1
  15. package/dist/core/module-emitter/static-container.js.map +1 -1
  16. package/dist/emitter-types/core.d.ts +13 -0
  17. package/dist/emitter-types/core.d.ts.map +1 -1
  18. package/dist/emitter-types/identifiers.d.ts +23 -0
  19. package/dist/emitter-types/identifiers.d.ts.map +1 -0
  20. package/dist/emitter-types/identifiers.js +164 -0
  21. package/dist/emitter-types/identifiers.js.map +1 -0
  22. package/dist/emitter-types/index.d.ts +2 -1
  23. package/dist/emitter-types/index.d.ts.map +1 -1
  24. package/dist/emitter-types/index.js +1 -0
  25. package/dist/emitter-types/index.js.map +1 -1
  26. package/dist/emitter.d.ts.map +1 -1
  27. package/dist/emitter.js +47 -0
  28. package/dist/emitter.js.map +1 -1
  29. package/dist/expression-emitter.d.ts.map +1 -1
  30. package/dist/expression-emitter.js +6 -4
  31. package/dist/expression-emitter.js.map +1 -1
  32. package/dist/expressions/access.d.ts.map +1 -1
  33. package/dist/expressions/access.js +57 -11
  34. package/dist/expressions/access.js.map +1 -1
  35. package/dist/expressions/calls.d.ts.map +1 -1
  36. package/dist/expressions/calls.js +117 -0
  37. package/dist/expressions/calls.js.map +1 -1
  38. package/dist/expressions/functions.js +1 -1
  39. package/dist/expressions/functions.js.map +1 -1
  40. package/dist/expressions/identifiers.d.ts.map +1 -1
  41. package/dist/expressions/identifiers.js +3 -2
  42. package/dist/expressions/identifiers.js.map +1 -1
  43. package/dist/expressions/operators.d.ts +23 -3
  44. package/dist/expressions/operators.d.ts.map +1 -1
  45. package/dist/expressions/operators.js +90 -9
  46. package/dist/expressions/operators.js.map +1 -1
  47. package/dist/expressions/other.d.ts +4 -0
  48. package/dist/expressions/other.d.ts.map +1 -1
  49. package/dist/expressions/other.js +6 -1
  50. package/dist/expressions/other.js.map +1 -1
  51. package/dist/golden-tests/runner.d.ts.map +1 -1
  52. package/dist/golden-tests/runner.js +1 -0
  53. package/dist/golden-tests/runner.js.map +1 -1
  54. package/dist/hierarchical-bindings.test.js +15 -5
  55. package/dist/hierarchical-bindings.test.js.map +1 -1
  56. package/dist/integration.test.js +3 -2
  57. package/dist/integration.test.js.map +1 -1
  58. package/dist/statements/classes/inline-types.d.ts.map +1 -1
  59. package/dist/statements/classes/inline-types.js +3 -1
  60. package/dist/statements/classes/inline-types.js.map +1 -1
  61. package/dist/statements/classes/members/methods.d.ts.map +1 -1
  62. package/dist/statements/classes/members/methods.js +8 -4
  63. package/dist/statements/classes/members/methods.js.map +1 -1
  64. package/dist/statements/classes/members/properties.d.ts.map +1 -1
  65. package/dist/statements/classes/members/properties.js +3 -2
  66. package/dist/statements/classes/members/properties.js.map +1 -1
  67. package/dist/statements/classes/parameters.d.ts.map +1 -1
  68. package/dist/statements/classes/parameters.js +4 -3
  69. package/dist/statements/classes/parameters.js.map +1 -1
  70. package/dist/statements/classes/properties.d.ts.map +1 -1
  71. package/dist/statements/classes/properties.js +5 -4
  72. package/dist/statements/classes/properties.js.map +1 -1
  73. package/dist/statements/control/loops.d.ts.map +1 -1
  74. package/dist/statements/control/loops.js +5 -2
  75. package/dist/statements/control/loops.js.map +1 -1
  76. package/dist/statements/declarations/classes.d.ts.map +1 -1
  77. package/dist/statements/declarations/classes.js +6 -4
  78. package/dist/statements/declarations/classes.js.map +1 -1
  79. package/dist/statements/declarations/enums.d.ts.map +1 -1
  80. package/dist/statements/declarations/enums.js +8 -4
  81. package/dist/statements/declarations/enums.js.map +1 -1
  82. package/dist/statements/declarations/functions.d.ts.map +1 -1
  83. package/dist/statements/declarations/functions.js +6 -2
  84. package/dist/statements/declarations/functions.js.map +1 -1
  85. package/dist/statements/declarations/interfaces.d.ts.map +1 -1
  86. package/dist/statements/declarations/interfaces.js +2 -1
  87. package/dist/statements/declarations/interfaces.js.map +1 -1
  88. package/dist/statements/declarations/type-aliases.d.ts.map +1 -1
  89. package/dist/statements/declarations/type-aliases.js +3 -2
  90. package/dist/statements/declarations/type-aliases.js.map +1 -1
  91. package/dist/statements/declarations/variables.d.ts.map +1 -1
  92. package/dist/statements/declarations/variables.js +7 -5
  93. package/dist/statements/declarations/variables.js.map +1 -1
  94. package/dist/types/parameters.test.js +4 -4
  95. package/dist/types/parameters.test.js.map +1 -1
  96. package/dist/types.d.ts +1 -1
  97. package/dist/types.d.ts.map +1 -1
  98. package/dist/types.js.map +1 -1
  99. package/package.json +1 -1
  100. package/dist/async-investigation.test.d.ts +0 -5
  101. package/dist/async-investigation.test.d.ts.map +0 -1
  102. package/dist/async-investigation.test.js +0 -239
  103. package/dist/async-investigation.test.js.map +0 -1
  104. package/dist/tests/emitter/expression-emission.test.d.ts +0 -6
  105. package/dist/tests/emitter/expression-emission.test.d.ts.map +0 -1
  106. package/dist/tests/emitter/expression-emission.test.js +0 -322
  107. package/dist/tests/emitter/expression-emission.test.js.map +0 -1
  108. package/dist/tests/emitter/import-handling.test.d.ts +0 -6
  109. package/dist/tests/emitter/import-handling.test.d.ts.map +0 -1
  110. package/dist/tests/emitter/import-handling.test.js +0 -76
  111. package/dist/tests/emitter/import-handling.test.js.map +0 -1
  112. package/dist/tests/emitter/module-generation.test.d.ts +0 -6
  113. package/dist/tests/emitter/module-generation.test.d.ts.map +0 -1
  114. package/dist/tests/emitter/module-generation.test.js +0 -147
  115. package/dist/tests/emitter/module-generation.test.js.map +0 -1
  116. package/dist/tests/emitter/statement-emission.test.d.ts +0 -6
  117. package/dist/tests/emitter/statement-emission.test.d.ts.map +0 -1
  118. package/dist/tests/emitter/statement-emission.test.js +0 -138
  119. package/dist/tests/emitter/statement-emission.test.js.map +0 -1
  120. package/dist/tests/emitter/type-emission.test.d.ts +0 -6
  121. package/dist/tests/emitter/type-emission.test.d.ts.map +0 -1
  122. package/dist/tests/emitter/type-emission.test.js +0 -109
  123. package/dist/tests/emitter/type-emission.test.js.map +0 -1
  124. package/dist/tests/generics/call-site-rewriting.test.d.ts +0 -6
  125. package/dist/tests/generics/call-site-rewriting.test.d.ts.map +0 -1
  126. package/dist/tests/generics/call-site-rewriting.test.js +0 -92
  127. package/dist/tests/generics/call-site-rewriting.test.js.map +0 -1
  128. package/dist/tests/generics/generic-classes.test.d.ts +0 -6
  129. package/dist/tests/generics/generic-classes.test.d.ts.map +0 -1
  130. package/dist/tests/generics/generic-classes.test.js +0 -55
  131. package/dist/tests/generics/generic-classes.test.js.map +0 -1
  132. package/dist/tests/generics/generic-functions.test.d.ts +0 -6
  133. package/dist/tests/generics/generic-functions.test.d.ts.map +0 -1
  134. package/dist/tests/generics/generic-functions.test.js +0 -275
  135. package/dist/tests/generics/generic-functions.test.js.map +0 -1
  136. package/dist/tests/generics/interfaces.test.d.ts +0 -6
  137. package/dist/tests/generics/interfaces.test.d.ts.map +0 -1
  138. package/dist/tests/generics/interfaces.test.js +0 -139
  139. package/dist/tests/generics/interfaces.test.js.map +0 -1
  140. package/dist/tests/generics/type-aliases.test.d.ts +0 -6
  141. package/dist/tests/generics/type-aliases.test.d.ts.map +0 -1
  142. package/dist/tests/generics/type-aliases.test.js +0 -124
  143. package/dist/tests/generics/type-aliases.test.js.map +0 -1
  144. package/dist/tests/hierarchical-bindings-full-pipeline.test.d.ts +0 -6
  145. package/dist/tests/hierarchical-bindings-full-pipeline.test.d.ts.map +0 -1
  146. package/dist/tests/hierarchical-bindings-full-pipeline.test.js +0 -202
  147. package/dist/tests/hierarchical-bindings-full-pipeline.test.js.map +0 -1
  148. package/dist/tests/ref-out-parameters.test.d.ts +0 -5
  149. package/dist/tests/ref-out-parameters.test.d.ts.map +0 -1
  150. package/dist/tests/ref-out-parameters.test.js +0 -136
  151. package/dist/tests/ref-out-parameters.test.js.map +0 -1
  152. package/dist/tests/structs/struct-emission.test.d.ts +0 -5
  153. package/dist/tests/structs/struct-emission.test.d.ts.map +0 -1
  154. package/dist/tests/structs/struct-emission.test.js +0 -165
  155. package/dist/tests/structs/struct-emission.test.js.map +0 -1
  156. package/dist/union.test.d.ts +0 -6
  157. package/dist/union.test.d.ts.map +0 -1
  158. package/dist/union.test.js +0 -367
  159. package/dist/union.test.js.map +0 -1
@@ -1,275 +0,0 @@
1
- /**
2
- * Tests for Generic Functions
3
- * Covers spec/15-generics.md §3-5 - Generic Functions
4
- */
5
- import { describe, it } from "mocha";
6
- import { expect } from "chai";
7
- import { emitModule } from "../../emitter.js";
8
- describe("Generic Functions (spec/15 §3-5)", () => {
9
- it("should emit generic function with single type parameter", () => {
10
- const module = {
11
- kind: "module",
12
- filePath: "/src/utils.ts",
13
- namespace: "MyApp",
14
- className: "utils",
15
- isStaticContainer: true,
16
- imports: [],
17
- body: [
18
- {
19
- kind: "functionDeclaration",
20
- name: "identity",
21
- typeParameters: [
22
- {
23
- kind: "typeParameter",
24
- name: "T",
25
- constraint: undefined,
26
- default: undefined,
27
- variance: undefined,
28
- isStructuralConstraint: false,
29
- },
30
- ],
31
- parameters: [
32
- {
33
- kind: "parameter",
34
- pattern: { kind: "identifierPattern", name: "value" },
35
- type: { kind: "referenceType", name: "T", typeArguments: [] },
36
- isOptional: false,
37
- isRest: false,
38
- passing: "value",
39
- },
40
- ],
41
- returnType: { kind: "referenceType", name: "T", typeArguments: [] },
42
- body: {
43
- kind: "blockStatement",
44
- statements: [
45
- {
46
- kind: "returnStatement",
47
- expression: { kind: "identifier", name: "value" },
48
- },
49
- ],
50
- },
51
- isExported: true,
52
- isAsync: false,
53
- isGenerator: false,
54
- },
55
- ],
56
- exports: [],
57
- };
58
- const result = emitModule(module);
59
- expect(result).to.include("public static T identity<T>(T value)");
60
- expect(result).to.include("return value");
61
- });
62
- it("should emit generic function with multiple type parameters", () => {
63
- const module = {
64
- kind: "module",
65
- filePath: "/src/utils.ts",
66
- namespace: "MyApp",
67
- className: "utils",
68
- isStaticContainer: true,
69
- imports: [],
70
- body: [
71
- {
72
- kind: "functionDeclaration",
73
- name: "pair",
74
- typeParameters: [
75
- {
76
- kind: "typeParameter",
77
- name: "T",
78
- constraint: undefined,
79
- default: undefined,
80
- variance: undefined,
81
- isStructuralConstraint: false,
82
- },
83
- {
84
- kind: "typeParameter",
85
- name: "U",
86
- constraint: undefined,
87
- default: undefined,
88
- variance: undefined,
89
- isStructuralConstraint: false,
90
- },
91
- ],
92
- parameters: [
93
- {
94
- kind: "parameter",
95
- pattern: { kind: "identifierPattern", name: "first" },
96
- type: { kind: "referenceType", name: "T", typeArguments: [] },
97
- isOptional: false,
98
- isRest: false,
99
- passing: "value",
100
- },
101
- {
102
- kind: "parameter",
103
- pattern: { kind: "identifierPattern", name: "second" },
104
- type: { kind: "referenceType", name: "U", typeArguments: [] },
105
- isOptional: false,
106
- isRest: false,
107
- passing: "value",
108
- },
109
- ],
110
- returnType: {
111
- kind: "arrayType",
112
- elementType: {
113
- kind: "unionType",
114
- types: [
115
- { kind: "referenceType", name: "T", typeArguments: [] },
116
- { kind: "referenceType", name: "U", typeArguments: [] },
117
- ],
118
- },
119
- },
120
- body: {
121
- kind: "blockStatement",
122
- statements: [],
123
- },
124
- isExported: true,
125
- isAsync: false,
126
- isGenerator: false,
127
- },
128
- ],
129
- exports: [],
130
- };
131
- const result = emitModule(module);
132
- expect(result).to.include("<T, U>");
133
- expect(result).to.include("pair");
134
- expect(result).to.include("T first");
135
- expect(result).to.include("U second");
136
- });
137
- it("should emit generic function with nominal constraint", () => {
138
- const module = {
139
- kind: "module",
140
- filePath: "/src/utils.ts",
141
- namespace: "MyApp",
142
- className: "utils",
143
- isStaticContainer: true,
144
- imports: [],
145
- body: [
146
- {
147
- kind: "functionDeclaration",
148
- name: "process",
149
- typeParameters: [
150
- {
151
- kind: "typeParameter",
152
- name: "T",
153
- constraint: {
154
- kind: "referenceType",
155
- name: "Comparable",
156
- typeArguments: [],
157
- },
158
- default: undefined,
159
- variance: undefined,
160
- isStructuralConstraint: false,
161
- },
162
- ],
163
- parameters: [
164
- {
165
- kind: "parameter",
166
- pattern: { kind: "identifierPattern", name: "item" },
167
- type: { kind: "referenceType", name: "T", typeArguments: [] },
168
- isOptional: false,
169
- isRest: false,
170
- passing: "value",
171
- },
172
- ],
173
- returnType: { kind: "voidType" },
174
- body: {
175
- kind: "blockStatement",
176
- statements: [],
177
- },
178
- isExported: true,
179
- isAsync: false,
180
- isGenerator: false,
181
- },
182
- ],
183
- exports: [],
184
- };
185
- const result = emitModule(module);
186
- expect(result).to.include("<T>");
187
- expect(result).to.include("where T : Comparable");
188
- });
189
- it("should emit generic function with structural constraint and adapter", () => {
190
- const module = {
191
- kind: "module",
192
- filePath: "/src/utils.ts",
193
- namespace: "MyApp",
194
- className: "utils",
195
- isStaticContainer: true,
196
- imports: [],
197
- body: [
198
- {
199
- kind: "functionDeclaration",
200
- name: "getId",
201
- typeParameters: [
202
- {
203
- kind: "typeParameter",
204
- name: "T",
205
- constraint: {
206
- kind: "objectType",
207
- members: [
208
- {
209
- kind: "propertySignature",
210
- name: "id",
211
- type: { kind: "primitiveType", name: "number" },
212
- isOptional: false,
213
- isReadonly: false,
214
- },
215
- ],
216
- },
217
- default: undefined,
218
- variance: undefined,
219
- isStructuralConstraint: true,
220
- structuralMembers: [
221
- {
222
- kind: "propertySignature",
223
- name: "id",
224
- type: { kind: "primitiveType", name: "number" },
225
- isOptional: false,
226
- isReadonly: false,
227
- },
228
- ],
229
- },
230
- ],
231
- parameters: [
232
- {
233
- kind: "parameter",
234
- pattern: { kind: "identifierPattern", name: "obj" },
235
- type: { kind: "referenceType", name: "T", typeArguments: [] },
236
- isOptional: false,
237
- isRest: false,
238
- passing: "value",
239
- },
240
- ],
241
- returnType: { kind: "primitiveType", name: "number" },
242
- body: {
243
- kind: "blockStatement",
244
- statements: [
245
- {
246
- kind: "returnStatement",
247
- expression: {
248
- kind: "memberAccess",
249
- object: { kind: "identifier", name: "obj" },
250
- property: "id",
251
- isComputed: false,
252
- isOptional: false,
253
- },
254
- },
255
- ],
256
- },
257
- isExported: true,
258
- isAsync: false,
259
- isGenerator: false,
260
- },
261
- ],
262
- exports: [],
263
- };
264
- const result = emitModule(module);
265
- // Should generate adapter interface
266
- expect(result).to.include("public interface __Constraint_T");
267
- expect(result).to.include("double id { get; }");
268
- // Should generate adapter wrapper class
269
- expect(result).to.include("public sealed class __Wrapper_T : __Constraint_T");
270
- expect(result).to.include("public double id { get; set; }");
271
- // Function should reference the constraint
272
- expect(result).to.include("where T : __Constraint_T");
273
- });
274
- });
275
- //# sourceMappingURL=generic-functions.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generic-functions.test.js","sourceRoot":"","sources":["../../../src/tests/generics/generic-functions.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Tests for Interfaces
3
- * Covers spec/16-types-and-interfaces.md §2 - Interfaces
4
- */
5
- export {};
6
- //# sourceMappingURL=interfaces.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.test.d.ts","sourceRoot":"","sources":["../../../src/tests/generics/interfaces.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,139 +0,0 @@
1
- /**
2
- * Tests for Interfaces
3
- * Covers spec/16-types-and-interfaces.md §2 - Interfaces
4
- */
5
- import { describe, it } from "mocha";
6
- import { expect } from "chai";
7
- import { emitModule } from "../../emitter.js";
8
- describe("Interfaces (spec/16 §2)", () => {
9
- it("should emit interface as C# class with auto-properties", () => {
10
- const module = {
11
- kind: "module",
12
- filePath: "/src/User.ts",
13
- namespace: "MyApp",
14
- className: "User",
15
- isStaticContainer: false,
16
- imports: [],
17
- body: [
18
- {
19
- kind: "interfaceDeclaration",
20
- name: "User",
21
- typeParameters: undefined,
22
- extends: [],
23
- isStruct: false,
24
- members: [
25
- {
26
- kind: "propertySignature",
27
- name: "id",
28
- type: { kind: "primitiveType", name: "number" },
29
- isOptional: false,
30
- isReadonly: false,
31
- },
32
- {
33
- kind: "propertySignature",
34
- name: "name",
35
- type: { kind: "primitiveType", name: "string" },
36
- isOptional: false,
37
- isReadonly: false,
38
- },
39
- {
40
- kind: "propertySignature",
41
- name: "active",
42
- type: { kind: "primitiveType", name: "boolean" },
43
- isOptional: true,
44
- isReadonly: false,
45
- },
46
- ],
47
- isExported: true,
48
- },
49
- ],
50
- exports: [],
51
- };
52
- const result = emitModule(module);
53
- // Should emit as C# class, not interface
54
- expect(result).to.include("public class User");
55
- expect(result).not.to.include("interface User");
56
- // Should have auto-properties
57
- expect(result).to.include("public double id { get; set; }");
58
- expect(result).to.include("public string name { get; set; }");
59
- // Optional property should be nullable
60
- expect(result).to.include("public bool? active { get; set; }");
61
- });
62
- it("should emit interface with readonly members", () => {
63
- const module = {
64
- kind: "module",
65
- filePath: "/src/Config.ts",
66
- namespace: "MyApp",
67
- className: "Config",
68
- isStaticContainer: false,
69
- imports: [],
70
- body: [
71
- {
72
- kind: "interfaceDeclaration",
73
- name: "Config",
74
- typeParameters: undefined,
75
- extends: [],
76
- isStruct: false,
77
- members: [
78
- {
79
- kind: "propertySignature",
80
- name: "apiUrl",
81
- type: { kind: "primitiveType", name: "string" },
82
- isOptional: false,
83
- isReadonly: true,
84
- },
85
- ],
86
- isExported: true,
87
- },
88
- ],
89
- exports: [],
90
- };
91
- const result = emitModule(module);
92
- // Readonly should use private set
93
- expect(result).to.include("public string apiUrl { get; }");
94
- });
95
- it("should emit generic interface", () => {
96
- const module = {
97
- kind: "module",
98
- filePath: "/src/Result.ts",
99
- namespace: "MyApp",
100
- className: "Result",
101
- isStaticContainer: true, // Changed to true to emit at top level
102
- imports: [],
103
- body: [
104
- {
105
- kind: "interfaceDeclaration",
106
- name: "Result",
107
- typeParameters: [
108
- {
109
- kind: "typeParameter",
110
- name: "T",
111
- constraint: undefined,
112
- default: undefined,
113
- variance: undefined,
114
- isStructuralConstraint: false,
115
- },
116
- ],
117
- extends: [],
118
- isStruct: false,
119
- members: [
120
- {
121
- kind: "propertySignature",
122
- name: "data",
123
- type: { kind: "referenceType", name: "T", typeArguments: [] },
124
- isOptional: false,
125
- isReadonly: false,
126
- },
127
- ],
128
- isExported: true,
129
- },
130
- ],
131
- exports: [],
132
- };
133
- const result = emitModule(module);
134
- // Allow for whitespace variations
135
- expect(result).to.match(/public\s+class\s+Result\s*<T>/);
136
- expect(result).to.include("public T data { get; set; }");
137
- });
138
- });
139
- //# sourceMappingURL=interfaces.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.test.js","sourceRoot":"","sources":["../../../src/tests/generics/interfaces.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Tests for Type Aliases
3
- * Covers spec/16-types-and-interfaces.md §3 - Type Aliases
4
- */
5
- export {};
6
- //# sourceMappingURL=type-aliases.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type-aliases.test.d.ts","sourceRoot":"","sources":["../../../src/tests/generics/type-aliases.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,124 +0,0 @@
1
- /**
2
- * Tests for Type Aliases
3
- * Covers spec/16-types-and-interfaces.md §3 - Type Aliases
4
- */
5
- import { describe, it } from "mocha";
6
- import { expect } from "chai";
7
- import { emitModule } from "../../emitter.js";
8
- describe("Type Aliases (spec/16 §3)", () => {
9
- it("should emit structural type alias as sealed class with __Alias suffix", () => {
10
- const module = {
11
- kind: "module",
12
- filePath: "/src/types.ts",
13
- namespace: "MyApp",
14
- className: "types",
15
- isStaticContainer: true,
16
- imports: [],
17
- body: [
18
- {
19
- kind: "typeAliasDeclaration",
20
- name: "Point",
21
- typeParameters: undefined,
22
- type: {
23
- kind: "objectType",
24
- members: [
25
- {
26
- kind: "propertySignature",
27
- name: "x",
28
- type: { kind: "primitiveType", name: "number" },
29
- isOptional: false,
30
- isReadonly: false,
31
- },
32
- {
33
- kind: "propertySignature",
34
- name: "y",
35
- type: { kind: "primitiveType", name: "number" },
36
- isOptional: false,
37
- isReadonly: false,
38
- },
39
- ],
40
- },
41
- isStruct: false,
42
- isExported: true,
43
- },
44
- ],
45
- exports: [],
46
- };
47
- const result = emitModule(module);
48
- expect(result).to.include("public sealed class Point__Alias");
49
- expect(result).to.include("public double x { get; set; }");
50
- expect(result).to.include("public double y { get; set; }");
51
- });
52
- it("should emit non-structural type alias as comment", () => {
53
- const module = {
54
- kind: "module",
55
- filePath: "/src/types.ts",
56
- namespace: "MyApp",
57
- className: "types",
58
- isStaticContainer: true,
59
- imports: [],
60
- body: [
61
- {
62
- kind: "typeAliasDeclaration",
63
- name: "ID",
64
- typeParameters: undefined,
65
- type: { kind: "primitiveType", name: "number" },
66
- isStruct: false,
67
- isExported: true,
68
- },
69
- ],
70
- exports: [],
71
- };
72
- const result = emitModule(module);
73
- expect(result).to.include("// type ID = double");
74
- });
75
- it("should emit recursive type alias with self-reference", () => {
76
- const module = {
77
- kind: "module",
78
- filePath: "/src/types.ts",
79
- namespace: "MyApp",
80
- className: "types",
81
- isStaticContainer: true,
82
- imports: [],
83
- body: [
84
- {
85
- kind: "typeAliasDeclaration",
86
- name: "Node",
87
- typeParameters: undefined,
88
- type: {
89
- kind: "objectType",
90
- members: [
91
- {
92
- kind: "propertySignature",
93
- name: "name",
94
- type: { kind: "primitiveType", name: "string" },
95
- isOptional: false,
96
- isReadonly: false,
97
- },
98
- {
99
- kind: "propertySignature",
100
- name: "next",
101
- type: {
102
- kind: "referenceType",
103
- name: "Node",
104
- typeArguments: [],
105
- },
106
- isOptional: true,
107
- isReadonly: false,
108
- },
109
- ],
110
- },
111
- isStruct: false,
112
- isExported: true,
113
- },
114
- ],
115
- exports: [],
116
- };
117
- const result = emitModule(module);
118
- expect(result).to.include("public sealed class Node__Alias");
119
- expect(result).to.include("public string name { get; set; } = default!;");
120
- // Self-reference should be nullable
121
- expect(result).to.include("public Node? next { get; set; } = default!;");
122
- });
123
- });
124
- //# sourceMappingURL=type-aliases.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type-aliases.test.js","sourceRoot":"","sources":["../../../src/tests/generics/type-aliases.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Full pipeline test: TypeScript -> IR -> C#
3
- * Tests hierarchical bindings end-to-end
4
- */
5
- export {};
6
- //# sourceMappingURL=hierarchical-bindings-full-pipeline.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hierarchical-bindings-full-pipeline.test.d.ts","sourceRoot":"","sources":["../../src/tests/hierarchical-bindings-full-pipeline.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}