@alloy-js/csharp 0.18.0-dev.2 → 0.18.0-dev.20

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 (153) hide show
  1. package/LICENSE +7 -0
  2. package/dist/src/components/ClassDeclaration.d.ts +74 -0
  3. package/dist/src/components/ClassDeclaration.d.ts.map +1 -0
  4. package/dist/src/components/{Class.js → ClassDeclaration.js} +59 -32
  5. package/dist/src/components/ClassMethod.d.ts +25 -4
  6. package/dist/src/components/ClassMethod.d.ts.map +1 -1
  7. package/dist/src/components/ClassMethod.js +22 -3
  8. package/dist/src/components/EnumDeclaration.d.ts +34 -0
  9. package/dist/src/components/EnumDeclaration.d.ts.map +1 -0
  10. package/dist/src/components/{Enum.js → EnumDeclaration.js} +25 -5
  11. package/dist/src/components/Parameters.d.ts +6 -1
  12. package/dist/src/components/Parameters.d.ts.map +1 -1
  13. package/dist/src/components/Parameters.js +3 -2
  14. package/dist/src/components/doc/comment.d.ts +70 -0
  15. package/dist/src/components/doc/comment.d.ts.map +1 -0
  16. package/dist/src/components/doc/comment.js +88 -0
  17. package/dist/src/components/doc/comment.test.d.ts +2 -0
  18. package/dist/src/components/doc/comment.test.d.ts.map +1 -0
  19. package/dist/src/components/doc/comment.test.js +348 -0
  20. package/dist/src/components/doc/from-markdown.d.ts +6 -0
  21. package/dist/src/components/doc/from-markdown.d.ts.map +1 -0
  22. package/dist/src/components/doc/from-markdown.js +58 -0
  23. package/dist/src/components/doc/from-markdown.test.d.ts +2 -0
  24. package/dist/src/components/doc/from-markdown.test.d.ts.map +1 -0
  25. package/dist/src/components/doc/from-markdown.test.js +83 -0
  26. package/dist/src/components/index.d.ts +12 -3
  27. package/dist/src/components/index.d.ts.map +1 -1
  28. package/dist/src/components/index.js +13 -4
  29. package/dist/src/components/interface/declaration.d.ts +47 -0
  30. package/dist/src/components/interface/declaration.d.ts.map +1 -0
  31. package/dist/src/components/interface/declaration.js +77 -0
  32. package/dist/src/components/interface/declaration.test.d.ts +2 -0
  33. package/dist/src/components/interface/declaration.test.d.ts.map +1 -0
  34. package/dist/src/components/interface/declaration.test.js +153 -0
  35. package/dist/src/components/interface/method.d.ts +32 -0
  36. package/dist/src/components/interface/method.d.ts.map +1 -0
  37. package/dist/src/components/interface/method.js +69 -0
  38. package/dist/src/components/interface/method.test.d.ts +2 -0
  39. package/dist/src/components/interface/method.test.d.ts.map +1 -0
  40. package/dist/src/components/interface/method.test.js +254 -0
  41. package/dist/src/components/interface/property.d.ts +38 -0
  42. package/dist/src/components/interface/property.d.ts.map +1 -0
  43. package/dist/src/components/interface/property.js +67 -0
  44. package/dist/src/components/interface/property.test.d.ts +2 -0
  45. package/dist/src/components/interface/property.test.d.ts.map +1 -0
  46. package/dist/src/components/interface/property.test.js +165 -0
  47. package/dist/src/components/property/property.d.ts +57 -0
  48. package/dist/src/components/property/property.d.ts.map +1 -0
  49. package/dist/src/components/property/property.js +70 -0
  50. package/dist/src/components/property/property.test.d.ts +2 -0
  51. package/dist/src/components/property/property.test.d.ts.map +1 -0
  52. package/dist/src/components/property/property.test.js +218 -0
  53. package/dist/src/components/record/declaration.d.ts +35 -0
  54. package/dist/src/components/record/declaration.d.ts.map +1 -0
  55. package/dist/src/components/record/declaration.js +90 -0
  56. package/dist/src/components/record/declaration.test.d.ts +2 -0
  57. package/dist/src/components/record/declaration.test.d.ts.map +1 -0
  58. package/dist/src/components/record/declaration.test.js +94 -0
  59. package/dist/src/components/stc/index.d.ts +2 -2
  60. package/dist/src/components/stc/index.d.ts.map +1 -1
  61. package/dist/src/components/stc/index.js +2 -2
  62. package/dist/src/components/type-parameters/type-parameter-constraints.d.ts +8 -0
  63. package/dist/src/components/type-parameters/type-parameter-constraints.d.ts.map +1 -0
  64. package/dist/src/components/type-parameters/type-parameter-constraints.js +44 -0
  65. package/dist/src/components/type-parameters/type-parameter-constraints.test.d.ts +2 -0
  66. package/dist/src/components/type-parameters/type-parameter-constraints.test.d.ts.map +1 -0
  67. package/dist/src/components/type-parameters/type-parameter-constraints.test.js +67 -0
  68. package/dist/src/components/type-parameters/type-parameter.d.ts +20 -0
  69. package/dist/src/components/type-parameters/type-parameter.d.ts.map +1 -0
  70. package/dist/src/components/type-parameters/type-parameter.js +22 -0
  71. package/dist/src/components/type-parameters/type-parameters.d.ts +17 -0
  72. package/dist/src/components/type-parameters/type-parameters.d.ts.map +1 -0
  73. package/dist/src/components/type-parameters/type-parameters.js +54 -0
  74. package/dist/src/components/type-parameters/type-parameters.test.d.ts +2 -0
  75. package/dist/src/components/type-parameters/type-parameters.test.d.ts.map +1 -0
  76. package/dist/src/components/type-parameters/type-parameters.test.js +48 -0
  77. package/dist/src/components/var/declaration.d.ts +35 -0
  78. package/dist/src/components/var/declaration.d.ts.map +1 -0
  79. package/dist/src/components/var/declaration.js +40 -0
  80. package/dist/src/components/var/declaration.test.d.ts +2 -0
  81. package/dist/src/components/var/declaration.test.d.ts.map +1 -0
  82. package/dist/src/components/var/declaration.test.js +73 -0
  83. package/dist/src/modifiers.d.ts +10 -4
  84. package/dist/src/modifiers.d.ts.map +1 -1
  85. package/dist/src/modifiers.js +9 -32
  86. package/dist/src/name-policy.d.ts +1 -1
  87. package/dist/src/name-policy.d.ts.map +1 -1
  88. package/dist/src/name-policy.js +2 -0
  89. package/dist/test/class-declaration.test.d.ts +2 -0
  90. package/dist/test/class-declaration.test.d.ts.map +1 -0
  91. package/dist/test/class-declaration.test.js +463 -0
  92. package/dist/test/class-method.test.js +37 -14
  93. package/dist/test/enum.test.js +12 -12
  94. package/dist/test/namespace.test.js +8 -8
  95. package/dist/test/project-directory.test.d.ts +2 -0
  96. package/dist/test/project-directory.test.d.ts.map +1 -0
  97. package/dist/test/{projectdirectory.test.js → project-directory.test.js} +8 -8
  98. package/dist/test/sourcefile.test.js +4 -4
  99. package/dist/test/using.test.js +9 -9
  100. package/dist/test/vitest.setup.d.ts +2 -0
  101. package/dist/test/vitest.setup.d.ts.map +1 -0
  102. package/dist/test/vitest.setup.js +1 -0
  103. package/dist/tsconfig.tsbuildinfo +1 -1
  104. package/package.json +21 -21
  105. package/src/components/{Class.tsx → ClassDeclaration.tsx} +108 -43
  106. package/src/components/ClassMethod.tsx +53 -12
  107. package/src/components/{Enum.tsx → EnumDeclaration.tsx} +30 -6
  108. package/src/components/Parameters.tsx +10 -3
  109. package/src/components/doc/comment.test.tsx +337 -0
  110. package/src/components/doc/comment.tsx +152 -0
  111. package/src/components/doc/from-markdown.test.tsx +103 -0
  112. package/src/components/doc/from-markdown.tsx +58 -0
  113. package/src/components/index.ts +12 -3
  114. package/src/components/interface/declaration.test.tsx +143 -0
  115. package/src/components/interface/declaration.tsx +105 -0
  116. package/src/components/interface/method.test.tsx +250 -0
  117. package/src/components/interface/method.tsx +105 -0
  118. package/src/components/interface/property.test.tsx +144 -0
  119. package/src/components/interface/property.tsx +107 -0
  120. package/src/components/property/property.test.tsx +187 -0
  121. package/src/components/property/property.tsx +146 -0
  122. package/src/components/record/declaration.test.tsx +73 -0
  123. package/src/components/record/declaration.tsx +109 -0
  124. package/src/components/stc/index.ts +2 -2
  125. package/src/components/type-parameters/type-parameter-constraints.test.tsx +93 -0
  126. package/src/components/type-parameters/type-parameter-constraints.tsx +46 -0
  127. package/src/components/type-parameters/type-parameter.tsx +35 -0
  128. package/src/components/type-parameters/type-parameters.test.tsx +46 -0
  129. package/src/components/type-parameters/type-parameters.tsx +63 -0
  130. package/src/components/var/declaration.test.tsx +59 -0
  131. package/src/components/var/declaration.tsx +47 -0
  132. package/src/modifiers.ts +25 -42
  133. package/src/name-policy.ts +5 -0
  134. package/temp/api.json +5227 -685
  135. package/test/class-declaration.test.tsx +418 -0
  136. package/test/class-method.test.tsx +24 -14
  137. package/test/enum.test.tsx +11 -11
  138. package/test/namespace.test.tsx +4 -4
  139. package/test/{projectdirectory.test.tsx → project-directory.test.tsx} +4 -4
  140. package/test/sourcefile.test.tsx +2 -2
  141. package/test/using.test.tsx +9 -9
  142. package/test/vitest.setup.ts +1 -0
  143. package/vitest.config.ts +3 -0
  144. package/dist/src/components/Class.d.ts +0 -26
  145. package/dist/src/components/Class.d.ts.map +0 -1
  146. package/dist/src/components/Enum.d.ts +0 -15
  147. package/dist/src/components/Enum.d.ts.map +0 -1
  148. package/dist/test/class.test.d.ts +0 -2
  149. package/dist/test/class.test.d.ts.map +0 -1
  150. package/dist/test/class.test.js +0 -298
  151. package/dist/test/projectdirectory.test.d.ts +0 -2
  152. package/dist/test/projectdirectory.test.d.ts.map +0 -1
  153. package/test/class.test.tsx +0 -292
