@alloy-js/go 0.0.1

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 (264) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE +7 -0
  3. package/api-extractor.json +4 -0
  4. package/dist/src/builtins/fmt/fmt.d.ts +147 -0
  5. package/dist/src/builtins/fmt/fmt.d.ts.map +1 -0
  6. package/dist/src/builtins/fmt/fmt.js +148 -0
  7. package/dist/src/builtins/fmt/fmt.js.map +1 -0
  8. package/dist/src/builtins/index.d.ts +2004 -0
  9. package/dist/src/builtins/index.d.ts.map +1 -0
  10. package/dist/src/builtins/index.js +9 -0
  11. package/dist/src/builtins/index.js.map +1 -0
  12. package/dist/src/builtins/io/io.d.ts +648 -0
  13. package/dist/src/builtins/io/io.d.ts.map +1 -0
  14. package/dist/src/builtins/io/io.js +650 -0
  15. package/dist/src/builtins/io/io.js.map +1 -0
  16. package/dist/src/builtins/net/net.d.ts +1210 -0
  17. package/dist/src/builtins/net/net.d.ts.map +1 -0
  18. package/dist/src/builtins/net/net.js +1212 -0
  19. package/dist/src/builtins/net/net.js.map +1 -0
  20. package/dist/src/components/ImportStatement.d.ts +15 -0
  21. package/dist/src/components/ImportStatement.d.ts.map +1 -0
  22. package/dist/src/components/ImportStatement.js +90 -0
  23. package/dist/src/components/ImportStatement.js.map +1 -0
  24. package/dist/src/components/ModuleDirectory.d.ts +8 -0
  25. package/dist/src/components/ModuleDirectory.d.ts.map +1 -0
  26. package/dist/src/components/ModuleDirectory.js +20 -0
  27. package/dist/src/components/ModuleDirectory.js.map +1 -0
  28. package/dist/src/components/Name.d.ts +2 -0
  29. package/dist/src/components/Name.d.ts.map +1 -0
  30. package/dist/src/components/Name.js +12 -0
  31. package/dist/src/components/Name.js.map +1 -0
  32. package/dist/src/components/Reference.d.ts +6 -0
  33. package/dist/src/components/Reference.d.ts.map +1 -0
  34. package/dist/src/components/Reference.js +15 -0
  35. package/dist/src/components/Reference.js.map +1 -0
  36. package/dist/src/components/SourceDirectory.d.ts +6 -0
  37. package/dist/src/components/SourceDirectory.d.ts.map +1 -0
  38. package/dist/src/components/SourceDirectory.js +30 -0
  39. package/dist/src/components/SourceDirectory.js.map +1 -0
  40. package/dist/src/components/SourceFile.d.ts +16 -0
  41. package/dist/src/components/SourceFile.d.ts.map +1 -0
  42. package/dist/src/components/SourceFile.js +75 -0
  43. package/dist/src/components/SourceFile.js.map +1 -0
  44. package/dist/src/components/doc/comment.d.ts +21 -0
  45. package/dist/src/components/doc/comment.d.ts.map +1 -0
  46. package/dist/src/components/doc/comment.js +30 -0
  47. package/dist/src/components/doc/comment.js.map +1 -0
  48. package/dist/src/components/doc/comment.test.d.ts +2 -0
  49. package/dist/src/components/doc/comment.test.d.ts.map +1 -0
  50. package/dist/src/components/doc/comment.test.js +215 -0
  51. package/dist/src/components/doc/comment.test.js.map +1 -0
  52. package/dist/src/components/function/function.d.ts +31 -0
  53. package/dist/src/components/function/function.d.ts.map +1 -0
  54. package/dist/src/components/function/function.js +134 -0
  55. package/dist/src/components/function/function.js.map +1 -0
  56. package/dist/src/components/function/function.test.d.ts +2 -0
  57. package/dist/src/components/function/function.test.d.ts.map +1 -0
  58. package/dist/src/components/function/function.test.js +410 -0
  59. package/dist/src/components/function/function.test.js.map +1 -0
  60. package/dist/src/components/index.d.ts +16 -0
  61. package/dist/src/components/index.d.ts.map +1 -0
  62. package/dist/src/components/index.js +16 -0
  63. package/dist/src/components/index.js.map +1 -0
  64. package/dist/src/components/interface/declaration.d.ts +68 -0
  65. package/dist/src/components/interface/declaration.d.ts.map +1 -0
  66. package/dist/src/components/interface/declaration.js +181 -0
  67. package/dist/src/components/interface/declaration.js.map +1 -0
  68. package/dist/src/components/interface/interface.test.d.ts +2 -0
  69. package/dist/src/components/interface/interface.test.d.ts.map +1 -0
  70. package/dist/src/components/interface/interface.test.js +517 -0
  71. package/dist/src/components/interface/interface.test.js.map +1 -0
  72. package/dist/src/components/package.test.d.ts +2 -0
  73. package/dist/src/components/package.test.d.ts.map +1 -0
  74. package/dist/src/components/package.test.js +89 -0
  75. package/dist/src/components/package.test.js.map +1 -0
  76. package/dist/src/components/parameters/parameters.d.ts +15 -0
  77. package/dist/src/components/parameters/parameters.d.ts.map +1 -0
  78. package/dist/src/components/parameters/parameters.js +58 -0
  79. package/dist/src/components/parameters/parameters.js.map +1 -0
  80. package/dist/src/components/parameters/typeparameters.d.ts +25 -0
  81. package/dist/src/components/parameters/typeparameters.d.ts.map +1 -0
  82. package/dist/src/components/parameters/typeparameters.js +53 -0
  83. package/dist/src/components/parameters/typeparameters.js.map +1 -0
  84. package/dist/src/components/pointer/pointer.d.ts +9 -0
  85. package/dist/src/components/pointer/pointer.d.ts.map +1 -0
  86. package/dist/src/components/pointer/pointer.js +8 -0
  87. package/dist/src/components/pointer/pointer.js.map +1 -0
  88. package/dist/src/components/stc/index.d.ts +27 -0
  89. package/dist/src/components/stc/index.d.ts.map +1 -0
  90. package/dist/src/components/stc/index.js +27 -0
  91. package/dist/src/components/stc/index.js.map +1 -0
  92. package/dist/src/components/struct/declaration.d.ts +62 -0
  93. package/dist/src/components/struct/declaration.d.ts.map +1 -0
  94. package/dist/src/components/struct/declaration.js +161 -0
  95. package/dist/src/components/struct/declaration.js.map +1 -0
  96. package/dist/src/components/struct/struct.test.d.ts +2 -0
  97. package/dist/src/components/struct/struct.test.d.ts.map +1 -0
  98. package/dist/src/components/struct/struct.test.js +741 -0
  99. package/dist/src/components/struct/struct.test.js.map +1 -0
  100. package/dist/src/components/type/declaration.d.ts +29 -0
  101. package/dist/src/components/type/declaration.d.ts.map +1 -0
  102. package/dist/src/components/type/declaration.js +63 -0
  103. package/dist/src/components/type/declaration.js.map +1 -0
  104. package/dist/src/components/var/declaration.d.ts +27 -0
  105. package/dist/src/components/var/declaration.d.ts.map +1 -0
  106. package/dist/src/components/var/declaration.js +84 -0
  107. package/dist/src/components/var/declaration.js.map +1 -0
  108. package/dist/src/components/var/var-declaration.test.d.ts +2 -0
  109. package/dist/src/components/var/var-declaration.test.d.ts.map +1 -0
  110. package/dist/src/components/var/var-declaration.test.js +340 -0
  111. package/dist/src/components/var/var-declaration.test.js.map +1 -0
  112. package/dist/src/context/package.d.ts +9 -0
  113. package/dist/src/context/package.d.ts.map +1 -0
  114. package/dist/src/context/package.js +6 -0
  115. package/dist/src/context/package.js.map +1 -0
  116. package/dist/src/create-module.d.ts +47 -0
  117. package/dist/src/create-module.d.ts.map +1 -0
  118. package/dist/src/create-module.js +158 -0
  119. package/dist/src/create-module.js.map +1 -0
  120. package/dist/src/create-module.test.d.ts +2 -0
  121. package/dist/src/create-module.test.d.ts.map +1 -0
  122. package/dist/src/create-module.test.js +147 -0
  123. package/dist/src/create-module.test.js.map +1 -0
  124. package/dist/src/index.d.ts +6 -0
  125. package/dist/src/index.d.ts.map +1 -0
  126. package/dist/src/index.js +6 -0
  127. package/dist/src/index.js.map +1 -0
  128. package/dist/src/name-policy.d.ts +5 -0
  129. package/dist/src/name-policy.d.ts.map +1 -0
  130. package/dist/src/name-policy.js +27 -0
  131. package/dist/src/name-policy.js.map +1 -0
  132. package/dist/src/scopes/contexts.d.ts +9 -0
  133. package/dist/src/scopes/contexts.d.ts.map +1 -0
  134. package/dist/src/scopes/contexts.js +34 -0
  135. package/dist/src/scopes/contexts.js.map +1 -0
  136. package/dist/src/scopes/factories.d.ts +7 -0
  137. package/dist/src/scopes/factories.d.ts.map +1 -0
  138. package/dist/src/scopes/factories.js +16 -0
  139. package/dist/src/scopes/factories.js.map +1 -0
  140. package/dist/src/scopes/function.d.ts +9 -0
  141. package/dist/src/scopes/function.d.ts.map +1 -0
  142. package/dist/src/scopes/function.js +14 -0
  143. package/dist/src/scopes/function.js.map +1 -0
  144. package/dist/src/scopes/go.d.ts +8 -0
  145. package/dist/src/scopes/go.d.ts.map +1 -0
  146. package/dist/src/scopes/go.js +12 -0
  147. package/dist/src/scopes/go.js.map +1 -0
  148. package/dist/src/scopes/index.d.ts +10 -0
  149. package/dist/src/scopes/index.d.ts.map +1 -0
  150. package/dist/src/scopes/index.js +10 -0
  151. package/dist/src/scopes/index.js.map +1 -0
  152. package/dist/src/scopes/lexical.d.ts +8 -0
  153. package/dist/src/scopes/lexical.d.ts.map +1 -0
  154. package/dist/src/scopes/lexical.js +11 -0
  155. package/dist/src/scopes/lexical.js.map +1 -0
  156. package/dist/src/scopes/module.d.ts +9 -0
  157. package/dist/src/scopes/module.d.ts.map +1 -0
  158. package/dist/src/scopes/module.js +31 -0
  159. package/dist/src/scopes/module.js.map +1 -0
  160. package/dist/src/scopes/named-type.d.ts +23 -0
  161. package/dist/src/scopes/named-type.d.ts.map +1 -0
  162. package/dist/src/scopes/named-type.js +33 -0
  163. package/dist/src/scopes/named-type.js.map +1 -0
  164. package/dist/src/scopes/package.d.ts +11 -0
  165. package/dist/src/scopes/package.d.ts.map +1 -0
  166. package/dist/src/scopes/package.js +39 -0
  167. package/dist/src/scopes/package.js.map +1 -0
  168. package/dist/src/scopes/source-file.d.ts +17 -0
  169. package/dist/src/scopes/source-file.d.ts.map +1 -0
  170. package/dist/src/scopes/source-file.js +42 -0
  171. package/dist/src/scopes/source-file.js.map +1 -0
  172. package/dist/src/symbols/factories.d.ts +25 -0
  173. package/dist/src/symbols/factories.d.ts.map +1 -0
  174. package/dist/src/symbols/factories.js +114 -0
  175. package/dist/src/symbols/factories.js.map +1 -0
  176. package/dist/src/symbols/function.d.ts +10 -0
  177. package/dist/src/symbols/function.d.ts.map +1 -0
  178. package/dist/src/symbols/function.js +12 -0
  179. package/dist/src/symbols/function.js.map +1 -0
  180. package/dist/src/symbols/go.d.ts +22 -0
  181. package/dist/src/symbols/go.d.ts.map +1 -0
  182. package/dist/src/symbols/go.js +56 -0
  183. package/dist/src/symbols/go.js.map +1 -0
  184. package/dist/src/symbols/index.d.ts +7 -0
  185. package/dist/src/symbols/index.d.ts.map +1 -0
  186. package/dist/src/symbols/index.js +7 -0
  187. package/dist/src/symbols/index.js.map +1 -0
  188. package/dist/src/symbols/named-type.d.ts +24 -0
  189. package/dist/src/symbols/named-type.d.ts.map +1 -0
  190. package/dist/src/symbols/named-type.js +53 -0
  191. package/dist/src/symbols/named-type.js.map +1 -0
  192. package/dist/src/symbols/package.d.ts +18 -0
  193. package/dist/src/symbols/package.d.ts.map +1 -0
  194. package/dist/src/symbols/package.js +38 -0
  195. package/dist/src/symbols/package.js.map +1 -0
  196. package/dist/src/symbols/reference.d.ts +3 -0
  197. package/dist/src/symbols/reference.d.ts.map +1 -0
  198. package/dist/src/symbols/reference.js +76 -0
  199. package/dist/src/symbols/reference.js.map +1 -0
  200. package/dist/test/utils.d.ts +8 -0
  201. package/dist/test/utils.d.ts.map +1 -0
  202. package/dist/test/utils.js +68 -0
  203. package/dist/test/utils.js.map +1 -0
  204. package/dist/test/vitest.setup.d.ts +2 -0
  205. package/dist/test/vitest.setup.d.ts.map +1 -0
  206. package/dist/test/vitest.setup.js +2 -0
  207. package/dist/test/vitest.setup.js.map +1 -0
  208. package/dist/tsconfig.tsbuildinfo +1 -0
  209. package/package.json +45 -0
  210. package/src/builtins/fmt/fmt.ts +78 -0
  211. package/src/builtins/index.ts +9 -0
  212. package/src/builtins/io/io.ts +355 -0
  213. package/src/builtins/net/net.ts +502 -0
  214. package/src/components/ImportStatement.tsx +115 -0
  215. package/src/components/ModuleDirectory.tsx +18 -0
  216. package/src/components/Name.tsx +11 -0
  217. package/src/components/Reference.tsx +18 -0
  218. package/src/components/SourceDirectory.tsx +32 -0
  219. package/src/components/SourceFile.tsx +74 -0
  220. package/src/components/doc/comment.test.tsx +278 -0
  221. package/src/components/doc/comment.tsx +40 -0
  222. package/src/components/function/function.test.tsx +387 -0
  223. package/src/components/function/function.tsx +194 -0
  224. package/src/components/index.ts +15 -0
  225. package/src/components/interface/declaration.tsx +250 -0
  226. package/src/components/interface/interface.test.tsx +390 -0
  227. package/src/components/package.test.tsx +63 -0
  228. package/src/components/parameters/parameters.tsx +74 -0
  229. package/src/components/parameters/typeparameters.tsx +78 -0
  230. package/src/components/pointer/pointer.tsx +12 -0
  231. package/src/components/stc/index.ts +27 -0
  232. package/src/components/struct/declaration.tsx +228 -0
  233. package/src/components/struct/struct.test.tsx +558 -0
  234. package/src/components/type/declaration.tsx +93 -0
  235. package/src/components/var/declaration.tsx +138 -0
  236. package/src/components/var/var-declaration.test.tsx +236 -0
  237. package/src/context/package.ts +13 -0
  238. package/src/create-module.test.tsx +128 -0
  239. package/src/create-module.ts +347 -0
  240. package/src/index.ts +5 -0
  241. package/src/name-policy.ts +65 -0
  242. package/src/scopes/contexts.ts +45 -0
  243. package/src/scopes/factories.ts +29 -0
  244. package/src/scopes/function.ts +22 -0
  245. package/src/scopes/go.ts +18 -0
  246. package/src/scopes/index.ts +9 -0
  247. package/src/scopes/lexical.ts +14 -0
  248. package/src/scopes/module.ts +35 -0
  249. package/src/scopes/named-type.ts +49 -0
  250. package/src/scopes/package.ts +55 -0
  251. package/src/scopes/source-file.ts +66 -0
  252. package/src/symbols/factories.ts +234 -0
  253. package/src/symbols/function.ts +17 -0
  254. package/src/symbols/go.ts +82 -0
  255. package/src/symbols/index.ts +6 -0
  256. package/src/symbols/named-type.ts +90 -0
  257. package/src/symbols/package.ts +54 -0
  258. package/src/symbols/reference.ts +87 -0
  259. package/temp/api.json +8753 -0
  260. package/test/utils.tsx +77 -0
  261. package/test/vitest.setup.ts +1 -0
  262. package/tsconfig.json +15 -0
  263. package/tsdoc-metadata.json +11 -0
  264. package/vitest.config.ts +13 -0
