@alloy-js/csharp 0.18.0-dev.23 → 0.18.0-dev.3

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 (160) hide show
  1. package/dist/src/components/Class.d.ts +26 -0
  2. package/dist/src/components/Class.d.ts.map +1 -0
  3. package/dist/src/components/{ClassDeclaration.js → Class.js} +38 -64
  4. package/dist/src/components/ClassMethod.d.ts +5 -26
  5. package/dist/src/components/ClassMethod.d.ts.map +1 -1
  6. package/dist/src/components/ClassMethod.js +9 -27
  7. package/dist/src/components/Enum.d.ts +15 -0
  8. package/dist/src/components/Enum.d.ts.map +1 -0
  9. package/dist/src/components/{EnumDeclaration.js → Enum.js} +5 -25
  10. package/dist/src/components/Parameters.d.ts +13 -0
  11. package/dist/src/components/Parameters.d.ts.map +1 -0
  12. package/dist/src/components/Parameters.js +34 -0
  13. package/dist/src/components/SourceFile.d.ts.map +1 -1
  14. package/dist/src/components/SourceFile.js +0 -1
  15. package/dist/src/components/index.d.ts +4 -13
  16. package/dist/src/components/index.d.ts.map +1 -1
  17. package/dist/src/components/index.js +5 -14
  18. package/dist/src/components/stc/index.d.ts +2 -2
  19. package/dist/src/components/stc/index.d.ts.map +1 -1
  20. package/dist/src/components/stc/index.js +2 -2
  21. package/dist/src/modifiers.d.ts +4 -10
  22. package/dist/src/modifiers.d.ts.map +1 -1
  23. package/dist/src/modifiers.js +32 -9
  24. package/dist/src/name-policy.d.ts +1 -1
  25. package/dist/src/name-policy.d.ts.map +1 -1
  26. package/dist/src/name-policy.js +0 -2
  27. package/dist/test/class-method.test.js +14 -37
  28. package/dist/test/class.test.d.ts +2 -0
  29. package/dist/test/class.test.d.ts.map +1 -0
  30. package/dist/test/class.test.js +298 -0
  31. package/dist/test/enum.test.js +12 -12
  32. package/dist/test/namespace.test.js +8 -8
  33. package/dist/test/projectdirectory.test.d.ts +2 -0
  34. package/dist/test/projectdirectory.test.d.ts.map +1 -0
  35. package/dist/test/{project-directory.test.js → projectdirectory.test.js} +8 -8
  36. package/dist/test/sourcefile.test.js +4 -4
  37. package/dist/test/using.test.js +9 -9
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +3 -4
  40. package/src/components/Class.tsx +149 -0
  41. package/src/components/ClassMethod.tsx +15 -54
  42. package/src/components/{EnumDeclaration.tsx → Enum.tsx} +6 -30
  43. package/src/components/Parameters.tsx +51 -0
  44. package/src/components/SourceFile.tsx +0 -1
  45. package/src/components/index.ts +4 -13
  46. package/src/components/stc/index.ts +2 -2
  47. package/src/modifiers.ts +42 -25
  48. package/src/name-policy.ts +0 -5
  49. package/temp/api.json +715 -5284
  50. package/test/class-method.test.tsx +14 -24
  51. package/test/class.test.tsx +292 -0
  52. package/test/enum.test.tsx +11 -11
  53. package/test/namespace.test.tsx +4 -4
  54. package/test/{project-directory.test.tsx → projectdirectory.test.tsx} +4 -4
  55. package/test/sourcefile.test.tsx +2 -2
  56. package/test/using.test.tsx +9 -9
  57. package/vitest.config.ts +0 -3
  58. package/dist/src/components/ClassDeclaration.d.ts +0 -74
  59. package/dist/src/components/ClassDeclaration.d.ts.map +0 -1
  60. package/dist/src/components/EnumDeclaration.d.ts +0 -34
  61. package/dist/src/components/EnumDeclaration.d.ts.map +0 -1
  62. package/dist/src/components/doc/comment.d.ts +0 -70
  63. package/dist/src/components/doc/comment.d.ts.map +0 -1
  64. package/dist/src/components/doc/comment.js +0 -88
  65. package/dist/src/components/doc/comment.test.d.ts +0 -2
  66. package/dist/src/components/doc/comment.test.d.ts.map +0 -1
  67. package/dist/src/components/doc/comment.test.js +0 -348
  68. package/dist/src/components/doc/from-markdown.d.ts +0 -6
  69. package/dist/src/components/doc/from-markdown.d.ts.map +0 -1
  70. package/dist/src/components/doc/from-markdown.js +0 -58
  71. package/dist/src/components/doc/from-markdown.test.d.ts +0 -2
  72. package/dist/src/components/doc/from-markdown.test.d.ts.map +0 -1
  73. package/dist/src/components/doc/from-markdown.test.js +0 -83
  74. package/dist/src/components/interface/declaration.d.ts +0 -47
  75. package/dist/src/components/interface/declaration.d.ts.map +0 -1
  76. package/dist/src/components/interface/declaration.js +0 -77
  77. package/dist/src/components/interface/declaration.test.d.ts +0 -2
  78. package/dist/src/components/interface/declaration.test.d.ts.map +0 -1
  79. package/dist/src/components/interface/declaration.test.js +0 -153
  80. package/dist/src/components/interface/method.d.ts +0 -32
  81. package/dist/src/components/interface/method.d.ts.map +0 -1
  82. package/dist/src/components/interface/method.js +0 -68
  83. package/dist/src/components/interface/method.test.d.ts +0 -2
  84. package/dist/src/components/interface/method.test.d.ts.map +0 -1
  85. package/dist/src/components/interface/method.test.js +0 -279
  86. package/dist/src/components/interface/property.d.ts +0 -38
  87. package/dist/src/components/interface/property.d.ts.map +0 -1
  88. package/dist/src/components/interface/property.js +0 -67
  89. package/dist/src/components/interface/property.test.d.ts +0 -2
  90. package/dist/src/components/interface/property.test.d.ts.map +0 -1
  91. package/dist/src/components/interface/property.test.js +0 -165
  92. package/dist/src/components/parameters/parameters.d.ts +0 -19
  93. package/dist/src/components/parameters/parameters.d.ts.map +0 -1
  94. package/dist/src/components/parameters/parameters.js +0 -43
  95. package/dist/src/components/property/property.d.ts +0 -62
  96. package/dist/src/components/property/property.d.ts.map +0 -1
  97. package/dist/src/components/property/property.js +0 -70
  98. package/dist/src/components/property/property.test.d.ts +0 -2
  99. package/dist/src/components/property/property.test.d.ts.map +0 -1
  100. package/dist/src/components/property/property.test.js +0 -218
  101. package/dist/src/components/record/declaration.d.ts +0 -35
  102. package/dist/src/components/record/declaration.d.ts.map +0 -1
  103. package/dist/src/components/record/declaration.js +0 -90
  104. package/dist/src/components/record/declaration.test.d.ts +0 -2
  105. package/dist/src/components/record/declaration.test.d.ts.map +0 -1
  106. package/dist/src/components/record/declaration.test.js +0 -94
  107. package/dist/src/components/type-parameters/type-parameter-constraints.d.ts +0 -8
  108. package/dist/src/components/type-parameters/type-parameter-constraints.d.ts.map +0 -1
  109. package/dist/src/components/type-parameters/type-parameter-constraints.js +0 -44
  110. package/dist/src/components/type-parameters/type-parameter-constraints.test.d.ts +0 -2
  111. package/dist/src/components/type-parameters/type-parameter-constraints.test.d.ts.map +0 -1
  112. package/dist/src/components/type-parameters/type-parameter-constraints.test.js +0 -67
  113. package/dist/src/components/type-parameters/type-parameter.d.ts +0 -20
  114. package/dist/src/components/type-parameters/type-parameter.d.ts.map +0 -1
  115. package/dist/src/components/type-parameters/type-parameter.js +0 -22
  116. package/dist/src/components/type-parameters/type-parameters.d.ts +0 -17
  117. package/dist/src/components/type-parameters/type-parameters.d.ts.map +0 -1
  118. package/dist/src/components/type-parameters/type-parameters.js +0 -54
  119. package/dist/src/components/type-parameters/type-parameters.test.d.ts +0 -2
  120. package/dist/src/components/type-parameters/type-parameters.test.d.ts.map +0 -1
  121. package/dist/src/components/type-parameters/type-parameters.test.js +0 -48
  122. package/dist/src/components/var/declaration.d.ts +0 -35
  123. package/dist/src/components/var/declaration.d.ts.map +0 -1
  124. package/dist/src/components/var/declaration.js +0 -40
  125. package/dist/src/components/var/declaration.test.d.ts +0 -2
  126. package/dist/src/components/var/declaration.test.d.ts.map +0 -1
  127. package/dist/src/components/var/declaration.test.js +0 -73
  128. package/dist/test/class-declaration.test.d.ts +0 -2
  129. package/dist/test/class-declaration.test.d.ts.map +0 -1
  130. package/dist/test/class-declaration.test.js +0 -463
  131. package/dist/test/project-directory.test.d.ts +0 -2
  132. package/dist/test/project-directory.test.d.ts.map +0 -1
  133. package/dist/test/vitest.setup.d.ts +0 -2
  134. package/dist/test/vitest.setup.d.ts.map +0 -1
  135. package/dist/test/vitest.setup.js +0 -1
  136. package/src/components/ClassDeclaration.tsx +0 -213
  137. package/src/components/doc/comment.test.tsx +0 -337
  138. package/src/components/doc/comment.tsx +0 -152
  139. package/src/components/doc/from-markdown.test.tsx +0 -103
  140. package/src/components/doc/from-markdown.tsx +0 -58
  141. package/src/components/interface/declaration.test.tsx +0 -143
  142. package/src/components/interface/declaration.tsx +0 -105
  143. package/src/components/interface/method.test.tsx +0 -278
  144. package/src/components/interface/method.tsx +0 -102
  145. package/src/components/interface/property.test.tsx +0 -144
  146. package/src/components/interface/property.tsx +0 -107
  147. package/src/components/parameters/parameters.tsx +0 -74
  148. package/src/components/property/property.test.tsx +0 -188
  149. package/src/components/property/property.tsx +0 -152
  150. package/src/components/record/declaration.test.tsx +0 -73
  151. package/src/components/record/declaration.tsx +0 -109
  152. package/src/components/type-parameters/type-parameter-constraints.test.tsx +0 -93
  153. package/src/components/type-parameters/type-parameter-constraints.tsx +0 -46
  154. package/src/components/type-parameters/type-parameter.tsx +0 -35
  155. package/src/components/type-parameters/type-parameters.test.tsx +0 -46
  156. package/src/components/type-parameters/type-parameters.tsx +0 -63
  157. package/src/components/var/declaration.test.tsx +0 -59
  158. package/src/components/var/declaration.tsx +0 -47
  159. package/test/class-declaration.test.tsx +0 -418
  160. package/test/vitest.setup.ts +0 -1
