@alloy-js/go 0.3.0-dev.2 → 0.3.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 (109) hide show
  1. package/dist/dev/src/builtins/fmt/fmt.js +148 -0
  2. package/dist/dev/src/builtins/fmt/fmt.js.map +1 -0
  3. package/dist/dev/src/builtins/index.js +11 -0
  4. package/dist/dev/src/builtins/index.js.map +1 -0
  5. package/dist/dev/src/builtins/io/io.js +650 -0
  6. package/dist/dev/src/builtins/io/io.js.map +1 -0
  7. package/dist/dev/src/builtins/net/net.js +1212 -0
  8. package/dist/dev/src/builtins/net/net.js.map +1 -0
  9. package/dist/dev/src/builtins/time/time.js +464 -0
  10. package/dist/dev/src/builtins/time/time.js.map +1 -0
  11. package/dist/dev/src/components/ImportStatement.js +114 -0
  12. package/dist/dev/src/components/ImportStatement.js.map +1 -0
  13. package/dist/dev/src/components/ModuleDirectory.js +28 -0
  14. package/dist/dev/src/components/ModuleDirectory.js.map +1 -0
  15. package/dist/dev/src/components/Name.js +12 -0
  16. package/dist/dev/src/components/Name.js.map +1 -0
  17. package/dist/dev/src/components/Reference.js +15 -0
  18. package/dist/dev/src/components/Reference.js.map +1 -0
  19. package/dist/dev/src/components/SourceDirectory.js +38 -0
  20. package/dist/dev/src/components/SourceDirectory.js.map +1 -0
  21. package/dist/dev/src/components/SourceFile.js +119 -0
  22. package/dist/dev/src/components/SourceFile.js.map +1 -0
  23. package/dist/dev/src/components/doc/comment.js +46 -0
  24. package/dist/dev/src/components/doc/comment.js.map +1 -0
  25. package/dist/dev/src/components/doc/comment.test.js +371 -0
  26. package/dist/dev/src/components/doc/comment.test.js.map +1 -0
  27. package/dist/dev/src/components/function/function.js +250 -0
  28. package/dist/dev/src/components/function/function.js.map +1 -0
  29. package/dist/dev/src/components/function/function.test.js +630 -0
  30. package/dist/dev/src/components/function/function.test.js.map +1 -0
  31. package/dist/dev/src/components/index.js +16 -0
  32. package/dist/dev/src/components/index.js.map +1 -0
  33. package/dist/dev/src/components/interface/declaration.js +245 -0
  34. package/dist/dev/src/components/interface/declaration.js.map +1 -0
  35. package/dist/dev/src/components/interface/interface.test.js +853 -0
  36. package/dist/dev/src/components/interface/interface.test.js.map +1 -0
  37. package/dist/dev/src/components/package.test.js +137 -0
  38. package/dist/dev/src/components/package.test.js.map +1 -0
  39. package/dist/dev/src/components/parameters/parameters.js +102 -0
  40. package/dist/dev/src/components/parameters/parameters.js.map +1 -0
  41. package/dist/dev/src/components/parameters/typeparameters.js +93 -0
  42. package/dist/dev/src/components/parameters/typeparameters.js.map +1 -0
  43. package/dist/dev/src/components/pointer/pointer.js +8 -0
  44. package/dist/dev/src/components/pointer/pointer.js.map +1 -0
  45. package/dist/dev/src/components/stc/index.js +27 -0
  46. package/dist/dev/src/components/stc/index.js.map +1 -0
  47. package/dist/dev/src/components/struct/declaration.js +213 -0
  48. package/dist/dev/src/components/struct/declaration.js.map +1 -0
  49. package/dist/dev/src/components/struct/struct.test.js +1261 -0
  50. package/dist/dev/src/components/struct/struct.test.js.map +1 -0
  51. package/dist/dev/src/components/type/declaration.js +112 -0
  52. package/dist/dev/src/components/type/declaration.js.map +1 -0
  53. package/dist/dev/src/components/var/declaration.js +136 -0
  54. package/dist/dev/src/components/var/declaration.js.map +1 -0
  55. package/dist/dev/src/components/var/var-declaration.test.js +564 -0
  56. package/dist/dev/src/components/var/var-declaration.test.js.map +1 -0
  57. package/dist/dev/src/context/package.js +6 -0
  58. package/dist/dev/src/context/package.js.map +1 -0
  59. package/dist/dev/src/create-module.js +157 -0
  60. package/dist/dev/src/create-module.js.map +1 -0
  61. package/dist/dev/src/create-module.test.js +175 -0
  62. package/dist/dev/src/create-module.test.js.map +1 -0
  63. package/dist/dev/src/index.js +7 -0
  64. package/dist/dev/src/index.js.map +1 -0
  65. package/dist/dev/src/name-policy.js +27 -0
  66. package/dist/dev/src/name-policy.js.map +1 -0
  67. package/dist/dev/src/scopes/contexts.js +34 -0
  68. package/dist/dev/src/scopes/contexts.js.map +1 -0
  69. package/dist/dev/src/scopes/factories.js +17 -0
  70. package/dist/dev/src/scopes/factories.js.map +1 -0
  71. package/dist/dev/src/scopes/function.js +14 -0
  72. package/dist/dev/src/scopes/function.js.map +1 -0
  73. package/dist/dev/src/scopes/go.js +12 -0
  74. package/dist/dev/src/scopes/go.js.map +1 -0
  75. package/dist/dev/src/scopes/index.js +10 -0
  76. package/dist/dev/src/scopes/index.js.map +1 -0
  77. package/dist/dev/src/scopes/lexical.js +11 -0
  78. package/dist/dev/src/scopes/lexical.js.map +1 -0
  79. package/dist/dev/src/scopes/module.js +31 -0
  80. package/dist/dev/src/scopes/module.js.map +1 -0
  81. package/dist/dev/src/scopes/named-type.js +33 -0
  82. package/dist/dev/src/scopes/named-type.js.map +1 -0
  83. package/dist/dev/src/scopes/package.js +39 -0
  84. package/dist/dev/src/scopes/package.js.map +1 -0
  85. package/dist/dev/src/scopes/source-file.js +43 -0
  86. package/dist/dev/src/scopes/source-file.js.map +1 -0
  87. package/dist/dev/src/symbols/factories.js +165 -0
  88. package/dist/dev/src/symbols/factories.js.map +1 -0
  89. package/dist/dev/src/symbols/function.js +24 -0
  90. package/dist/dev/src/symbols/function.js.map +1 -0
  91. package/dist/dev/src/symbols/go.js +60 -0
  92. package/dist/dev/src/symbols/go.js.map +1 -0
  93. package/dist/dev/src/symbols/index.js +7 -0
  94. package/dist/dev/src/symbols/index.js.map +1 -0
  95. package/dist/dev/src/symbols/named-type.js +42 -0
  96. package/dist/dev/src/symbols/named-type.js.map +1 -0
  97. package/dist/dev/src/symbols/package.js +39 -0
  98. package/dist/dev/src/symbols/package.js.map +1 -0
  99. package/dist/dev/src/symbols/reference.js +76 -0
  100. package/dist/dev/src/symbols/reference.js.map +1 -0
  101. package/dist/dev/src/symbols/type-parameter.js +16 -0
  102. package/dist/dev/src/symbols/type-parameter.js.map +1 -0
  103. package/dist/dev/test/utils.js +92 -0
  104. package/dist/dev/test/utils.js.map +1 -0
  105. package/dist/dev/test/vitest.setup.js +2 -0
  106. package/dist/dev/test/vitest.setup.js.map +1 -0
  107. package/dist/tsconfig.tsbuildinfo +1 -1
  108. package/package.json +7 -4
  109. package/vitest.config.ts +8 -0