@@ -0,0 +1,517 @@
1
+ import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
2
+ import { List, Output, refkey, render } from "@alloy-js/core";
3
+ import { describe, expect, it } from "vitest";
4
+ import { assertFileContents, TestPackage } from "../../../test/utils.js";
5
+ import { ModuleDirectory } from "../ModuleDirectory.js";
6
+ import { SourceDirectory } from "../SourceDirectory.js";
7
+ import { SourceFile } from "../SourceFile.js";
8
+ import { TypeDeclaration } from "../type/declaration.js";
9
+ import { InterfaceDeclaration, InterfaceEmbed, InterfaceFunction, TypeConstraint } from "./declaration.js";
10
+ function Wrapper(props) {
11
+ return _$createComponent(TestPackage, {
12
+ get children() {
13
+ return _$createComponent(TypeDeclaration, {
14
+ name: "TestInterface",
15
+ get children() {
16
+ return _$createComponent(InterfaceDeclaration, {
17
+ get children() {
18
+ return props.children;
19
+ }
20
+ });
21
+ }
22
+ });
23
+ }
24
+ });
25
+ }
26
+ it("declares interface with no members", () => {
27
+ expect(_$createComponent(TestPackage, {
28
+ get children() {
29
+ return _$createComponent(TypeDeclaration, {
30
+ name: "test",
31
+ get children() {
32
+ return _$createComponent(InterfaceDeclaration, {});
33
+ }
34
+ });
35
+ }
36
+ })).toRenderTo(`
37
+ package alloy
38
+
39
+ type test interface{}
40
+ `);
41
+ });
42
+ it("specify doc comment", () => {
43
+ expect(_$createComponent(TestPackage, {
44
+ get children() {
45
+ return _$createComponent(TypeDeclaration, {
46
+ name: "test",
47
+ doc: "This is a test",
48
+ get children() {
49
+ return _$createComponent(InterfaceDeclaration, {});
50
+ }
51
+ });
52
+ }
53
+ })).toRenderTo(`
54
+ package alloy
55
+
56
+ // This is a test
57
+ type test interface{}
58
+ `);
59
+ });
60
+
61
+ // describe("with type parameters", () => {
62
+ // it("reference parameters", () => {
63
+ // const typeParameters: TypeParameterProps[] = [
64
+ // {
65
+ // name: "T",
66
+ // refkey: refkey(),
67
+ // },
68
+ // {
69
+ // name: "U",
70
+ // refkey: refkey(),
71
+ // },
72
+ // ];
73
+ //
74
+ // expect(
75
+ // <TestPackage>
76
+ // <TypeDeclaration name="Test">
77
+ // <InterfaceDeclaration public name="Test" typeParameters={typeParameters}>
78
+ // <List>
79
+ // <Property name="PropA" type={typeParameters[0].refkey} get set />
80
+ // <Property name="PropB" type={typeParameters[1].refkey} get set />
81
+ // </List>
82
+ // </InterfaceDeclaration>
83
+ // </TypeDeclaration>
84
+ // </TestPackage>,
85
+ // ).toRenderTo(`
86
+ // public struct Test<T, U>
87
+ // {
88
+ // T PropA { get; set; }
89
+ // U PropB { get; set; }
90
+ // }
91
+ // `);
92
+ // });
93
+ //
94
+ // it("defines with constraints", () => {
95
+ // const typeParameters: TypeParameterProps[] = [
96
+ // {
97
+ // name: "T",
98
+ // constraints: "IFoo",
99
+ // },
100
+ // {
101
+ // name: "U",
102
+ // constraints: "IBar",
103
+ // },
104
+ // ];
105
+ //
106
+ // expect(
107
+ // <TestPackage>
108
+ // <TypeDeclaration name="Test">
109
+ // <InterfaceDeclaration public name="Test" typeParameters={typeParameters}>
110
+ // // Body
111
+ // </InterfaceDeclaration>
112
+ // </TypeDeclaration>
113
+ // </TestPackage>,
114
+ // ).toRenderTo(`
115
+ // public struct Test<T, U>
116
+ // where T : IFoo
117
+ // where U : IBar
118
+ // {
119
+ // // Body
120
+ // }
121
+ // `);
122
+ // });
123
+ // });
124
+
125
+ it("defines fields", () => {
126
+ expect(_$createComponent(TestPackage, {
127
+ get children() {
128
+ return _$createComponent(TypeDeclaration, {
129
+ name: "TestInterface",
130
+ get children() {
131
+ return _$createComponent(InterfaceDeclaration, {
132
+ get children() {
133
+ return _$createComponent(List, {
134
+ get children() {
135
+ return [_$createComponent(InterfaceFunction, {
136
+ name: "FunctionOne",
137
+ parameters: [{
138
+ name: "hi",
139
+ type: "string"
140
+ }],
141
+ returns: "string"
142
+ }), _$createComponent(InterfaceFunction, {
143
+ name: "functionTwo",
144
+ returns: "int"
145
+ })];
146
+ }
147
+ });
148
+ }
149
+ });
150
+ }
151
+ });
152
+ }
153
+ })).toRenderTo(`
154
+ package alloy
155
+
156
+ type TestInterface interface {
157
+ func FunctionOne(hi string) string
158
+ func functionTwo() int
159
+ }
160
+ `);
161
+ });
162
+ describe("naming", () => {
163
+ it("public field is PascalCase", () => {
164
+ expect(_$createComponent(Wrapper, {
165
+ get children() {
166
+ return _$createComponent(List, {
167
+ get children() {
168
+ return _$createComponent(InterfaceFunction, {
169
+ name: "MemberOne",
170
+ returns: "string"
171
+ });
172
+ }
173
+ });
174
+ }
175
+ })).toRenderTo(`
176
+ package alloy
177
+
178
+ type TestInterface interface {
179
+ func MemberOne() string
180
+ }
181
+ `);
182
+ });
183
+ it("private field are camelCase", () => {
184
+ expect(_$createComponent(Wrapper, {
185
+ get children() {
186
+ return _$createComponent(List, {
187
+ get children() {
188
+ return _$createComponent(InterfaceFunction, {
189
+ name: "memberOne",
190
+ returns: "string"
191
+ });
192
+ }
193
+ });
194
+ }
195
+ })).toRenderTo(`
196
+ package alloy
197
+
198
+ type TestInterface interface {
199
+ func memberOne() string
200
+ }
201
+ `);
202
+ });
203
+ });
204
+ describe("embedded", () => {
205
+ it("embed using children", () => {
206
+ const TestInterfaceEmbed = refkey("TestInterfaceEmbed");
207
+ expect(_$createComponent(TestPackage, {
208
+ get children() {
209
+ return [_$createComponent(TypeDeclaration, {
210
+ name: "TestInterface",
211
+ get children() {
212
+ return _$createComponent(InterfaceDeclaration, {
213
+ get children() {
214
+ return _$createComponent(List, {
215
+ get children() {
216
+ return _$createComponent(InterfaceFunction, {
217
+ name: "MemberOne",
218
+ returns: "string"
219
+ });
220
+ }
221
+ });
222
+ }
223
+ });
224
+ }
225
+ }), _$createIntrinsic("hbr", {}), _$createComponent(TypeDeclaration, {
226
+ name: "TestInterface2",
227
+ get children() {
228
+ return _$createComponent(InterfaceDeclaration, {
229
+ get children() {
230
+ return _$createComponent(List, {
231
+ get children() {
232
+ return [_$createComponent(InterfaceEmbed, {
233
+ refkey: TestInterfaceEmbed,
234
+ children: "TestInterface"
235
+ }), _$createComponent(InterfaceFunction, {
236
+ name: "MemberOne",
237
+ returns: "string"
238
+ })];
239
+ }
240
+ });
241
+ }
242
+ });
243
+ }
244
+ }), _$createIntrinsic("hbr", {}), TestInterfaceEmbed];
245
+ }
246
+ })).toRenderTo(`
247
+ package alloy
248
+
249
+ type TestInterface interface {
250
+ func MemberOne() string
251
+ }
252
+ type TestInterface2 interface {
253
+ TestInterface
254
+ func MemberOne() string
255
+ }
256
+ TestInterface2.TestInterface
257
+ `);
258
+ });
259
+ it("embed using refkey", () => {
260
+ const TestInterface = refkey("TestInterface");
261
+ const TestInterfaceEmbed = refkey("TestInterfaceEmbed");
262
+ expect(_$createComponent(TestPackage, {
263
+ get children() {
264
+ return [_$createComponent(TypeDeclaration, {
265
+ name: "TestInterface",
266
+ refkey: TestInterface,
267
+ get children() {
268
+ return _$createComponent(InterfaceDeclaration, {
269
+ get children() {
270
+ return _$createComponent(List, {
271
+ get children() {
272
+ return _$createComponent(InterfaceFunction, {
273
+ name: "MemberOne",
274
+ returns: "string"
275
+ });
276
+ }
277
+ });
278
+ }
279
+ });
280
+ }
281
+ }), _$createIntrinsic("hbr", {}), _$createComponent(TypeDeclaration, {
282
+ name: "TestInterface2",
283
+ get children() {
284
+ return _$createComponent(InterfaceDeclaration, {
285
+ get children() {
286
+ return _$createComponent(List, {
287
+ get children() {
288
+ return [_$createComponent(InterfaceEmbed, {
289
+ refkey: TestInterfaceEmbed,
290
+ children: TestInterface
291
+ }), _$createComponent(InterfaceFunction, {
292
+ name: "MemberOne",
293
+ returns: "string"
294
+ })];
295
+ }
296
+ });
297
+ }
298
+ });
299
+ }
300
+ }), _$createIntrinsic("hbr", {}), TestInterfaceEmbed];
301
+ }
302
+ })).toRenderTo(`
303
+ package alloy
304
+
305
+ type TestInterface interface {
306
+ func MemberOne() string
307
+ }
308
+ type TestInterface2 interface {
309
+ TestInterface
310
+ func MemberOne() string
311
+ }
312
+ TestInterface2.TestInterface
313
+ `);
314
+ });
315
+ it("embed using cross-package refkey", () => {
316
+ const TestInterface = refkey("TestInterface");
317
+ const TestInterfaceEmbed = refkey("TestInterfaceEmbed");
318
+ const res = render(_$createComponent(Output, {
319
+ get children() {
320
+ return _$createComponent(ModuleDirectory, {
321
+ name: "github.com/alloy-framework/alloy",
322
+ get children() {
323
+ return _$createComponent(SourceDirectory, {
324
+ path: ".",
325
+ get children() {
326
+ return [_$createComponent(SourceDirectory, {
327
+ path: "hello",
328
+ get children() {
329
+ return _$createComponent(SourceFile, {
330
+ path: "types.go",
331
+ get children() {
332
+ return _$createComponent(TypeDeclaration, {
333
+ name: "TestInterface",
334
+ refkey: TestInterface,
335
+ get children() {
336
+ return _$createComponent(InterfaceDeclaration, {
337
+ get children() {
338
+ return _$createComponent(List, {
339
+ get children() {
340
+ return _$createComponent(InterfaceFunction, {
341
+ name: "MemberOne",
342
+ returns: "string"
343
+ });
344
+ }
345
+ });
346
+ }
347
+ });
348
+ }
349
+ });
350
+ }
351
+ });
352
+ }
353
+ }), _$createComponent(SourceFile, {
354
+ path: "Test.go",
355
+ get children() {
356
+ return [_$createComponent(TypeDeclaration, {
357
+ name: "TestInterface2",
358
+ get children() {
359
+ return _$createComponent(InterfaceDeclaration, {
360
+ get children() {
361
+ return _$createComponent(List, {
362
+ get children() {
363
+ return [_$createComponent(InterfaceEmbed, {
364
+ refkey: TestInterfaceEmbed,
365
+ children: TestInterface
366
+ }), _$createComponent(InterfaceFunction, {
367
+ name: "MemberOne",
368
+ returns: "string"
369
+ })];
370
+ }
371
+ });
372
+ }
373
+ });
374
+ }
375
+ }), _$createIntrinsic("hbr", {}), TestInterfaceEmbed];
376
+ }
377
+ })];
378
+ }
379
+ });
380
+ }
381
+ });
382
+ }
383
+ }));
384
+ assertFileContents(res, {
385
+ "hello/types.go": `
386
+ package hello
387
+
388
+ type TestInterface interface {
389
+ func MemberOne() string
390
+ }
391
+ `,
392
+ "Test.go": `
393
+ package alloy
394
+
395
+ import "github.com/alloy-framework/alloy/hello"
396
+
397
+ type TestInterface2 interface {
398
+ hello.TestInterface
399
+ func MemberOne() string
400
+ }
401
+ TestInterface2.TestInterface
402
+ `
403
+ });
404
+ });
405
+ });
406
+ describe("constraints", () => {
407
+ it("test single constraint", () => {
408
+ const TestInterface = refkey("TestInterface");
409
+ expect(_$createComponent(TestPackage, {
410
+ get children() {
411
+ return [_$createComponent(TypeDeclaration, {
412
+ name: "TestInterface",
413
+ refkey: TestInterface,
414
+ get children() {
415
+ return _$createComponent(InterfaceDeclaration, {
416
+ get children() {
417
+ return _$createComponent(List, {
418
+ get children() {
419
+ return _$createComponent(InterfaceFunction, {
420
+ name: "MemberOne",
421
+ returns: "string"
422
+ });
423
+ }
424
+ });
425
+ }
426
+ });
427
+ }
428
+ }), _$createIntrinsic("hbr", {}), _$createComponent(TypeDeclaration, {
429
+ name: "TestInterface2",
430
+ get children() {
431
+ return _$createComponent(InterfaceDeclaration, {
432
+ get children() {
433
+ return _$createComponent(List, {
434
+ get children() {
435
+ return [_$createComponent(TypeConstraint, {
436
+ children: TestInterface
437
+ }), _$createComponent(InterfaceFunction, {
438
+ name: "MemberOne",
439
+ returns: "string"
440
+ })];
441
+ }
442
+ });
443
+ }
444
+ });
445
+ }
446
+ })];
447
+ }
448
+ })).toRenderTo(`
449
+ package alloy
450
+
451
+ type TestInterface interface {
452
+ func MemberOne() string
453
+ }
454
+ type TestInterface2 interface {
455
+ TestInterface
456
+ func MemberOne() string
457
+ }
458
+ `);
459
+ });
460
+ it("test multiple constraint", () => {
461
+ const TestInterface = refkey("TestInterface");
462
+ expect(_$createComponent(TestPackage, {
463
+ get children() {
464
+ return [_$createComponent(TypeDeclaration, {
465
+ name: "TestInterface",
466
+ refkey: TestInterface,
467
+ get children() {
468
+ return _$createComponent(InterfaceDeclaration, {
469
+ get children() {
470
+ return _$createComponent(List, {
471
+ get children() {
472
+ return _$createComponent(InterfaceFunction, {
473
+ name: "MemberOne",
474
+ returns: "string"
475
+ });
476
+ }
477
+ });
478
+ }
479
+ });
480
+ }
481
+ }), _$createIntrinsic("hbr", {}), _$createComponent(TypeDeclaration, {
482
+ name: "TestInterface2",
483
+ get children() {
484
+ return _$createComponent(InterfaceDeclaration, {
485
+ get children() {
486
+ return _$createComponent(List, {
487
+ get children() {
488
+ return [_$createComponent(TypeConstraint, {
489
+ children: TestInterface
490
+ }), _$createComponent(TypeConstraint, {
491
+ constraints: [TestInterface, "string", "~int"]
492
+ }), _$createComponent(InterfaceFunction, {
493
+ name: "MemberOne",
494
+ returns: "string"
495
+ })];
496
+ }
497
+ });
498
+ }
499
+ });
500
+ }
501
+ })];
502
+ }
503
+ })).toRenderTo(`
504
+ package alloy
505
+
506
+ type TestInterface interface {
507
+ func MemberOne() string
508
+ }
509
+ type TestInterface2 interface {
510
+ TestInterface
511
+ TestInterface | string | ~int
512
+ func MemberOne() string
513
+ }
514
+ `);
515
+ });
516
+ });
517
+ //# sourceMappingURL=interface.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["List","Output","refkey","render","describe","expect","it","assertFileContents","TestPackage","ModuleDirectory","SourceDirectory","SourceFile","TypeDeclaration","InterfaceDeclaration","InterfaceEmbed","InterfaceFunction","TypeConstraint","Wrapper","props","_$createComponent","children","name","toRenderTo","doc","parameters","type","returns","TestInterfaceEmbed","_$createIntrinsic","TestInterface","res","path","constraints"],"sources":["../../../../src/components/interface/interface.test.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=package.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.test.d.ts","sourceRoot":"","sources":["../../../src/components/package.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,89 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { Output } from "@alloy-js/core";
3
+ import { d } from "@alloy-js/core/testing";
4
+ import { expect, it } from "vitest";
5
+ import { ModuleDirectory } from "./ModuleDirectory.js";
6
+ import { SourceDirectory } from "./SourceDirectory.js";
7
+ import { SourceFile } from "./SourceFile.js";
8
+ import { VariableDeclaration } from "./var/declaration.js";
9
+ it("defines multiple packages and source files with unique content", () => {
10
+ const tree = _$createComponent(Output, {
11
+ get children() {
12
+ return _$createComponent(ModuleDirectory, {
13
+ name: "github.com/alloy-framework/alloy",
14
+ get children() {
15
+ return [_$createComponent(SourceDirectory, {
16
+ path: "package1",
17
+ get children() {
18
+ return [_$createComponent(SourceFile, {
19
+ path: "Model1.go",
20
+ get children() {
21
+ return _$createComponent(VariableDeclaration, {
22
+ name: "Model1",
23
+ type: "string",
24
+ children: "\"This is Model1\""
25
+ });
26
+ }
27
+ }), _$createComponent(SourceFile, {
28
+ path: "Model2.go",
29
+ get children() {
30
+ return _$createComponent(VariableDeclaration, {
31
+ name: "Model2",
32
+ type: "string",
33
+ children: "\"This is Model2\""
34
+ });
35
+ }
36
+ })];
37
+ }
38
+ }), _$createComponent(SourceDirectory, {
39
+ path: "package2",
40
+ get children() {
41
+ return [_$createComponent(SourceFile, {
42
+ path: "Model3.go",
43
+ get children() {
44
+ return _$createComponent(VariableDeclaration, {
45
+ name: "Model3",
46
+ type: "string",
47
+ children: "\"This is Model3\""
48
+ });
49
+ }
50
+ }), _$createComponent(SourceFile, {
51
+ path: "Model4.go",
52
+ get children() {
53
+ return _$createComponent(VariableDeclaration, {
54
+ name: "Model4",
55
+ type: "string",
56
+ children: "\"This is Model4\""
57
+ });
58
+ }
59
+ })];
60
+ }
61
+ })];
62
+ }
63
+ });
64
+ }
65
+ });
66
+ expect(tree).toRenderTo({
67
+ "package1/Model1.go": d`
68
+ package package1
69
+
70
+ var Model1 string = "This is Model1"
71
+ `,
72
+ "package1/Model2.go": d`
73
+ package package1
74
+
75
+ var Model2 string = "This is Model2"
76
+ `,
77
+ "package2/Model3.go": d`
78
+ package package2
79
+
80
+ var Model3 string = "This is Model3"
81
+ `,
82
+ "package2/Model4.go": d`
83
+ package package2
84
+
85
+ var Model4 string = "This is Model4"
86
+ `
87
+ });
88
+ });
89
+ //# sourceMappingURL=package.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Output","d","expect","it","ModuleDirectory","SourceDirectory","SourceFile","VariableDeclaration","tree","_$createComponent","children","name","path","type","toRenderTo"],"sources":["../../../src/components/package.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,QAAQ,gBAAgB;AACvC,SAASC,CAAC,QAAQ,wBAAwB;AAC1C,SAASC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,eAAe;AACxB,SAASC,eAAe;AACxB,SAASC,UAAU;AACnB,SAASC,mBAAmB;AAE5BJ,EAAE,CAAC,gEAAgE,EAAE,MAAM;EACzE,MAAMK,IAAI,GAAAC,iBAAA,CACPT,MAAM;IAAA,IAAAU,SAAA;MAAA,OAAAD,iBAAA,CACJL,eAAe;QAACO,IAAI;QAAA,IAAAD,SAAA;UAAA,QAAAD,iBAAA,CAClBJ,eAAe;YAACO,IAAI;YAAA,IAAAF,SAAA;cAAA,QAAAD,iBAAA,CAClBH,UAAU;gBAACM,IAAI;gBAAA,IAAAF,SAAA;kBAAA,OAAAD,iBAAA,CACbF,mBAAmB;oBAACI,IAAI;oBAAUE,IAAI;oBAAAH,QAAA;kBAAA;gBAAA;cAAA,IAAAD,iBAAA,CAIxCH,UAAU;gBAACM,IAAI;gBAAA,IAAAF,SAAA;kBAAA,OAAAD,iBAAA,CACbF,mBAAmB;oBAACI,IAAI;oBAAUE,IAAI;oBAAAH,QAAA;kBAAA;gBAAA;cAAA;YAAA;UAAA,IAAAD,iBAAA,CAK1CJ,eAAe;YAACO,IAAI;YAAA,IAAAF,SAAA;cAAA,QAAAD,iBAAA,CAClBH,UAAU;gBAACM,IAAI;gBAAA,IAAAF,SAAA;kBAAA,OAAAD,iBAAA,CACbF,mBAAmB;oBAACI,IAAI;oBAAUE,IAAI;oBAAAH,QAAA;kBAAA;gBAAA;cAAA,IAAAD,iBAAA,CAIxCH,UAAU;gBAACM,IAAI;gBAAA,IAAAF,SAAA;kBAAA,OAAAD,iBAAA,CACbF,mBAAmB;oBAACI,IAAI;oBAAUE,IAAI;oBAAAH,QAAA;kBAAA;gBAAA;cAAA;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA,EAOhD;EAEDR,MAAM,CAACM,IAAI,CAAC,CAACM,UAAU,CAAC;IACtB,oBAAoB,EAAEb,CAAC;AAC3B;AACA;AACA;AACA,KAAK;IACD,oBAAoB,EAAEA,CAAC;AAC3B;AACA;AACA;AACA,KAAK;IACD,oBAAoB,EAAEA,CAAC;AAC3B;AACA;AACA;AACA,KAAK;IACD,oBAAoB,EAAEA,CAAC;AAC3B;AACA;AACA;AACA;EACE,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { Children, Namekey, Refkey } from "@alloy-js/core";
2
+ export interface FunctionParameterProps {
3
+ name: string | Namekey;
4
+ type: Children;
5
+ variadic?: boolean;
6
+ refkey?: Refkey;
7
+ }
8
+ /** Define a parameter to be used in functions. */
9
+ export declare function FunctionParameter(props: FunctionParameterProps): Children;
10
+ export interface FunctionParametersProps {
11
+ parameters: FunctionParameterProps[] | undefined;
12
+ }
13
+ /** Render a collection of parameters */
14
+ export declare function FunctionParameters(props: FunctionParametersProps): Children;
15
+ //# sourceMappingURL=parameters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../../../src/components/parameters/parameters.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAKR,OAAO,EACP,MAAM,EACP,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,YAc9D;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,sBAAsB,EAAE,GAAG,SAAS,CAAC;CAClD;AAED,wCAAwC;AACxC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,YAgChE"}