@@ -1,13 +1,13 @@
1
1
  import { Children } from "@alloy-js/core/jsx-runtime";
2
2
  import { describe, expect, it } from "vitest";
3
- import { ClassDeclaration, ClassMethod } from "../src/index.js";
3
+ import { Class, ClassMethod } from "../src/index.js";
4
4
  import { TestNamespace } from "./utils.jsx";
5
5
 
6
6
  const Wrapper = (props: { children: Children }) => (
7
7
  <TestNamespace>
8
- <ClassDeclaration public name="TestClass">
8
+ <Class accessModifier="public" name="TestClass">
9
9
  {props.children}
10
- </ClassDeclaration>
10
+ </Class>
11
11
  </TestNamespace>
12
12
  );
13
13
 
@@ -18,7 +18,7 @@ describe("modifiers", () => {
18
18
  (accessModifier) => {
19
19
  expect(
20
20
  <Wrapper>
21
- <ClassMethod {...{ [accessModifier]: true }} name="MethodOne" />
21
+ <ClassMethod accessModifier={accessModifier} name="MethodOne" />
22
22
  </Wrapper>,
23
23
  ).toRenderTo(`
24
24
  public class TestClass
@@ -36,7 +36,7 @@ describe("modifiers", () => {
36
36
  (methodModifier) => {
37
37
  expect(
38
38
  <Wrapper>
39
- <ClassMethod {...{ [methodModifier]: true }} name="MethodOne" />
39
+ <ClassMethod methodModifier={methodModifier} name="MethodOne" />
40
40
  </Wrapper>,
41
41
  ).toRenderTo(`
42
42
  public class TestClass
@@ -50,7 +50,7 @@ describe("modifiers", () => {
50
50
  it("abstract exclude body", () => {
51
51
  expect(
52
52
  <Wrapper>
53
- <ClassMethod abstract name="MethodOne" />
53
+ <ClassMethod methodModifier="abstract" name="MethodOne" />
54
54
  </Wrapper>,
55
55
  ).toRenderTo(`
56
56
  public class TestClass
@@ -77,7 +77,13 @@ describe("modifiers", () => {
77
77
  it("combine modifiers", () => {
78
78
  expect(
79
79
  <Wrapper>
80
- <ClassMethod async returns="Task" public abstract name="MethodOne" />
80
+ <ClassMethod
81
+ async
82
+ returns="Task"
83
+ accessModifier="public"
84
+ methodModifier="abstract"
85
+ name="MethodOne"
86
+ />
81
87
  </Wrapper>,
82
88
  ).toRenderTo(`
83
89
  public class TestClass
@@ -114,7 +120,7 @@ it("defines params and return type", () => {
114
120
  const res = (
115
121
  <Wrapper>
116
122
  <ClassMethod
117
- public
123
+ accessModifier="public"
118
124
  name="MethodOne"
119
125
  parameters={params}
120
126
  returns="string"
@@ -129,19 +135,3 @@ it("defines params and return type", () => {
129
135
  }
130
136
  `);
131
137
  });
132
-
133
- it("specify doc comment", () => {
134
- expect(
135
- <TestNamespace>
136
- <ClassDeclaration name="Test">
137
- <ClassMethod name="Method" doc="This is a test" />
138
- </ClassDeclaration>
139
- </TestNamespace>,
140
- ).toRenderTo(`
141
- class Test
142
- {
143
- /// This is a test
144
- void Method() {}
145
- }
146
- `);
147
- });
@@ -0,0 +1,292 @@
1
+ import * as core from "@alloy-js/core";
2
+ import * as coretest from "@alloy-js/core/testing";
3
+ import { expect, it } from "vitest";
4
+ import * as csharp from "../src/index.js";
5
+ import * as utils from "./utils.js";
6
+
7
+ it("declares class with no members", () => {
8
+ const res = utils.toSourceText(
9
+ <csharp.Class accessModifier="public" name="TestClass" />,
10
+ );
11
+
12
+ expect(res).toBe(coretest.d`
13
+ namespace TestCode
14
+ {
15
+ public class TestClass;
16
+ }
17
+ `);
18
+ });
19
+
20
+ it("declares class with some members", () => {
21
+ const res = utils.toSourceText(
22
+ <csharp.Class accessModifier="public" name="TestClass">
23
+ <core.StatementList>
24
+ <csharp.ClassMember
25
+ accessModifier="public"
26
+ name="MemberOne"
27
+ type="string"
28
+ />
29
+ <csharp.ClassMember
30
+ accessModifier="private"
31
+ name="MemberTwo"
32
+ type="int"
33
+ />
34
+ </core.StatementList>
35
+ </csharp.Class>,
36
+ );
37
+
38
+ expect(res).toBe(coretest.d`
39
+ namespace TestCode
40
+ {
41
+ public class TestClass
42
+ {
43
+ public string MemberOne;
44
+ private int memberTwo;
45
+ }
46
+ }
47
+ `);
48
+ });
49
+
50
+ it("declares class with some methods", () => {
51
+ const res = utils.toSourceText(
52
+ <csharp.Class accessModifier="public" name="TestClass">
53
+ <core.List>
54
+ <csharp.ClassMethod accessModifier="public" name="MethodOne" />
55
+ <csharp.ClassMethod
56
+ accessModifier="private"
57
+ methodModifier="virtual"
58
+ name="MethodTwo"
59
+ />
60
+ </core.List>
61
+ </csharp.Class>,
62
+ );
63
+
64
+ expect(res).toBe(coretest.d`
65
+ namespace TestCode
66
+ {
67
+ public class TestClass
68
+ {
69
+ public void MethodOne() {}
70
+ private virtual void MethodTwo() {}
71
+ }
72
+ }
73
+ `);
74
+ });
75
+
76
+ it("uses refkeys for members, params, and return type", () => {
77
+ const inputTypeRefkey = core.refkey();
78
+ const testResultTypeRefkey = core.refkey();
79
+ const enumTypeRefkey = core.refkey();
80
+
81
+ const params = [
82
+ {
83
+ name: "IntParam",
84
+ type: "int",
85
+ },
86
+ {
87
+ name: "BodyParam",
88
+ type: inputTypeRefkey,
89
+ },
90
+ ];
91
+
92
+ const res = core.render(
93
+ <core.Output namePolicy={csharp.createCSharpNamePolicy()}>
94
+ <csharp.Namespace name="TestCode">
95
+ <csharp.SourceFile path="Test.cs">
96
+ <csharp.Enum
97
+ accessModifier="public"
98
+ name="TestEnum"
99
+ refkey={enumTypeRefkey}
100
+ >
101
+ <core.List comma hardline>
102
+ <csharp.EnumMember name="One" />
103
+ <csharp.EnumMember name="Two" />
104
+ </core.List>
105
+ </csharp.Enum>
106
+ <hbr />
107
+ <csharp.Class
108
+ accessModifier="public"
109
+ name="TestInput"
110
+ refkey={inputTypeRefkey}
111
+ />
112
+ <hbr />
113
+ <csharp.Class
114
+ accessModifier="public"
115
+ name="TestResult"
116
+ refkey={testResultTypeRefkey}
117
+ />
118
+ <hbr />
119
+ <csharp.Class accessModifier="public" name="TestClass">
120
+ <csharp.ClassMember
121
+ accessModifier="private"
122
+ name="MemberOne"
123
+ type={enumTypeRefkey}
124
+ />
125
+ ;
126
+ <hbr />
127
+ <csharp.ClassMethod
128
+ accessModifier="public"
129
+ name="MethodOne"
130
+ parameters={params}
131
+ returns={testResultTypeRefkey}
132
+ >
133
+ return new {testResultTypeRefkey}();
134
+ </csharp.ClassMethod>
135
+ </csharp.Class>
136
+ </csharp.SourceFile>
137
+ </csharp.Namespace>
138
+ </core.Output>,
139
+ );
140
+
141
+ expect(res.contents[0].contents).toBe(coretest.d`
142
+ namespace TestCode
143
+ {
144
+ public enum TestEnum
145
+ {
146
+ One,
147
+ Two
148
+ }
149
+ public class TestInput;
150
+ public class TestResult;
151
+ public class TestClass
152
+ {
153
+ private TestEnum memberOne;
154
+ public TestResult MethodOne(int intParam, TestInput bodyParam)
155
+ {
156
+ return new TestResult();
157
+ }
158
+ }
159
+ }
160
+ `);
161
+ });
162
+
163
+ it("declares class with generic parameters", () => {
164
+ const typeParameters = {
165
+ T: core.refkey(),
166
+ U: core.refkey(),
167
+ };
168
+
169
+ const res = utils.toSourceText(
170
+ <csharp.Class
171
+ accessModifier="public"
172
+ name="TestClass"
173
+ typeParameters={typeParameters}
174
+ >
175
+ <csharp.ClassMember
176
+ accessModifier="public"
177
+ name="memberOne"
178
+ type={typeParameters.T}
179
+ />
180
+ ;<hbr />
181
+ <csharp.ClassMember
182
+ accessModifier="private"
183
+ name="memberTwo"
184
+ type={typeParameters.U}
185
+ />
186
+ ;
187
+ </csharp.Class>,
188
+ );
189
+
190
+ expect(res).toBe(coretest.d`
191
+ namespace TestCode
192
+ {
193
+ public class TestClass<T, U>
194
+ {
195
+ public T MemberOne;
196
+ private U memberTwo;
197
+ }
198
+ }
199
+ `);
200
+ });
201
+
202
+ it("declares class with invalid members", () => {
203
+ const decl = (
204
+ <csharp.Class accessModifier="public" name="TestClass">
205
+ <csharp.EnumMember name="One" />,<hbr />
206
+ <csharp.EnumMember name="Two" />
207
+ </csharp.Class>
208
+ );
209
+
210
+ expect(() => utils.toSourceText(decl)).toThrow(
211
+ "can't define an enum member outside of an enum-decl scope",
212
+ );
213
+ });
214
+
215
+ it("declares class with constructor", () => {
216
+ const res = utils.toSourceText(
217
+ <csharp.Class accessModifier="public" name="TestClass">
218
+ <csharp.ClassConstructor accessModifier="public" />
219
+ </csharp.Class>,
220
+ );
221
+
222
+ expect(res).toBe(coretest.d`
223
+ namespace TestCode
224
+ {
225
+ public class TestClass
226
+ {
227
+ public TestClass() {}
228
+ }
229
+ }
230
+ `);
231
+ });
232
+
233
+ it("declares class with constructor params and assigns values to fields", () => {
234
+ const thisNameRefkey = core.refkey();
235
+ const thisSizeRefkey = core.refkey();
236
+ const paramNameRefkey = core.refkey();
237
+ const paramSizeRefkey = core.refkey();
238
+
239
+ const ctorParams = [
240
+ {
241
+ name: "name",
242
+ type: "string",
243
+ refkey: paramNameRefkey,
244
+ },
245
+ {
246
+ name: "size",
247
+ type: "int",
248
+ refkey: paramSizeRefkey,
249
+ },
250
+ ];
251
+
252
+ const res = utils.toSourceText(
253
+ <csharp.Class accessModifier="public" name="TestClass">
254
+ <csharp.ClassMember
255
+ accessModifier="private"
256
+ name="name"
257
+ type="string"
258
+ refkey={thisNameRefkey}
259
+ />
260
+ ;<hbr />
261
+ <csharp.ClassMember
262
+ accessModifier="private"
263
+ name="size"
264
+ type="int"
265
+ refkey={thisSizeRefkey}
266
+ />
267
+ ;<hbr />
268
+ <csharp.ClassConstructor accessModifier="public" parameters={ctorParams}>
269
+ {thisNameRefkey} = {paramNameRefkey};<hbr />
270
+ {thisSizeRefkey} = {paramSizeRefkey};
271
+ </csharp.ClassConstructor>
272
+ </csharp.Class>,
273
+ );
274
+
275
+ // TODO: assignments to members should have this. prefix
276
+ // e.g. this.name = name;
277
+ expect(res).toBe(coretest.d`
278
+ namespace TestCode
279
+ {
280
+ public class TestClass
281
+ {
282
+ private string name;
283
+ private int size;
284
+ public TestClass(string name, int size)
285
+ {
286
+ name = name;
287
+ size = size;
288
+ }
289
+ }
290
+ }
291
+ `);
292
+ });
@@ -6,7 +6,7 @@ import * as utils from "./utils.js";
6
6
 
7
7
  it("declares enum with no members", () => {
8
8
  const res = utils.toSourceText(
9
- <csharp.EnumDeclaration public name="TestEnum" />,
9
+ <csharp.Enum accessModifier="public" name="TestEnum" />,
10
10
  );
11
11
 
12
12
  expect(res).toBe(coretest.d`
@@ -19,10 +19,10 @@ it("declares enum with no members", () => {
19
19
 
20
20
  it("declares enum with members", () => {
21
21
  const res = utils.toSourceText(
22
- <csharp.EnumDeclaration public name="TestEnum">
22
+ <csharp.Enum accessModifier="public" name="TestEnum">
23
23
  <csharp.EnumMember name="One" />,<hbr />
24
24
  <csharp.EnumMember name="Two" />
25
- </csharp.EnumDeclaration>,
25
+ </csharp.Enum>,
26
26
  );
27
27
 
28
28
  expect(res).toBe(coretest.d`
@@ -39,10 +39,10 @@ it("declares enum with members", () => {
39
39
 
40
40
  it("applies naming policy to enum and members", () => {
41
41
  const res = utils.toSourceText(
42
- <csharp.EnumDeclaration public name="testEnum">
42
+ <csharp.Enum accessModifier="public" name="testEnum">
43
43
  <csharp.EnumMember name="one" />,<hbr />
44
44
  <csharp.EnumMember name="two" />
45
- </csharp.EnumDeclaration>,
45
+ </csharp.Enum>,
46
46
  );
47
47
 
48
48
  expect(res).toBe(coretest.d`
@@ -65,10 +65,10 @@ it("can reference things by refkey", () => {
65
65
  <core.Output>
66
66
  <csharp.Namespace name="TestCode">
67
67
  <csharp.SourceFile path="Test.cs">
68
- <csharp.EnumDeclaration public name="TestEnum" refkey={enumRK}>
68
+ <csharp.Enum accessModifier="public" name="TestEnum" refkey={enumRK}>
69
69
  <csharp.EnumMember name="One" />,<hbr />
70
70
  <csharp.EnumMember name="Two" refkey={twoRK} />
71
- </csharp.EnumDeclaration>
71
+ </csharp.Enum>
72
72
  <hbr />
73
73
  {enumRK};<hbr />
74
74
  {twoRK};
@@ -99,19 +99,19 @@ it("can reference things by refkey across files", () => {
99
99
  <core.Output>
100
100
  <csharp.Namespace name="TestCode">
101
101
  <csharp.SourceFile path="Test.cs">
102
- <csharp.EnumDeclaration public name="TestEnum">
102
+ <csharp.Enum accessModifier="public" name="TestEnum">
103
103
  <csharp.EnumMember name="One" />,<hbr />
104
104
  <csharp.EnumMember name="Two" />
105
- </csharp.EnumDeclaration>
105
+ </csharp.Enum>
106
106
  <hbr />
107
107
  {enumRK};<hbr />
108
108
  {barRK};
109
109
  </csharp.SourceFile>
110
110
  <csharp.SourceFile path="Other.cs">
111
- <csharp.EnumDeclaration public name="OtherEnum" refkey={enumRK}>
111
+ <csharp.Enum accessModifier="public" name="OtherEnum" refkey={enumRK}>
112
112
  <csharp.EnumMember name="Foo" />,<hbr />
113
113
  <csharp.EnumMember name="Bar" refkey={barRK} />
114
- </csharp.EnumDeclaration>
114
+ </csharp.Enum>
115
115
  <hbr />
116
116
  {enumRK};<hbr />
117
117
  {barRK};
@@ -8,18 +8,18 @@ it("defines multiple namespaces and source files with unique content", () => {
8
8
  <core.Output>
9
9
  <csharp.Namespace name="Namespace1">
10
10
  <csharp.SourceFile path="Model1.cs">
11
- <csharp.ClassDeclaration public name="Model1" />
11
+ <csharp.Class accessModifier="public" name="Model1" />
12
12
  </csharp.SourceFile>
13
13
  <csharp.SourceFile path="Model2.cs">
14
- <csharp.ClassDeclaration public name="Model2" />
14
+ <csharp.Class accessModifier="public" name="Model2" />
15
15
  </csharp.SourceFile>
16
16
  </csharp.Namespace>
17
17
  <csharp.Namespace name="Namespace2">
18
18
  <csharp.SourceFile path="Model3.cs">
19
- <csharp.ClassDeclaration public name="Model3" />
19
+ <csharp.Class accessModifier="public" name="Model3" />
20
20
  </csharp.SourceFile>
21
21
  <csharp.SourceFile path="Model4.cs">
22
- <csharp.ClassDeclaration public name="Model4" />
22
+ <csharp.Class accessModifier="public" name="Model4" />
23
23
  </csharp.SourceFile>
24
24
  </csharp.Namespace>
25
25
  </core.Output>,
@@ -14,10 +14,10 @@ it("defines a project directory file with multiple source files", () => {
14
14
  >
15
15
  <csharp.Namespace name="TestCode">
16
16
  <csharp.SourceFile path="Test1.cs">
17
- <csharp.ClassDeclaration public name="TestClass1" />
17
+ <csharp.Class accessModifier="public" name="TestClass1" />
18
18
  </csharp.SourceFile>
19
19
  <csharp.SourceFile path="Test2.cs">
20
- <csharp.ClassDeclaration public name="TestClass2" />
20
+ <csharp.Class accessModifier="public" name="TestClass2" />
21
21
  </csharp.SourceFile>
22
22
  </csharp.Namespace>
23
23
  </csharp.ProjectDirectory>
@@ -71,10 +71,10 @@ it("defines a project directory file with multiple source files and a custom TFM
71
71
  >
72
72
  <csharp.Namespace name="TestCode">
73
73
  <csharp.SourceFile path="Test1.cs">
74
- <csharp.ClassDeclaration public name="TestClass1" />
74
+ <csharp.Class accessModifier="public" name="TestClass1" />
75
75
  </csharp.SourceFile>
76
76
  <csharp.SourceFile path="Test2.cs">
77
- <csharp.ClassDeclaration public name="TestClass2" />
77
+ <csharp.Class accessModifier="public" name="TestClass2" />
78
78
  </csharp.SourceFile>
79
79
  </csharp.Namespace>
80
80
  </csharp.ProjectDirectory>
@@ -8,10 +8,10 @@ it("defines multiple source files with unique content", () => {
8
8
  <core.Output>
9
9
  <csharp.Namespace name="TestCode">
10
10
  <csharp.SourceFile path="Test1.cs">
11
- <csharp.ClassDeclaration public name="TestClass1" />
11
+ <csharp.Class accessModifier="public" name="TestClass1" />
12
12
  </csharp.SourceFile>
13
13
  <csharp.SourceFile path="Test2.cs">
14
- <csharp.ClassDeclaration public name="TestClass2" />
14
+ <csharp.Class accessModifier="public" name="TestClass2" />
15
15
  </csharp.SourceFile>
16
16
  </csharp.Namespace>
17
17
  </core.Output>,
@@ -52,34 +52,34 @@ it("adds using statement across namespaces", () => {
52
52
  <core.Output namePolicy={csharp.createCSharpNamePolicy()}>
53
53
  <csharp.Namespace name="Models">
54
54
  <csharp.SourceFile path="Models.cs">
55
- <csharp.ClassDeclaration
56
- public
55
+ <csharp.Class
56
+ accessModifier="public"
57
57
  name="Input"
58
58
  refkey={inputTypeRefkey}
59
59
  />
60
60
  <hbr />
61
- <csharp.ClassDeclaration
62
- public
61
+ <csharp.Class
62
+ accessModifier="public"
63
63
  name="Output"
64
64
  refkey={outputTypeRefkey}
65
65
  />
66
66
  <hbr />
67
- <csharp.EnumDeclaration public name="TestEnum">
67
+ <csharp.Enum accessModifier="public" name="TestEnum">
68
68
  <csharp.EnumMember name="One" />,<hbr />
69
69
  <csharp.EnumMember name="Two" refkey={twoValRefkey} />
70
- </csharp.EnumDeclaration>
70
+ </csharp.Enum>
71
71
  </csharp.SourceFile>
72
72
  </csharp.Namespace>
73
73
  <csharp.Namespace name="Client">
74
74
  <csharp.SourceFile path="Client.cs" using={["System"]}>
75
- <csharp.ClassDeclaration public name="Client">
75
+ <csharp.Class accessModifier="public" name="Client">
76
76
  <csharp.ClassMethod
77
- public
77
+ accessModifier="public"
78
78
  name="MethodOne"
79
79
  parameters={params}
80
80
  returns={outputTypeRefkey}
81
81
  />
82
- </csharp.ClassDeclaration>
82
+ </csharp.Class>
83
83
  <hbr />
84
84
  {twoValRefkey};
85
85
  </csharp.SourceFile>
package/vitest.config.ts CHANGED
@@ -6,8 +6,5 @@ export default defineConfig({
6
6
  jsx: "preserve",
7
7
  sourcemap: "both",
8
8
  },
9
- test: {
10
- setupFiles: ["./test/vitest.setup.ts"],
11
- },
12
9
  plugins: [alloyPlugin()],
13
10
  });
@@ -1,74 +0,0 @@
1
- import * as core from "@alloy-js/core";
2
- import { AccessModifiers } from "../modifiers.js";
3
- import { ParameterProps } from "./parameters/parameters.jsx";
4
- import { TypeParameterProps } from "./type-parameters/type-parameter.jsx";
5
- export interface ClassModifiers {
6
- readonly abstract?: boolean;
7
- readonly partial?: boolean;
8
- readonly sealed?: boolean;
9
- readonly static?: boolean;
10
- }
11
- export interface ClassDeclarationProps extends Omit<core.DeclarationProps, "nameKind">, AccessModifiers, ClassModifiers {
12
- name: string;
13
- /** Doc comment */
14
- doc?: core.Children;
15
- refkey?: core.Refkey;
16
- /**
17
- * Type parameters for the class
18
- *
19
- * @example
20
- * ```tsx
21
- * <ClassDeclaration name="MyClass" typeParameters={["T"]} />
22
- * ```
23
- * This will produce:
24
- * ```csharp
25
- * public class MyClass<T>
26
- * ```
27
- */
28
- typeParameters?: (string | TypeParameterProps)[];
29
- /** Base class that this class extends */
30
- baseType?: core.Children;
31
- /** Interfaces this class implements */
32
- interfaceTypes?: core.Children[];
33
- }
34
- /**
35
- * CSharp class declaration.
36
- * @example
37
- * ```tsx
38
- * <ClassDeclaration public name="MyClass">
39
- * <ClassMember public name="MyField" type="int" />
40
- * <ClassConstructor>
41
- * <Parameter name="value" type="int" />
42
- * this.MyField = value;
43
- * </ClassConstructor>
44
- * </ClassDeclaration>
45
- * ```
46
- * This will produce:
47
- * ```csharp
48
- * public class MyClass
49
- * {
50
- * public int MyField;
51
- * public MyClass(int value)
52
- * {
53
- * this.MyField = value;
54
- * }
55
- * }
56
- * ```
57
- */
58
- export declare function ClassDeclaration(props: ClassDeclarationProps): core.Children;
59
- export interface ClassConstructorProps extends AccessModifiers {
60
- parameters?: Array<ParameterProps>;
61
- refkey?: core.Refkey;
62
- symbol?: core.OutputSymbol;
63
- children?: core.Children;
64
- }
65
- export declare function ClassConstructor(props: ClassConstructorProps): core.Children;
66
- export interface ClassMemberProps extends AccessModifiers {
67
- name: string;
68
- type: core.Children;
69
- refkey?: core.Refkey;
70
- /** Doc comment */
71
- doc?: core.Children;
72
- }
73
- export declare function ClassMember(props: ClassMemberProps): core.Children;
74
- //# sourceMappingURL=ClassDeclaration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClassDeclaration.d.ts","sourceRoot":"","sources":["../../../src/components/ClassDeclaration.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EACL,eAAe,EAIhB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EAAE,cAAc,EAAc,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAG1E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAUD,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAC7C,eAAe,EACf,cAAc;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IAErB;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;IAEjD,yCAAyC;IACzC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;IAEzB,uCAAuC;IACvC,cAAc,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,iBA4C5D;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC;IAC3B,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;CAC1B;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,iBAiC5D;AAGD,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,kBAAkB;IAClB,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;CACrB;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,iBA0BlD"}
@@ -1,34 +0,0 @@
1
- import * as core from "@alloy-js/core";
2
- import { AccessModifiers } from "../modifiers.js";
3
- export interface EnumDeclarationProps extends AccessModifiers {
4
- name: string;
5
- refkey?: core.Refkey;
6
- children?: core.Children;
7
- }
8
- /**
9
- * A C# enum declaration
10
- * @example
11
- * ```tsx
12
- * <EnumDeclaration public name="Color">
13
- * <EnumMember name="Red" />
14
- * <EnumMember name="Green" />
15
- * <EnumMember name="Blue" />
16
- * </EnumDeclaration>
17
- * ```
18
- * This will produce:
19
- * ```csharp
20
- * public enum Color
21
- * {
22
- * Red,
23
- * Green,
24
- * Blue
25
- * }
26
- * ```
27
- */
28
- export declare function EnumDeclaration(props: EnumDeclarationProps): core.Children;
29
- export interface EnumMemberProps {
30
- name: string;
31
- refkey?: core.Refkey;
32
- }
33
- export declare function EnumMember(props: EnumMemberProps): core.Children;
34
- //# sourceMappingURL=EnumDeclaration.d.ts.map