@@ -0,0 +1,245 @@
1
+ import { createComponent as _$createComponent, mergeProps as _$mergeProps, memo as _$memo, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
2
+ import { Block, Declaration, DeclarationContext, effect, For, memo, Scope, Show, takeSymbols, useContext, watch } from "@alloy-js/core";
3
+ import { useGoScope, useNamedTypeScope } from "../../scopes/contexts.js";
4
+ import { createFunctionScope, createNamedTypeScope } from "../../scopes/factories.js";
5
+ import { GoNamedTypeScope } from "../../scopes/named-type.js";
6
+ import { createAnonymousTypeSymbol, createInterfaceMemberSymbol } from "../../symbols/factories.js";
7
+ import { LineComment } from "../doc/comment.js";
8
+ import { Name } from "../Name.js";
9
+ import { FunctionParameters } from "../parameters/parameters.js";
10
+ import { TypeDeclaration } from "../type/declaration.js";
11
+
12
+ /**
13
+ * Properties for creating an interface declaration.
14
+ * This can be used for both named and anonymous interfaces.
15
+ * For named interfaces, use `InterfaceTypeDeclarationProps` instead.
16
+ */
17
+
18
+ /**
19
+ * Properties for creating a named interface type declaration.
20
+ * This is a combination of `InterfaceDeclarationProps` and `TypeDeclarationProps`.
21
+ */
22
+
23
+ /**
24
+ * Wrapper for creating a named interface type declaration.
25
+ */
26
+ export function InterfaceTypeDeclaration(props) {
27
+ return _$createComponent(TypeDeclaration, _$mergeProps(props, {
28
+ get children() {
29
+ return _$createComponent(InterfaceDeclaration, props, {
30
+ fileName: import.meta.url,
31
+ lineNumber: 68,
32
+ columnNumber: 7
33
+ });
34
+ }
35
+ }), {
36
+ fileName: import.meta.url,
37
+ lineNumber: 67,
38
+ columnNumber: 5
39
+ });
40
+ }
41
+
42
+ /**
43
+ * Go interface declaration.
44
+ * @example
45
+ * ```tsx
46
+ * <InterfaceDeclaration>
47
+ * <InterfaceEmbed>{MyOtherInterface}</InterfaceEmbed>
48
+ * <InterfaceFunction name="MyFunc" parameters={params} returns="int" />
49
+ * </InterfaceDeclaration>
50
+ * ```
51
+ * This will produce:
52
+ * ```go
53
+ * interface {
54
+ * MyOtherInterface
55
+ * func MyFunc(param Param) int
56
+ * }
57
+ * ```
58
+ */
59
+ export function InterfaceDeclaration(props) {
60
+ const scope = useGoScope();
61
+ let interfaceScope;
62
+ if (!(scope instanceof GoNamedTypeScope) || scope.ownerSymbol.typeKind !== "type") {
63
+ const declSymbol = useContext(DeclarationContext);
64
+ // this is an anonymous interface
65
+ if (!declSymbol) {
66
+ // this can only happen when instantiating an interface directly
67
+ const anonymousSymbol = createAnonymousTypeSymbol("interface");
68
+ const anonymousScope = createNamedTypeScope(anonymousSymbol);
69
+ interfaceScope = anonymousScope;
70
+ } else {
71
+ // this is most likely a struct field
72
+ const anonymousScope = createNamedTypeScope(declSymbol);
73
+ interfaceScope = anonymousScope;
74
+ }
75
+ } else {
76
+ scope.ownerSymbol.typeKind = "interface";
77
+ }
78
+ const content = memo(() => {
79
+ if (props.children) {
80
+ if (props.singleLine) {
81
+ return ["{", " ", _$memo(() => props.children, false, "props.children"), " ", "}"];
82
+ } else {
83
+ return [" ", _$createComponent(Block, {
84
+ get children() {
85
+ return props.children;
86
+ }
87
+ }, {
88
+ fileName: import.meta.url,
89
+ lineNumber: 127,
90
+ columnNumber: 13
91
+ })];
92
+ }
93
+ } else {
94
+ return "{}";
95
+ }
96
+ });
97
+ return ["interface", interfaceScope ? _$createComponent(Scope, {
98
+ value: interfaceScope,
99
+ children: content
100
+ }, {
101
+ fileName: import.meta.url,
102
+ lineNumber: 140,
103
+ columnNumber: 9
104
+ }) : content];
105
+ }
106
+ export function InterfaceFunction(props) {
107
+ const symbol = createInterfaceMemberSymbol(props.name, {
108
+ refkeys: props.refkey
109
+ });
110
+ const functionScope = createFunctionScope();
111
+ return _$createComponent(Declaration, {
112
+ symbol: symbol,
113
+ get children() {
114
+ return _$createComponent(Scope, {
115
+ value: functionScope,
116
+ get children() {
117
+ return [_$createComponent(Show, {
118
+ get when() {
119
+ return Boolean(props.doc);
120
+ },
121
+ get children() {
122
+ return [_$createComponent(LineComment, {
123
+ get children() {
124
+ return props.doc;
125
+ }
126
+ }, {
127
+ fileName: import.meta.url,
128
+ lineNumber: 165,
129
+ columnNumber: 11
130
+ }), _$createIntrinsic("hbr", {}, {
131
+ fileName: import.meta.url,
132
+ lineNumber: 166,
133
+ columnNumber: 11
134
+ })];
135
+ }
136
+ }, {
137
+ fileName: import.meta.url,
138
+ lineNumber: 164,
139
+ columnNumber: 9
140
+ }), "func ", _$createComponent(Name, {}, {
141
+ fileName: import.meta.url,
142
+ lineNumber: 168,
143
+ columnNumber: 14
144
+ }), _$createComponent(FunctionParameters, {
145
+ get parameters() {
146
+ return props.parameters;
147
+ }
148
+ }, {
149
+ fileName: import.meta.url,
150
+ lineNumber: 169,
151
+ columnNumber: 9
152
+ }), _$memo(() => _$memo(() => !!props.returns)() ? [" ", _$memo(() => props.returns, false, "props.returns")] : null, false, "_$memo(\u2026)(\u2026) ? \u2026")];
153
+ }
154
+ }, {
155
+ fileName: import.meta.url,
156
+ lineNumber: 163,
157
+ columnNumber: 7
158
+ });
159
+ }
160
+ }, {
161
+ fileName: import.meta.url,
162
+ lineNumber: 162,
163
+ columnNumber: 5
164
+ });
165
+ }
166
+ export function InterfaceEmbed(props) {
167
+ let typeName = "<Unresolved symbol>";
168
+ if (props.children) {
169
+ if (typeof props.children === "string") {
170
+ typeName = props.children;
171
+ }
172
+ }
173
+ const memberSymbol = createInterfaceMemberSymbol(typeName, {
174
+ refkeys: props.refkey
175
+ });
176
+ const taken = takeSymbols();
177
+ effect(() => {
178
+ if (taken.size !== 1) return;
179
+ const symbol = Array.from(taken)[0];
180
+ memberSymbol.name = symbol.name;
181
+ watch(() => symbol.name, () => {
182
+ memberSymbol.name = symbol.name;
183
+ });
184
+ const namedTypeScope = useNamedTypeScope();
185
+ symbol.copyMembersTo(namedTypeScope.ownerSymbol);
186
+ });
187
+ return _$createComponent(Declaration, {
188
+ symbol: memberSymbol,
189
+ get children() {
190
+ return [_$createComponent(Show, {
191
+ get when() {
192
+ return Boolean(props.doc);
193
+ },
194
+ get children() {
195
+ return [_$createComponent(LineComment, {
196
+ get children() {
197
+ return props.doc;
198
+ }
199
+ }, {
200
+ fileName: import.meta.url,
201
+ lineNumber: 215,
202
+ columnNumber: 9
203
+ }), _$createIntrinsic("hbr", {}, {
204
+ fileName: import.meta.url,
205
+ lineNumber: 216,
206
+ columnNumber: 9
207
+ })];
208
+ }
209
+ }, {
210
+ fileName: import.meta.url,
211
+ lineNumber: 214,
212
+ columnNumber: 7
213
+ }), _$memo(() => props.children, false, "props.children")];
214
+ }
215
+ }, {
216
+ fileName: import.meta.url,
217
+ lineNumber: 213,
218
+ columnNumber: 5
219
+ });
220
+ }
221
+ export function TypeConstraint(props) {
222
+ const constraints = [];
223
+ if (!props.constraints || props.constraints.length === 0) {
224
+ if (props.children) {
225
+ constraints.push(props.children);
226
+ } else {
227
+ throw new Error("TypeConstraint requires constraints or children.");
228
+ }
229
+ } else {
230
+ if (props.children) {
231
+ throw new Error("TypeConstraint cannot have both constraints and children.");
232
+ }
233
+ constraints.push(...props.constraints);
234
+ }
235
+ return _$createComponent(For, {
236
+ each: constraints,
237
+ joiner: " | ",
238
+ children: constraint => [constraint]
239
+ }, {
240
+ fileName: import.meta.url,
241
+ lineNumber: 246,
242
+ columnNumber: 5
243
+ });
244
+ }
245
+ //# sourceMappingURL=declaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Block","Declaration","DeclarationContext","effect","For","memo","Scope","Show","takeSymbols","useContext","watch","useGoScope","useNamedTypeScope","createFunctionScope","createNamedTypeScope","GoNamedTypeScope","createAnonymousTypeSymbol","createInterfaceMemberSymbol","LineComment","Name","FunctionParameters","TypeDeclaration","InterfaceTypeDeclaration","props","_$createComponent","_$mergeProps","children","InterfaceDeclaration","fileName","import","meta","url","lineNumber","columnNumber","scope","interfaceScope","ownerSymbol","typeKind","declSymbol","anonymousSymbol","anonymousScope","content","singleLine","_$memo","value","InterfaceFunction","symbol","name","refkeys","refkey","functionScope","when","Boolean","doc","_$createIntrinsic","parameters","returns","InterfaceEmbed","typeName","memberSymbol","taken","size","Array","from","namedTypeScope","copyMembersTo","TypeConstraint","constraints","length","push","Error","each","joiner","constraint"],"sources":["../../../../../src/components/interface/declaration.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}