@alloy-js/csharp 0.18.0-dev.24 → 0.18.0-dev.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 (166) hide show
  1. package/dist/src/components/Class.d.ts +23 -0
  2. package/dist/src/components/Class.d.ts.map +1 -0
  3. package/dist/src/components/{ClassDeclaration.js → Class.js} +37 -67
  4. package/dist/src/components/ClassMethod.d.ts +3 -44
  5. package/dist/src/components/ClassMethod.d.ts.map +1 -1
  6. package/dist/src/components/ClassMethod.js +8 -32
  7. package/dist/src/components/Enum.d.ts +14 -0
  8. package/dist/src/components/Enum.d.ts.map +1 -0
  9. package/dist/src/components/{EnumDeclaration.js → Enum.js} +2 -21
  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 -14
  16. package/dist/src/components/index.d.ts.map +1 -1
  17. package/dist/src/components/index.js +5 -15
  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 +9 -2
  22. package/dist/src/modifiers.d.ts.map +1 -1
  23. package/dist/src/modifiers.js +9 -6
  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 +2 -23
  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-declaration.test.js → class.test.js} +51 -234
  31. package/dist/test/enum.test.js +6 -6
  32. package/dist/test/namespace.test.js +4 -4
  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} +4 -4
  36. package/dist/test/sourcefile.test.js +2 -2
  37. package/dist/test/using.test.js +4 -4
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +3 -4
  40. package/src/components/{ClassDeclaration.tsx → Class.tsx} +38 -116
  41. package/src/components/ClassMethod.tsx +7 -70
  42. package/src/components/{EnumDeclaration.tsx → Enum.tsx} +3 -22
  43. package/src/components/Parameters.tsx +51 -0
  44. package/src/components/SourceFile.tsx +0 -1
  45. package/src/components/index.ts +4 -14
  46. package/src/components/stc/index.ts +2 -2
  47. package/src/modifiers.ts +30 -16
  48. package/src/name-policy.ts +0 -5
  49. package/temp/api.json +1194 -6218
  50. package/test/class-method.test.tsx +3 -19
  51. package/test/class.test.tsx +257 -0
  52. package/test/enum.test.tsx +11 -13
  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 +6 -14
  57. package/vitest.config.ts +0 -3
  58. package/dist/src/components/ClassDeclaration.d.ts +0 -92
  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/attributes/attributes.d.ts +0 -39
  63. package/dist/src/components/attributes/attributes.d.ts.map +0 -1
  64. package/dist/src/components/attributes/attributes.js +0 -62
  65. package/dist/src/components/attributes/attributes.test.d.ts +0 -2
  66. package/dist/src/components/attributes/attributes.test.d.ts.map +0 -1
  67. package/dist/src/components/attributes/attributes.test.js +0 -75
  68. package/dist/src/components/doc/comment.d.ts +0 -70
  69. package/dist/src/components/doc/comment.d.ts.map +0 -1
  70. package/dist/src/components/doc/comment.js +0 -88
  71. package/dist/src/components/doc/comment.test.d.ts +0 -2
  72. package/dist/src/components/doc/comment.test.d.ts.map +0 -1
  73. package/dist/src/components/doc/comment.test.js +0 -348
  74. package/dist/src/components/doc/from-markdown.d.ts +0 -6
  75. package/dist/src/components/doc/from-markdown.d.ts.map +0 -1
  76. package/dist/src/components/doc/from-markdown.js +0 -58
  77. package/dist/src/components/doc/from-markdown.test.d.ts +0 -2
  78. package/dist/src/components/doc/from-markdown.test.d.ts.map +0 -1
  79. package/dist/src/components/doc/from-markdown.test.js +0 -83
  80. package/dist/src/components/interface/declaration.d.ts +0 -65
  81. package/dist/src/components/interface/declaration.d.ts.map +0 -1
  82. package/dist/src/components/interface/declaration.js +0 -83
  83. package/dist/src/components/interface/declaration.test.d.ts +0 -2
  84. package/dist/src/components/interface/declaration.test.d.ts.map +0 -1
  85. package/dist/src/components/interface/declaration.test.js +0 -171
  86. package/dist/src/components/interface/method.d.ts +0 -50
  87. package/dist/src/components/interface/method.d.ts.map +0 -1
  88. package/dist/src/components/interface/method.js +0 -74
  89. package/dist/src/components/interface/method.test.d.ts +0 -2
  90. package/dist/src/components/interface/method.test.d.ts.map +0 -1
  91. package/dist/src/components/interface/method.test.js +0 -300
  92. package/dist/src/components/interface/property.d.ts +0 -56
  93. package/dist/src/components/interface/property.d.ts.map +0 -1
  94. package/dist/src/components/interface/property.js +0 -73
  95. package/dist/src/components/interface/property.test.d.ts +0 -2
  96. package/dist/src/components/interface/property.test.d.ts.map +0 -1
  97. package/dist/src/components/interface/property.test.js +0 -189
  98. package/dist/src/components/parameters/parameters.d.ts +0 -19
  99. package/dist/src/components/parameters/parameters.d.ts.map +0 -1
  100. package/dist/src/components/parameters/parameters.js +0 -43
  101. package/dist/src/components/property/property.d.ts +0 -80
  102. package/dist/src/components/property/property.d.ts.map +0 -1
  103. package/dist/src/components/property/property.js +0 -76
  104. package/dist/src/components/property/property.test.d.ts +0 -2
  105. package/dist/src/components/property/property.test.d.ts.map +0 -1
  106. package/dist/src/components/property/property.test.js +0 -242
  107. package/dist/src/components/record/declaration.d.ts +0 -35
  108. package/dist/src/components/record/declaration.d.ts.map +0 -1
  109. package/dist/src/components/record/declaration.js +0 -90
  110. package/dist/src/components/record/declaration.test.d.ts +0 -2
  111. package/dist/src/components/record/declaration.test.d.ts.map +0 -1
  112. package/dist/src/components/record/declaration.test.js +0 -94
  113. package/dist/src/components/type-parameters/type-parameter-constraints.d.ts +0 -8
  114. package/dist/src/components/type-parameters/type-parameter-constraints.d.ts.map +0 -1
  115. package/dist/src/components/type-parameters/type-parameter-constraints.js +0 -44
  116. package/dist/src/components/type-parameters/type-parameter-constraints.test.d.ts +0 -2
  117. package/dist/src/components/type-parameters/type-parameter-constraints.test.d.ts.map +0 -1
  118. package/dist/src/components/type-parameters/type-parameter-constraints.test.js +0 -67
  119. package/dist/src/components/type-parameters/type-parameter.d.ts +0 -20
  120. package/dist/src/components/type-parameters/type-parameter.d.ts.map +0 -1
  121. package/dist/src/components/type-parameters/type-parameter.js +0 -22
  122. package/dist/src/components/type-parameters/type-parameters.d.ts +0 -17
  123. package/dist/src/components/type-parameters/type-parameters.d.ts.map +0 -1
  124. package/dist/src/components/type-parameters/type-parameters.js +0 -54
  125. package/dist/src/components/type-parameters/type-parameters.test.d.ts +0 -2
  126. package/dist/src/components/type-parameters/type-parameters.test.d.ts.map +0 -1
  127. package/dist/src/components/type-parameters/type-parameters.test.js +0 -48
  128. package/dist/src/components/var/declaration.d.ts +0 -35
  129. package/dist/src/components/var/declaration.d.ts.map +0 -1
  130. package/dist/src/components/var/declaration.js +0 -40
  131. package/dist/src/components/var/declaration.test.d.ts +0 -2
  132. package/dist/src/components/var/declaration.test.d.ts.map +0 -1
  133. package/dist/src/components/var/declaration.test.js +0 -73
  134. package/dist/test/class-declaration.test.d.ts +0 -2
  135. package/dist/test/class-declaration.test.d.ts.map +0 -1
  136. package/dist/test/project-directory.test.d.ts +0 -2
  137. package/dist/test/project-directory.test.d.ts.map +0 -1
  138. package/dist/test/vitest.setup.d.ts +0 -2
  139. package/dist/test/vitest.setup.d.ts.map +0 -1
  140. package/dist/test/vitest.setup.js +0 -1
  141. package/src/components/attributes/attributes.test.tsx +0 -61
  142. package/src/components/attributes/attributes.tsx +0 -100
  143. package/src/components/doc/comment.test.tsx +0 -337
  144. package/src/components/doc/comment.tsx +0 -152
  145. package/src/components/doc/from-markdown.test.tsx +0 -103
  146. package/src/components/doc/from-markdown.tsx +0 -58
  147. package/src/components/interface/declaration.test.tsx +0 -158
  148. package/src/components/interface/declaration.tsx +0 -125
  149. package/src/components/interface/method.test.tsx +0 -293
  150. package/src/components/interface/method.tsx +0 -122
  151. package/src/components/interface/property.test.tsx +0 -165
  152. package/src/components/interface/property.tsx +0 -127
  153. package/src/components/parameters/parameters.tsx +0 -74
  154. package/src/components/property/property.test.tsx +0 -209
  155. package/src/components/property/property.tsx +0 -172
  156. package/src/components/record/declaration.test.tsx +0 -73
  157. package/src/components/record/declaration.tsx +0 -109
  158. package/src/components/type-parameters/type-parameter-constraints.test.tsx +0 -93
  159. package/src/components/type-parameters/type-parameter-constraints.tsx +0 -46
  160. package/src/components/type-parameters/type-parameter.tsx +0 -35
  161. package/src/components/type-parameters/type-parameters.test.tsx +0 -46
  162. package/src/components/type-parameters/type-parameters.tsx +0 -63
  163. package/src/components/var/declaration.test.tsx +0 -59
  164. package/src/components/var/declaration.tsx +0 -47
  165. package/test/class-declaration.test.tsx +0 -430
  166. 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 public name="TestClass">
