@alloy-js/csharp 0.19.0-dev.2 → 0.19.0-dev.5
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.
- package/dist/src/components/ClassDeclaration.d.ts +0 -16
- package/dist/src/components/ClassDeclaration.d.ts.map +1 -1
- package/dist/src/components/ClassDeclaration.js +1 -74
- package/dist/src/components/constructor/constructor.d.ts +17 -0
- package/dist/src/components/constructor/constructor.d.ts.map +1 -0
- package/dist/src/components/constructor/constructor.js +47 -0
- package/dist/src/components/constructor/constructor.test.d.ts +2 -0
- package/dist/src/components/constructor/constructor.test.d.ts.map +1 -0
- package/dist/src/components/constructor/constructor.test.js +54 -0
- package/dist/src/components/field/field.d.ts +12 -0
- package/dist/src/components/field/field.d.ts.map +1 -0
- package/dist/src/components/field/field.js +34 -0
- package/dist/src/components/field/field.test.d.ts +2 -0
- package/dist/src/components/field/field.test.d.ts.map +1 -0
- package/dist/src/components/field/field.test.js +37 -0
- package/dist/src/components/index.d.ts +3 -1
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +3 -1
- package/dist/src/components/{ClassMethod.d.ts → method/method.d.ts} +8 -8
- package/dist/src/components/method/method.d.ts.map +1 -0
- package/dist/src/components/{ClassMethod.js → method/method.js} +12 -12
- package/dist/src/components/method/method.test.d.ts +2 -0
- package/dist/src/components/method/method.test.d.ts.map +1 -0
- package/dist/{test/class-method.test.js → src/components/method/method.test.js} +11 -11
- package/dist/src/components/stc/index.d.ts +3 -3
- package/dist/src/components/stc/index.d.ts.map +1 -1
- package/dist/src/components/stc/index.js +3 -3
- package/dist/src/components/struct/declaration.d.ts +2 -0
- package/dist/src/components/struct/declaration.d.ts.map +1 -1
- package/dist/src/components/struct/declaration.js +6 -2
- package/dist/src/components/struct/declaration.test.js +85 -1
- package/dist/test/class-declaration.test.js +14 -12
- package/dist/test/using.test.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/components/ClassDeclaration.tsx +2 -84
- package/src/components/constructor/constructor.test.tsx +41 -0
- package/src/components/constructor/constructor.tsx +67 -0
- package/src/components/field/field.test.tsx +24 -0
- package/src/components/field/field.tsx +50 -0
- package/src/components/index.ts +3 -1
- package/{test/class-method.test.tsx → src/components/method/method.test.tsx} +12 -17
- package/src/components/{ClassMethod.tsx → method/method.tsx} +21 -18
- package/src/components/stc/index.ts +3 -3
- package/src/components/struct/declaration.test.tsx +63 -1
- package/src/components/struct/declaration.tsx +11 -0
- package/temp/api.json +2148 -2153
- package/test/class-declaration.test.tsx +16 -33
- package/test/using.test.tsx +1 -1
- package/dist/src/components/ClassMethod.d.ts.map +0 -1
- package/dist/test/class-method.test.d.ts +0 -2
- package/dist/test/class-method.test.d.ts.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import * as core from "@alloy-js/core";
|
|
3
|
+
import { join } from "@alloy-js/core";
|
|
3
4
|
import { computeModifiersPrefix, getAccessModifier, makeModifiers } from "../../modifiers.js";
|
|
4
5
|
import { useCSharpNamePolicy } from "../../name-policy.js";
|
|
5
6
|
import { CSharpOutputSymbol } from "../../symbols/csharp-output-symbol.js";
|
|
@@ -42,6 +43,9 @@ export function StructDeclaration(props) {
|
|
|
42
43
|
owner: thisStructSymbol
|
|
43
44
|
});
|
|
44
45
|
const modifiers = computeModifiersPrefix([getAccessModifier(props), getStructModifiers(props)]);
|
|
46
|
+
const base = props.interfaceTypes && props.interfaceTypes.length > 0 ? [" : ", _$memo(() => join(props.interfaceTypes, {
|
|
47
|
+
joiner: ", "
|
|
48
|
+
}))] : null;
|
|
45
49
|
return _$createComponent(core.Declaration, {
|
|
46
50
|
symbol: thisStructSymbol,
|
|
47
51
|
get children() {
|
|
@@ -58,7 +62,7 @@ export function StructDeclaration(props) {
|
|
|
58
62
|
get parameters() {
|
|
59
63
|
return props.typeParameters;
|
|
60
64
|
}
|
|
61
|
-
})), _$memo(() => _$memo(() => !!props.typeParameters)() && _$createComponent(TypeParameterConstraints, {
|
|
65
|
+
})), base, _$memo(() => _$memo(() => !!props.typeParameters)() && _$createComponent(TypeParameterConstraints, {
|
|
62
66
|
get parameters() {
|
|
63
67
|
return props.typeParameters;
|
|
64
68
|
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { createComponent as _$createComponent, mergeProps as _$mergeProps } from "@alloy-js/core/jsx-runtime";
|
|
2
|
-
import { List, refkey } from "@alloy-js/core";
|
|
2
|
+
import { List, refkey, StatementList } from "@alloy-js/core";
|
|
3
3
|
import { describe, expect, it } from "vitest";
|
|
4
4
|
import { TestNamespace } from "../../../test/utils.js";
|
|
5
5
|
import { Attribute } from "../attributes/attributes.js";
|
|
6
|
+
import { Constructor } from "../constructor/constructor.js";
|
|
7
|
+
import { Field } from "../field/field.js";
|
|
8
|
+
import { Method } from "../method/method.js";
|
|
6
9
|
import { Property } from "../property/property.js";
|
|
7
10
|
import { SourceFile } from "../SourceFile.js";
|
|
8
11
|
import { StructDeclaration } from "./declaration.js";
|
|
@@ -168,4 +171,85 @@ it("specify attributes", () => {
|
|
|
168
171
|
[Test]
|
|
169
172
|
struct Test;
|
|
170
173
|
`);
|
|
174
|
+
});
|
|
175
|
+
it("define methods", () => {
|
|
176
|
+
expect(_$createComponent(TestNamespace, {
|
|
177
|
+
get children() {
|
|
178
|
+
return _$createComponent(StructDeclaration, {
|
|
179
|
+
name: "Test",
|
|
180
|
+
get children() {
|
|
181
|
+
return _$createComponent(Method, {
|
|
182
|
+
name: "MethodOne"
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
})).toRenderTo(`
|
|
188
|
+
struct Test
|
|
189
|
+
{
|
|
190
|
+
void MethodOne() {}
|
|
191
|
+
}
|
|
192
|
+
`);
|
|
193
|
+
});
|
|
194
|
+
it("define constructor", () => {
|
|
195
|
+
expect(_$createComponent(TestNamespace, {
|
|
196
|
+
get children() {
|
|
197
|
+
return _$createComponent(StructDeclaration, {
|
|
198
|
+
name: "Test",
|
|
199
|
+
get children() {
|
|
200
|
+
return _$createComponent(Constructor, {
|
|
201
|
+
"public": true
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
})).toRenderTo(`
|
|
207
|
+
struct Test
|
|
208
|
+
{
|
|
209
|
+
public Test() {}
|
|
210
|
+
}
|
|
211
|
+
`);
|
|
212
|
+
});
|
|
213
|
+
it("defines fields", () => {
|
|
214
|
+
expect(_$createComponent(TestNamespace, {
|
|
215
|
+
get children() {
|
|
216
|
+
return _$createComponent(StructDeclaration, {
|
|
217
|
+
"public": true,
|
|
218
|
+
name: "TestClass",
|
|
219
|
+
get children() {
|
|
220
|
+
return _$createComponent(StatementList, {
|
|
221
|
+
get children() {
|
|
222
|
+
return [_$createComponent(Field, {
|
|
223
|
+
"public": true,
|
|
224
|
+
name: "MemberOne",
|
|
225
|
+
type: "string"
|
|
226
|
+
}), _$createComponent(Field, {
|
|
227
|
+
"private": true,
|
|
228
|
+
name: "MemberTwo",
|
|
229
|
+
type: "int"
|
|
230
|
+
})];
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
})).toRenderTo(`
|
|
237
|
+
public struct TestClass
|
|
238
|
+
{
|
|
239
|
+
public string MemberOne;
|
|
240
|
+
private int memberTwo;
|
|
241
|
+
}
|
|
242
|
+
`);
|
|
243
|
+
});
|
|
244
|
+
it("define multiple interface types", () => {
|
|
245
|
+
expect(_$createComponent(TestNamespace, {
|
|
246
|
+
get children() {
|
|
247
|
+
return _$createComponent(StructDeclaration, {
|
|
248
|
+
name: "Test",
|
|
249
|
+
interfaceTypes: ["Foo", "Bar"]
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
})).toRenderTo(`
|
|
253
|
+
struct Test : Foo, Bar;
|
|
254
|
+
`);
|
|
171
255
|
});
|
|
@@ -4,8 +4,10 @@ import { List, refkey } from "@alloy-js/core";
|
|
|
4
4
|
import * as coretest from "@alloy-js/core/testing";
|
|
5
5
|
import { describe, expect, it } from "vitest";
|
|
6
6
|
import { Attribute } from "../src/components/attributes/attributes.js";
|
|
7
|
+
import { Field } from "../src/components/field/field.js";
|
|
8
|
+
import { Constructor } from "../src/components/stc/index.js";
|
|
7
9
|
import * as csharp from "../src/index.js";
|
|
8
|
-
import { ClassDeclaration,
|
|
10
|
+
import { ClassDeclaration, Property, SourceFile } from "../src/index.js";
|
|
9
11
|
import * as utils from "./utils.js";
|
|
10
12
|
it("declares class with no members", () => {
|
|
11
13
|
expect(_$createComponent(utils.TestNamespace, {
|
|
@@ -106,11 +108,11 @@ it("declares class with some members", () => {
|
|
|
106
108
|
get children() {
|
|
107
109
|
return _$createComponent(core.StatementList, {
|
|
108
110
|
get children() {
|
|
109
|
-
return [_$createComponent(
|
|
111
|
+
return [_$createComponent(Field, {
|
|
110
112
|
"public": true,
|
|
111
113
|
name: "MemberOne",
|
|
112
114
|
type: "string"
|
|
113
|
-
}), _$createComponent(
|
|
115
|
+
}), _$createComponent(Field, {
|
|
114
116
|
"private": true,
|
|
115
117
|
name: "MemberTwo",
|
|
116
118
|
type: "int"
|
|
@@ -137,10 +139,10 @@ it("declares class with some methods", () => {
|
|
|
137
139
|
get children() {
|
|
138
140
|
return _$createComponent(core.List, {
|
|
139
141
|
get children() {
|
|
140
|
-
return [_$createComponent(csharp.
|
|
142
|
+
return [_$createComponent(csharp.Method, {
|
|
141
143
|
"public": true,
|
|
142
144
|
name: "MethodOne"
|
|
143
|
-
}), _$createComponent(csharp.
|
|
145
|
+
}), _$createComponent(csharp.Method, {
|
|
144
146
|
"private": true,
|
|
145
147
|
virtual: true,
|
|
146
148
|
name: "MethodTwo"
|
|
@@ -211,11 +213,11 @@ it("uses refkeys for members, params, and return type", () => {
|
|
|
211
213
|
"public": true,
|
|
212
214
|
name: "TestClass",
|
|
213
215
|
get children() {
|
|
214
|
-
return [_$createComponent(
|
|
216
|
+
return [_$createComponent(Field, {
|
|
215
217
|
"private": true,
|
|
216
218
|
name: "MemberOne",
|
|
217
219
|
type: enumTypeRefkey
|
|
218
|
-
}), ";", _$createIntrinsic("hbr", {}), _$createComponent(csharp.
|
|
220
|
+
}), ";", _$createIntrinsic("hbr", {}), _$createComponent(csharp.Method, {
|
|
219
221
|
"public": true,
|
|
220
222
|
name: "MethodOne",
|
|
221
223
|
parameters: params,
|
|
@@ -353,7 +355,7 @@ it("declares class with constructor", () => {
|
|
|
353
355
|
"public": true,
|
|
354
356
|
name: "TestClass",
|
|
355
357
|
get children() {
|
|
356
|
-
return _$createComponent(
|
|
358
|
+
return _$createComponent(Constructor, {
|
|
357
359
|
"public": true
|
|
358
360
|
});
|
|
359
361
|
}
|
|
@@ -386,17 +388,17 @@ it("declares class with constructor params and assigns values to fields", () =>
|
|
|
386
388
|
"public": true,
|
|
387
389
|
name: "TestClass",
|
|
388
390
|
get children() {
|
|
389
|
-
return [_$createComponent(
|
|
391
|
+
return [_$createComponent(Field, {
|
|
390
392
|
"private": true,
|
|
391
393
|
name: "name",
|
|
392
394
|
type: "string",
|
|
393
395
|
refkey: thisNameRefkey
|
|
394
|
-
}), ";", _$createIntrinsic("hbr", {}), _$createComponent(
|
|
396
|
+
}), ";", _$createIntrinsic("hbr", {}), _$createComponent(Field, {
|
|
395
397
|
"private": true,
|
|
396
398
|
name: "size",
|
|
397
399
|
type: "int",
|
|
398
400
|
refkey: thisSizeRefkey
|
|
399
|
-
}), ";", _$createIntrinsic("hbr", {}), _$createComponent(
|
|
401
|
+
}), ";", _$createIntrinsic("hbr", {}), _$createComponent(Constructor, {
|
|
400
402
|
"public": true,
|
|
401
403
|
parameters: ctorParams,
|
|
402
404
|
get children() {
|
|
@@ -444,7 +446,7 @@ it("supports class member doc comments", () => {
|
|
|
444
446
|
name: "Test",
|
|
445
447
|
doc: "This is a test",
|
|
446
448
|
get children() {
|
|
447
|
-
return _$createComponent(
|
|
449
|
+
return _$createComponent(Field, {
|
|
448
450
|
name: "Member",
|
|
449
451
|
"public": true,
|
|
450
452
|
type: "int",
|
package/dist/test/using.test.js
CHANGED
|
@@ -97,7 +97,7 @@ it("adds using statement across namespaces", () => {
|
|
|
97
97
|
"public": true,
|
|
98
98
|
name: "Client",
|
|
99
99
|
get children() {
|
|
100
|
-
return _$createComponent(csharp.
|
|
100
|
+
return _$createComponent(csharp.Method, {
|
|
101
101
|
"public": true,
|
|
102
102
|
name: "MethodOne",
|
|
103
103
|
parameters: params,
|