@@ -1,11 +1,11 @@
1
- import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
1
+ import { memo as _$memo, createComponent as _$createComponent, mergeProps as _$mergeProps } from "@alloy-js/core/jsx-runtime";
2
2
  import { describe, expect, it } from "vitest";
3
- import { Class, ClassMethod } from "../src/index.js";
3
+ import { ClassDeclaration, ClassMethod } from "../src/index.js";
4
4
  import { TestNamespace } from "./utils.js";
5
5
  const Wrapper = props => _$createComponent(TestNamespace, {
6
6
  get children() {
7
- return _$createComponent(Class, {
8
- accessModifier: "public",
7
+ return _$createComponent(ClassDeclaration, {
8
+ "public": true,
9
9
  name: "TestClass",
10
10
  get children() {
11
11
  return props.children;
@@ -18,10 +18,11 @@ describe("modifiers", () => {
18
18
  it.each(["public", "private", "protected", "internal"])("%s", accessModifier => {
19
19
  expect(_$createComponent(Wrapper, {
20
20
  get children() {
21
- return _$createComponent(ClassMethod, {
22
- accessModifier: accessModifier,
21
+ return _$createComponent(ClassMethod, _$mergeProps({
22
+ [accessModifier]: true
23
+ }, {
23
24
  name: "MethodOne"
24
- });
25
+ }));
25
26
  }
26
27
  })).toRenderTo(`
27
28
  public class TestClass
@@ -35,10 +36,11 @@ describe("modifiers", () => {
35
36
  it.each(["static", "virtual", "sealed"])("%s", methodModifier => {
36
37
  expect(_$createComponent(Wrapper, {
37
38
  get children() {
38
- return _$createComponent(ClassMethod, {
39
- methodModifier: methodModifier,
39
+ return _$createComponent(ClassMethod, _$mergeProps({
40
+ [methodModifier]: true
41
+ }, {
40
42
  name: "MethodOne"
41
- });
43
+ }));
42
44
  }
43
45
  })).toRenderTo(`
44
46
  public class TestClass
@@ -51,7 +53,7 @@ describe("modifiers", () => {
51
53
  expect(_$createComponent(Wrapper, {
52
54
  get children() {
53
55
  return _$createComponent(ClassMethod, {
54
- methodModifier: "abstract",
56
+ abstract: true,
55
57
  name: "MethodOne"
56
58
  });
57
59
  }
@@ -84,8 +86,8 @@ describe("modifiers", () => {
84
86
  return _$createComponent(ClassMethod, {
85
87
  async: true,
86
88
  returns: "Task",
87
- accessModifier: "public",
88
- methodModifier: "abstract",
89
+ "public": true,
90
+ abstract: true,
89
91
  name: "MethodOne"
90
92
  });
91
93
  }
@@ -122,7 +124,7 @@ it("defines params and return type", () => {
122
124
  const res = _$createComponent(Wrapper, {
123
125
  get children() {
124
126
  return _$createComponent(ClassMethod, {
125
- accessModifier: "public",
127
+ "public": true,
126
128
  name: "MethodOne",
127
129
  parameters: params,
128
130
  returns: "string"
@@ -135,4 +137,25 @@ it("defines params and return type", () => {
135
137
  public string MethodOne(int intParam, string stringParam) {}
136
138
  }
137
139
  `);
140
+ });
141
+ it("specify doc comment", () => {
142
+ expect(_$createComponent(TestNamespace, {
143
+ get children() {
144
+ return _$createComponent(ClassDeclaration, {
145
+ name: "Test",
146
+ get children() {
147
+ return _$createComponent(ClassMethod, {
148
+ name: "Method",
149
+ doc: "This is a test"
150
+ });
151
+ }
152
+ });
153
+ }
154
+ })).toRenderTo(`
155
+ class Test
156
+ {
157
+ /// This is a test
158
+ void Method() {}
159
+ }
160
+ `);
138
161
  });
@@ -5,8 +5,8 @@ import { expect, it } from "vitest";
5
5
  import * as csharp from "../src/index.js";
6
6
  import * as utils from "./utils.js";
7
7
  it("declares enum with no members", () => {
8
- const res = utils.toSourceText(_$createComponent(csharp.Enum, {
9
- accessModifier: "public",
8
+ const res = utils.toSourceText(_$createComponent(csharp.EnumDeclaration, {
9
+ "public": true,
10
10
  name: "TestEnum"
11
11
  }));
12
12
  expect(res).toBe(coretest.d`
@@ -17,8 +17,8 @@ it("declares enum with no members", () => {
17
17
  `);
18
18
  });
19
19
  it("declares enum with members", () => {
20
- const res = utils.toSourceText(_$createComponent(csharp.Enum, {
21
- accessModifier: "public",
20
+ const res = utils.toSourceText(_$createComponent(csharp.EnumDeclaration, {
21
+ "public": true,
22
22
  name: "TestEnum",
23
23
  get children() {
24
24
  return [_$createComponent(csharp.EnumMember, {
@@ -40,8 +40,8 @@ it("declares enum with members", () => {
40
40
  `);
41
41
  });
42
42
  it("applies naming policy to enum and members", () => {
43
- const res = utils.toSourceText(_$createComponent(csharp.Enum, {
44
- accessModifier: "public",
43
+ const res = utils.toSourceText(_$createComponent(csharp.EnumDeclaration, {
44
+ "public": true,
45
45
  name: "testEnum",
46
46
  get children() {
47
47
  return [_$createComponent(csharp.EnumMember, {
@@ -73,8 +73,8 @@ it("can reference things by refkey", () => {
73
73
  return _$createComponent(csharp.SourceFile, {
74
74
  path: "Test.cs",
75
75
  get children() {
76
- return [_$createComponent(csharp.Enum, {
77
- accessModifier: "public",
76
+ return [_$createComponent(csharp.EnumDeclaration, {
77
+ "public": true,
78
78
  name: "TestEnum",
79
79
  refkey: enumRK,
80
80
  get children() {
@@ -116,8 +116,8 @@ it("can reference things by refkey across files", () => {
116
116
  return [_$createComponent(csharp.SourceFile, {
117
117
  path: "Test.cs",
118
118
  get children() {
119
- return [_$createComponent(csharp.Enum, {
120
- accessModifier: "public",
119
+ return [_$createComponent(csharp.EnumDeclaration, {
120
+ "public": true,
121
121
  name: "TestEnum",
122
122
  get children() {
123
123
  return [_$createComponent(csharp.EnumMember, {
@@ -131,8 +131,8 @@ it("can reference things by refkey across files", () => {
131
131
  }), _$createComponent(csharp.SourceFile, {
132
132
  path: "Other.cs",
133
133
  get children() {
134
- return [_$createComponent(csharp.Enum, {
135
- accessModifier: "public",
134
+ return [_$createComponent(csharp.EnumDeclaration, {
135
+ "public": true,
136
136
  name: "OtherEnum",
137
137
  refkey: enumRK,
138
138
  get children() {
@@ -12,16 +12,16 @@ it("defines multiple namespaces and source files with unique content", () => {
12
12
  return [_$createComponent(csharp.SourceFile, {
13
13
  path: "Model1.cs",
14
14
  get children() {
15
- return _$createComponent(csharp.Class, {
16
- accessModifier: "public",
15
+ return _$createComponent(csharp.ClassDeclaration, {
16
+ "public": true,
17
17
  name: "Model1"
18
18
  });
19
19
  }
20
20
  }), _$createComponent(csharp.SourceFile, {
21
21
  path: "Model2.cs",
22
22
  get children() {
23
- return _$createComponent(csharp.Class, {
24
- accessModifier: "public",
23
+ return _$createComponent(csharp.ClassDeclaration, {
24
+ "public": true,
25
25
  name: "Model2"
26
26
  });
27
27
  }
@@ -33,16 +33,16 @@ it("defines multiple namespaces and source files with unique content", () => {
33
33
  return [_$createComponent(csharp.SourceFile, {
34
34
  path: "Model3.cs",
35
35
  get children() {
36
- return _$createComponent(csharp.Class, {
37
- accessModifier: "public",
36
+ return _$createComponent(csharp.ClassDeclaration, {
37
+ "public": true,
38
38
  name: "Model3"
39
39
  });
40
40
  }
41
41
  }), _$createComponent(csharp.SourceFile, {
42
42
  path: "Model4.cs",
43
43
  get children() {
44
- return _$createComponent(csharp.Class, {
45
- accessModifier: "public",
44
+ return _$createComponent(csharp.ClassDeclaration, {
45
+ "public": true,
46
46
  name: "Model4"
47
47
  });
48
48
  }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=project-directory.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-directory.test.d.ts","sourceRoot":"","sources":["../../test/project-directory.test.tsx"],"names":[],"mappings":""}
@@ -18,16 +18,16 @@ it("defines a project directory file with multiple source files", () => {
18
18
  return [_$createComponent(csharp.SourceFile, {
19
19
  path: "Test1.cs",
20
20
  get children() {
21
- return _$createComponent(csharp.Class, {
22
- accessModifier: "public",
21
+ return _$createComponent(csharp.ClassDeclaration, {
22
+ "public": true,
23
23
  name: "TestClass1"
24
24
  });
25
25
  }
26
26
  }), _$createComponent(csharp.SourceFile, {
27
27
  path: "Test2.cs",
28
28
  get children() {
29
- return _$createComponent(csharp.Class, {
30
- accessModifier: "public",
29
+ return _$createComponent(csharp.ClassDeclaration, {
30
+ "public": true,
31
31
  name: "TestClass2"
32
32
  });
33
33
  }
@@ -82,16 +82,16 @@ it("defines a project directory file with multiple source files and a custom TFM
82
82
  return [_$createComponent(csharp.SourceFile, {
83
83
  path: "Test1.cs",
84
84
  get children() {
85
- return _$createComponent(csharp.Class, {
86
- accessModifier: "public",
85
+ return _$createComponent(csharp.ClassDeclaration, {
86
+ "public": true,
87
87
  name: "TestClass1"
88
88
  });
89
89
  }
90
90
  }), _$createComponent(csharp.SourceFile, {
91
91
  path: "Test2.cs",
92
92
  get children() {
93
- return _$createComponent(csharp.Class, {
94
- accessModifier: "public",
93
+ return _$createComponent(csharp.ClassDeclaration, {
94
+ "public": true,
95
95
  name: "TestClass2"
96
96
  });
97
97
  }
@@ -12,16 +12,16 @@ it("defines multiple source files with unique content", () => {
12
12
  return [_$createComponent(csharp.SourceFile, {
13
13
  path: "Test1.cs",
14
14
  get children() {
15
- return _$createComponent(csharp.Class, {
16
- accessModifier: "public",
15
+ return _$createComponent(csharp.ClassDeclaration, {
16
+ "public": true,
17
17
  name: "TestClass1"
18
18
  });
19
19
  }
20
20
  }), _$createComponent(csharp.SourceFile, {
21
21
  path: "Test2.cs",
22
22
  get children() {
23
- return _$createComponent(csharp.Class, {
24
- accessModifier: "public",
23
+ return _$createComponent(csharp.ClassDeclaration, {
24
+ "public": true,
25
25
  name: "TestClass2"
26
26
  });
27
27
  }
@@ -63,16 +63,16 @@ it("adds using statement across namespaces", () => {
63
63
  return _$createComponent(csharp.SourceFile, {
64
64
  path: "Models.cs",
65
65
  get children() {
66
- return [_$createComponent(csharp.Class, {
67
- accessModifier: "public",
66
+ return [_$createComponent(csharp.ClassDeclaration, {
67
+ "public": true,
68
68
  name: "Input",
69
69
  refkey: inputTypeRefkey
70
- }), _$createIntrinsic("hbr", {}), _$createComponent(csharp.Class, {
71
- accessModifier: "public",
70
+ }), _$createIntrinsic("hbr", {}), _$createComponent(csharp.ClassDeclaration, {
71
+ "public": true,
72
72
  name: "Output",
73
73
  refkey: outputTypeRefkey
74
- }), _$createIntrinsic("hbr", {}), _$createComponent(csharp.Enum, {
75
- accessModifier: "public",
74
+ }), _$createIntrinsic("hbr", {}), _$createComponent(csharp.EnumDeclaration, {
75
+ "public": true,
76
76
  name: "TestEnum",
77
77
  get children() {
78
78
  return [_$createComponent(csharp.EnumMember, {
@@ -93,12 +93,12 @@ it("adds using statement across namespaces", () => {
93
93
  path: "Client.cs",
94
94
  using: ["System"],
95
95
  get children() {
96
- return [_$createComponent(csharp.Class, {
97
- accessModifier: "public",
96
+ return [_$createComponent(csharp.ClassDeclaration, {
97
+ "public": true,
98
98
  name: "Client",
99
99
  get children() {
100
100
  return _$createComponent(csharp.ClassMethod, {
101
- accessModifier: "public",
101
+ "public": true,
102
102
  name: "MethodOne",
103
103
  parameters: params,
104
104
  returns: outputTypeRefkey
@@ -0,0 +1,2 @@
1
+ import "@alloy-js/core/testing";
2
+ //# sourceMappingURL=vitest.setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest.setup.d.ts","sourceRoot":"","sources":["../../test/vitest.setup.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAC"}
@@ -0,0 +1 @@
1
+ import "@alloy-js/core/testing";