9
9
  {props.children}
10
- </ClassDeclaration>
10
+ </Class>
11
11
  </TestNamespace>
12
12
  );
13
13
 
@@ -129,19 +129,3 @@ it("defines params and return type", () => {
129
129
  }
130
130
  `);
131
131
  });
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,257 @@
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(<csharp.Class public name="TestClass" />);
9
+
10
+ expect(res).toBe(coretest.d`
11
+ namespace TestCode
12
+ {
13
+ public class TestClass;
14
+ }
15
+ `);
16
+ });
17
+
18
+ it("declares class with some members", () => {
19
+ const res = utils.toSourceText(
20
+ <csharp.Class public name="TestClass">
21
+ <core.StatementList>
22
+ <csharp.ClassMember public name="MemberOne" type="string" />
23
+ <csharp.ClassMember private name="MemberTwo" type="int" />
24
+ </core.StatementList>
25
+ </csharp.Class>,
26
+ );
27
+
28
+ expect(res).toBe(coretest.d`
29
+ namespace TestCode
30
+ {
31
+ public class TestClass
32
+ {
33
+ public string MemberOne;
34
+ private int memberTwo;
35
+ }
36
+ }
37
+ `);
38
+ });
39
+
40
+ it("declares class with some methods", () => {
41
+ const res = utils.toSourceText(
42
+ <csharp.Class public name="TestClass">
43
+ <core.List>
44
+ <csharp.ClassMethod public name="MethodOne" />
45
+ <csharp.ClassMethod private virtual name="MethodTwo" />
46
+ </core.List>
47
+ </csharp.Class>,
48
+ );
49
+
50
+ expect(res).toBe(coretest.d`
51
+ namespace TestCode
52
+ {
53
+ public class TestClass
54
+ {
55
+ public void MethodOne() {}
56
+ private virtual void MethodTwo() {}
57
+ }
58
+ }
59
+ `);
60
+ });
61
+
62
+ it("uses refkeys for members, params, and return type", () => {
63
+ const inputTypeRefkey = core.refkey();
64
+ const testResultTypeRefkey = core.refkey();
65
+ const enumTypeRefkey = core.refkey();
66
+
67
+ const params = [
68
+ {
69
+ name: "IntParam",
70
+ type: "int",
71
+ },
72
+ {
73
+ name: "BodyParam",
74
+ type: inputTypeRefkey,
75
+ },
76
+ ];
77
+
78
+ const res = core.render(
79
+ <core.Output namePolicy={csharp.createCSharpNamePolicy()}>
80
+ <csharp.Namespace name="TestCode">
81
+ <csharp.SourceFile path="Test.cs">
82
+ <csharp.Enum public name="TestEnum" refkey={enumTypeRefkey}>
83
+ <core.List comma hardline>
84
+ <csharp.EnumMember name="One" />
85
+ <csharp.EnumMember name="Two" />
86
+ </core.List>
87
+ </csharp.Enum>
88
+ <hbr />
89
+ <csharp.Class public name="TestInput" refkey={inputTypeRefkey} />
90
+ <hbr />
91
+ <csharp.Class
92
+ public
93
+ name="TestResult"
94
+ refkey={testResultTypeRefkey}
95
+ />
96
+ <hbr />
97
+ <csharp.Class public name="TestClass">
98
+ <csharp.ClassMember
99
+ private
100
+ name="MemberOne"
101
+ type={enumTypeRefkey}
102
+ />
103
+ ;
104
+ <hbr />
105
+ <csharp.ClassMethod
106
+ public
107
+ name="MethodOne"
108
+ parameters={params}
109
+ returns={testResultTypeRefkey}
110
+ >
111
+ return new {testResultTypeRefkey}();
112
+ </csharp.ClassMethod>
113
+ </csharp.Class>
114
+ </csharp.SourceFile>
115
+ </csharp.Namespace>
116
+ </core.Output>,
117
+ );
118
+
119
+ expect(res.contents[0].contents).toBe(coretest.d`
120
+ namespace TestCode
121
+ {
122
+ public enum TestEnum
123
+ {
124
+ One,
125
+ Two
126
+ }
127
+ public class TestInput;
128
+ public class TestResult;
129
+ public class TestClass
130
+ {
131
+ private TestEnum memberOne;
132
+ public TestResult MethodOne(int intParam, TestInput bodyParam)
133
+ {
134
+ return new TestResult();
135
+ }
136
+ }
137
+ }
138
+ `);
139
+ });
140
+
141
+ it("declares class with generic parameters", () => {
142
+ const typeParameters = {
143
+ T: core.refkey(),
144
+ U: core.refkey(),
145
+ };
146
+
147
+ const res = utils.toSourceText(
148
+ <csharp.Class public name="TestClass" typeParameters={typeParameters}>
149
+ <csharp.ClassMember public name="memberOne" type={typeParameters.T} />
150
+ ;<hbr />
151
+ <csharp.ClassMember private name="memberTwo" type={typeParameters.U} />;
152
+ </csharp.Class>,
153
+ );
154
+
155
+ expect(res).toBe(coretest.d`
156
+ namespace TestCode
157
+ {
158
+ public class TestClass<T, U>
159
+ {
160
+ public T MemberOne;
161
+ private U memberTwo;
162
+ }
163
+ }
164
+ `);
165
+ });
166
+
167
+ it("declares class with invalid members", () => {
168
+ const decl = (
169
+ <csharp.Class public name="TestClass">
170
+ <csharp.EnumMember name="One" />,<hbr />
171
+ <csharp.EnumMember name="Two" />
172
+ </csharp.Class>
173
+ );
174
+
175
+ expect(() => utils.toSourceText(decl)).toThrow(
176
+ "can't define an enum member outside of an enum-decl scope",
177
+ );
178
+ });
179
+
180
+ it("declares class with constructor", () => {
181
+ const res = utils.toSourceText(
182
+ <csharp.Class public name="TestClass">
183
+ <csharp.ClassConstructor public />
184
+ </csharp.Class>,
185
+ );
186
+
187
+ expect(res).toBe(coretest.d`
188
+ namespace TestCode
189
+ {
190
+ public class TestClass
191
+ {
192
+ public TestClass() {}
193
+ }
194
+ }
195
+ `);
196
+ });
197
+
198
+ it("declares class with constructor params and assigns values to fields", () => {
199
+ const thisNameRefkey = core.refkey();
200
+ const thisSizeRefkey = core.refkey();
201
+ const paramNameRefkey = core.refkey();
202
+ const paramSizeRefkey = core.refkey();
203
+
204
+ const ctorParams = [
205
+ {
206
+ name: "name",
207
+ type: "string",
208
+ refkey: paramNameRefkey,
209
+ },
210
+ {
211
+ name: "size",
212
+ type: "int",
213
+ refkey: paramSizeRefkey,
214
+ },
215
+ ];
216
+
217
+ const res = utils.toSourceText(
218
+ <csharp.Class public name="TestClass">
219
+ <csharp.ClassMember
220
+ private
221
+ name="name"
222
+ type="string"
223
+ refkey={thisNameRefkey}
224
+ />
225
+ ;<hbr />
226
+ <csharp.ClassMember
227
+ private
228
+ name="size"
229
+ type="int"
230
+ refkey={thisSizeRefkey}
231
+ />
232
+ ;<hbr />
233
+ <csharp.ClassConstructor public parameters={ctorParams}>
234
+ {thisNameRefkey} = {paramNameRefkey};<hbr />
235
+ {thisSizeRefkey} = {paramSizeRefkey};
236
+ </csharp.ClassConstructor>
237
+ </csharp.Class>,
238
+ );
239
+
240
+ // TODO: assignments to members should have this. prefix
241
+ // e.g. this.name = name;
242
+ expect(res).toBe(coretest.d`
243
+ namespace TestCode
244
+ {
245
+ public class TestClass
246
+ {
247
+ private string name;
248
+ private int size;
249
+ public TestClass(string name, int size)
250
+ {
251
+ name = name;
252
+ size = size;
253
+ }
254
+ }
255
+ }
256
+ `);
257
+ });
@@ -5,9 +5,7 @@ import * as csharp from "../src/index.js";
5
5
  import * as utils from "./utils.js";
6
6
 
7
7
  it("declares enum with no members", () => {
8
- const res = utils.toSourceText(
9
- <csharp.EnumDeclaration public name="TestEnum" />,
10
- );
8
+ const res = utils.toSourceText(<csharp.Enum public name="TestEnum" />);
11
9
 
12
10
  expect(res).toBe(coretest.d`
13
11
  namespace TestCode
@@ -19,10 +17,10 @@ it("declares enum with no members", () => {
19
17
 
20
18
  it("declares enum with members", () => {
21
19
  const res = utils.toSourceText(
22
- <csharp.EnumDeclaration public name="TestEnum">
20
+ <csharp.Enum public name="TestEnum">
23
21
  <csharp.EnumMember name="One" />,<hbr />
24
22
  <csharp.EnumMember name="Two" />
25
- </csharp.EnumDeclaration>,
23
+ </csharp.Enum>,
26
24
  );
27
25
 
28
26
  expect(res).toBe(coretest.d`
@@ -39,10 +37,10 @@ it("declares enum with members", () => {
39
37
 
40
38
  it("applies naming policy to enum and members", () => {
41
39
  const res = utils.toSourceText(
42
- <csharp.EnumDeclaration public name="testEnum">
40
+ <csharp.Enum public name="testEnum">
43
41
  <csharp.EnumMember name="one" />,<hbr />
44
42
  <csharp.EnumMember name="two" />
45
- </csharp.EnumDeclaration>,
43
+ </csharp.Enum>,
46
44
  );
47
45
 
48
46
  expect(res).toBe(coretest.d`
@@ -65,10 +63,10 @@ it("can reference things by refkey", () => {
65
63
  <core.Output>
66
64
  <csharp.Namespace name="TestCode">
67
65
  <csharp.SourceFile path="Test.cs">
68
- <csharp.EnumDeclaration public name="TestEnum" refkey={enumRK}>
66
+ <csharp.Enum public name="TestEnum" refkey={enumRK}>
69
67
  <csharp.EnumMember name="One" />,<hbr />
70
68
  <csharp.EnumMember name="Two" refkey={twoRK} />
71
- </csharp.EnumDeclaration>
69
+ </csharp.Enum>
72
70
  <hbr />
73
71
  {enumRK};<hbr />
74
72
  {twoRK};
@@ -99,19 +97,19 @@ it("can reference things by refkey across files", () => {
99
97
  <core.Output>
100
98
  <csharp.Namespace name="TestCode">
101
99
  <csharp.SourceFile path="Test.cs">
102
- <csharp.EnumDeclaration public name="TestEnum">
100
+ <csharp.Enum public name="TestEnum">
103
101
  <csharp.EnumMember name="One" />,<hbr />
104
102
  <csharp.EnumMember name="Two" />
105
- </csharp.EnumDeclaration>
103
+ </csharp.Enum>
106
104
  <hbr />
107
105
  {enumRK};<hbr />
108
106
  {barRK};
109
107
  </csharp.SourceFile>
110
108
  <csharp.SourceFile path="Other.cs">
111
- <csharp.EnumDeclaration public name="OtherEnum" refkey={enumRK}>
109
+ <csharp.Enum public name="OtherEnum" refkey={enumRK}>
112
110
  <csharp.EnumMember name="Foo" />,<hbr />
113
111
  <csharp.EnumMember name="Bar" refkey={barRK} />
114
- </csharp.EnumDeclaration>
112
+ </csharp.Enum>
115
113
  <hbr />
116
114
  {enumRK};<hbr />
117
115
  {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 public name="Model1" />
12
12
  </csharp.SourceFile>
13
13
  <csharp.SourceFile path="Model2.cs">
14
- <csharp.ClassDeclaration public name="Model2" />
14
+ <csharp.Class 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 public name="Model3" />
20
20
  </csharp.SourceFile>
21
21
  <csharp.SourceFile path="Model4.cs">
22
- <csharp.ClassDeclaration public name="Model4" />
22
+ <csharp.Class 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 public name="TestClass1" />
18
18
  </csharp.SourceFile>
19
19
  <csharp.SourceFile path="Test2.cs">
20
- <csharp.ClassDeclaration public name="TestClass2" />
20
+ <csharp.Class 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 public name="TestClass1" />
75
75
  </csharp.SourceFile>
76
76
  <csharp.SourceFile path="Test2.cs">
77
- <csharp.ClassDeclaration public name="TestClass2" />
77
+ <csharp.Class 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 public name="TestClass1" />
12
12
  </csharp.SourceFile>
13
13
  <csharp.SourceFile path="Test2.cs">
14
- <csharp.ClassDeclaration public name="TestClass2" />
14
+ <csharp.Class public name="TestClass2" />
15
15
  </csharp.SourceFile>
16
16
  </csharp.Namespace>
17
17
  </core.Output>,
@@ -52,34 +52,26 @@ 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
57
- name="Input"
58
- refkey={inputTypeRefkey}
59
- />
55
+ <csharp.Class public name="Input" refkey={inputTypeRefkey} />
60
56
  <hbr />
61
- <csharp.ClassDeclaration
62
- public
63
- name="Output"
64
- refkey={outputTypeRefkey}
65
- />
57
+ <csharp.Class public name="Output" refkey={outputTypeRefkey} />
66
58
  <hbr />
67
- <csharp.EnumDeclaration public name="TestEnum">
59
+ <csharp.Enum public name="TestEnum">
68
60
  <csharp.EnumMember name="One" />,<hbr />
69
61
  <csharp.EnumMember name="Two" refkey={twoValRefkey} />
70
- </csharp.EnumDeclaration>
62
+ </csharp.Enum>
71
63
  </csharp.SourceFile>
72
64
  </csharp.Namespace>
73
65
  <csharp.Namespace name="Client">
74
66
  <csharp.SourceFile path="Client.cs" using={["System"]}>
75
- <csharp.ClassDeclaration public name="Client">
67
+ <csharp.Class public name="Client">
76
68
  <csharp.ClassMethod
77
69
  public
78
70
  name="MethodOne"
79
71
  parameters={params}
80
72
  returns={outputTypeRefkey}
81
73
  />
82
- </csharp.ClassDeclaration>
74
+ </csharp.Class>
83
75
  <hbr />
84
76
  {twoValRefkey};
85
77
  </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,92 +0,0 @@
1
- import * as core from "@alloy-js/core";
2
- import { AccessModifiers } from "../modifiers.js";
3
- import { AttributesProp } from "./attributes/attributes.jsx";
4
- import { ParameterProps } from "./parameters/parameters.jsx";
5
- import { TypeParameterProps } from "./type-parameters/type-parameter.jsx";
6
- export interface ClassModifiers {
7
- readonly abstract?: boolean;
8
- readonly partial?: boolean;
9
- readonly sealed?: boolean;
10
- readonly static?: boolean;
11
- }
12
- export interface ClassDeclarationProps extends Omit<core.DeclarationProps, "nameKind">, AccessModifiers, ClassModifiers {
13
- name: string;
14
- /** Doc comment */
15
- doc?: core.Children;
16
- refkey?: core.Refkey;
17
- /**
18
- * Type parameters for the class
19
- *
20
- * @example
21
- * ```tsx
22
- * <ClassDeclaration name="MyClass" typeParameters={["T"]} />
23
- * ```
24
- * This will produce:
25
- * ```csharp
26
- * public class MyClass<T>
27
- * ```
28
- */
29
- typeParameters?: (string | TypeParameterProps)[];
30
- /** Base class that this class extends */
31
- baseType?: core.Children;
32
- /** Interfaces this class implements */
33
- interfaceTypes?: core.Children[];
34
- /**
35
- * Define attributes to attach
36
- * @example
37
- * ```tsx
38
- * <ClassDeclaration name="MyClass" attributes={[
39
- * <Attribute name="Test" />
40
- * <Attribute name="Test2" args={["arg1", "arg2"]} />
41
- * ]}>
42
- * ```
43
- * This will produce:
44
- * ```csharp
45
- * [Test]
46
- * [Test2("arg1", "arg2")]
47
- * public class MyClass
48
- * ```
49
- */
50
- attributes?: AttributesProp;
51
- }
52
- /**
53
- * CSharp class declaration.
54
- * @example
55
- * ```tsx
56
- * <ClassDeclaration public name="MyClass">
57
- * <ClassMember public name="MyField" type="int" />
58
- * <ClassConstructor>
59
- * <Parameter name="value" type="int" />
60
- * this.MyField = value;
61
- * </ClassConstructor>
62
- * </ClassDeclaration>
63
- * ```
64
- * This will produce:
65
- * ```csharp
66
- * public class MyClass
67
- * {
68
- * public int MyField;
69
- * public MyClass(int value)
70
- * {
71
- * this.MyField = value;
72
- * }
73
- * }
74
- * ```
75
- */
76
- export declare function ClassDeclaration(props: ClassDeclarationProps): core.Children;
77
- export interface ClassConstructorProps extends AccessModifiers {
78
- parameters?: Array<ParameterProps>;
79
- refkey?: core.Refkey;
80
- symbol?: core.OutputSymbol;
81
- children?: core.Children;
82
- }
83
- export declare function ClassConstructor(props: ClassConstructorProps): core.Children;
84
- export interface ClassMemberProps extends AccessModifiers {
85
- name: string;
86
- type: core.Children;
87
- refkey?: core.Refkey;
88
- /** Doc comment */
89
- doc?: core.Children;
90
- }
91
- export declare function ClassMember(props: ClassMemberProps): core.Children;
92
- //# 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;AAIzB,OAAO,EAAiB,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG5E,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;IAEjC;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,iBA6C5D;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
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnumDeclaration.d.ts","sourceRoot":"","sources":["../../../src/components/EnumDeclaration.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,EACL,eAAe,EAGhB,MAAM,iBAAiB,CAAC;AAOzB,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,iBAgC1D;AAGD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;CACtB;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,iBAmBhD"}
@@ -1,39 +0,0 @@
1
- import { Children } from "@alloy-js/core";
2
- export interface AttributeItem {
3
- name: string;
4
- args?: string[];
5
- }
6
- export type AttributesProp = Array<string | AttributeProps | Children>;
7
- export interface AttributeListProps {
8
- /** If the attribute list should finish with a hard line if there is any attribute */
9
- endline?: boolean;
10
- attributes?: AttributesProp;
11
- children?: Children[];
12
- }
13
- /**
14
- * Render each attributes in a new line.
15
- */
16
- export declare function AttributeList(props: AttributeListProps): Children;
17
- export interface AttributeProps {
18
- /** Attribute name */
19
- name: Children;
20
- /** Argument */
21
- args?: Children[];
22
- }
23
- /**
24
- * Render a csharp attribute.
25
- *
26
- * @example
27
- * ```tsx
28
- * <Attribute name="Test" /><hbr/>
29
- * <Attribute name="Test" args={["arg1", "arg2"]} />
30
- * ```
31
- *
32
- * will render:
33
- * ```csharp
34
- * [Test]
35
- * [Test("arg1", "arg2")]
36
- * ```
37
- */
38
- export declare const Attribute: import("@alloy-js/core").Component<AttributeProps> & Required<Pick<import("@alloy-js/core").Component<AttributeProps>, "tag">>;
39
- //# sourceMappingURL=attributes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../../../src/components/attributes/attributes.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAKT,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,GAAG,cAAc,GAAG,QAAQ,CAAC,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,qFAAqF;IACrF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,YAiBtD;AAYD,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,IAAI,EAAE,QAAQ,CAAC;IAEf,eAAe;IACf,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;CACnB;AAGD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,SAAS,gIAqBrB,CAAC"}