@alloy-js/csharp 0.20.0 → 0.21.0-dev.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 (39) hide show
  1. package/dist/src/components/index.d.ts +1 -1
  2. package/dist/src/components/index.d.ts.map +1 -1
  3. package/dist/src/components/index.js +1 -1
  4. package/dist/src/components/index.js.map +1 -1
  5. package/dist/src/components/source-file/source-file.js +2 -2
  6. package/dist/src/components/source-file/source-file.js.map +1 -1
  7. package/dist/src/components/source-file/using.test.d.ts.map +1 -0
  8. package/dist/{test → src/components/source-file}/using.test.js +30 -49
  9. package/dist/src/components/source-file/using.test.js.map +1 -0
  10. package/dist/src/components/stc/index.d.ts +1 -1
  11. package/dist/src/components/stc/index.d.ts.map +1 -1
  12. package/dist/src/components/stc/index.js +1 -1
  13. package/dist/src/components/stc/index.js.map +1 -1
  14. package/dist/src/components/using/using.d.ts +28 -0
  15. package/dist/src/components/using/using.d.ts.map +1 -0
  16. package/dist/src/components/using/using.js +37 -0
  17. package/dist/src/components/using/using.js.map +1 -0
  18. package/dist/src/components/using/using.test.d.ts +2 -0
  19. package/dist/src/components/using/using.test.d.ts.map +1 -0
  20. package/dist/src/components/using/using.test.js +19 -0
  21. package/dist/src/components/using/using.test.js.map +1 -0
  22. package/dist/tsconfig.tsbuildinfo +1 -1
  23. package/package.json +6 -6
  24. package/src/components/index.ts +1 -1
  25. package/src/components/source-file/source-file.tsx +2 -2
  26. package/src/components/source-file/using.test.tsx +94 -0
  27. package/src/components/stc/index.ts +1 -1
  28. package/src/components/using/using.test.tsx +15 -0
  29. package/src/components/using/using.tsx +52 -0
  30. package/temp/api.json +110 -15
  31. package/dist/src/components/UsingDirective.d.ts +0 -10
  32. package/dist/src/components/UsingDirective.d.ts.map +0 -1
  33. package/dist/src/components/UsingDirective.js +0 -15
  34. package/dist/src/components/UsingDirective.js.map +0 -1
  35. package/dist/test/using.test.d.ts.map +0 -1
  36. package/dist/test/using.test.js.map +0 -1
  37. package/src/components/UsingDirective.tsx +0 -28
  38. package/test/using.test.tsx +0 -118
  39. /package/dist/{test → src/components/source-file}/using.test.d.ts +0 -0
@@ -24,6 +24,6 @@ export * from "./Reference.js";
24
24
  export * from "./source-file/source-file.jsx";
25
25
  export * from "./struct/declaration.jsx";
26
26
  export type { TypeParameterProps } from "./type-parameters/type-parameter.jsx";
27
- export * from "./UsingDirective.js";
27
+ export * from "./using/using.jsx";
28
28
  export * from "./var/declaration.jsx";
29
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mDAAmD,CAAC;AAClE,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,YAAY,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mDAAmD,CAAC;AAClE,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,YAAY,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
@@ -23,7 +23,7 @@ export * from "./record/declaration.js";
23
23
  export * from "./Reference.js";
24
24
  export * from "./source-file/source-file.js";
25
25
  export * from "./struct/declaration.js";
26
- export * from "./UsingDirective.js";
26
+ export * from "./using/using.js";
27
27
  export * from "./var/declaration.js";
28
28
  export {};
29
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/components/index.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA;AACA;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C,cAAc,uBAAuB;AACrC,cAAc,yBAAyB;AACvC;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,cAAc,gBAAgB;AAC9B;AACA,cAAc,uBAAuB;AACrC;AACA,cAAc,yBAAyB;AACvC,cAAc,gBAAgB;AAC9B;AACA;AAEA,cAAc,qBAAqB;AACnC;AAAsC","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../../src/components/index.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA;AACA;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C,cAAc,uBAAuB;AACrC,cAAc,yBAAyB;AACvC;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,cAAc,gBAAgB;AAC9B;AACA,cAAc,uBAAuB;AACrC;AACA,cAAc,yBAAyB;AACvC,cAAc,gBAAgB;AAC9B;AACA;AAEA;AACA;AAAsC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import { createComponent as _$createComponent, memo as _$memo, mergeProps as _$mergeProps, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
2
2
  import { NamespaceScopes } from "#components/namespace-scopes.js";
3
3
  import { Reference } from "#components/Reference.js";
4
- import { UsingDirective } from "#components/UsingDirective.js";
4
+ import { Usings } from "#components/using/using.js";
5
5
  import { Block, computed, SourceFile as CoreSourceFile, Scope, useBinder } from "@alloy-js/core";
6
6
  import { useCsharpFormatOptions } from "../../contexts/format-options.js";
7
7
  import { getGlobalNamespace } from "../../contexts/global-namespace.js";
@@ -44,7 +44,7 @@ export function SourceFile(props) {
44
44
  return _$createComponent(Scope, {
45
45
  value: sourceFileScope,
46
46
  get children() {
47
- return [_$memo(() => _$memo(() => !!(sourceFileScope.usings.size > 0 || props.using && props.using.length > 0))() && [_$createComponent(UsingDirective, {
47
+ return [_$memo(() => _$memo(() => !!(sourceFileScope.usings.size > 0 || props.using && props.using.length > 0))() && [_$createComponent(Usings, {
48
48
  get namespaces() {
49
49
  return usings.value;
50
50
  }
@@ -1 +1 @@
1
- {"version":3,"names":["NamespaceScopes","Reference","UsingDirective","Block","computed","SourceFile","CoreSourceFile","Scope","useBinder","useCsharpFormatOptions","getGlobalNamespace","useNamespaceContext","CSharpSourceFileScope","props","sourceFileScope","path","nsContext","globalNs","nsSymbol","symbol","nsRef","name","undefined","usings","Array","from","concat","using","content","_$createComponent","children","opts","printWidth","tabWidth","useTabs","_$mergeProps","filetype","reference","value","_$memo","size","length","namespaces","_$createIntrinsic","hasBlockNamespace"],"sources":["../../../../src/components/source-file/source-file.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,eAAe;AACxB,SAASC,SAAS;AAClB,SAASC,cAAc;AACvB,SACEC,KAAK,EAELC,QAAQ,EACRC,UAAU,IAAIC,cAAc,EAC5BC,KAAK,EACLC,SAAS,QACJ,gBAAgB;AACvB,SAEEC,sBAAsB,QACjB,kCAAkC;AACzC,SAASC,kBAAkB,QAAQ,oCAAoC;AACvE,SAASC,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,qBAAqB,QAAQ,6BAA6B;;AAGnE;AACA;AACA;;AAeA;AACA,OAAO,SAASP,UAAUA,CAACQ,KAAsB,EAAE;EACjD,MAAMC,eAAe,GAAG,IAAIF,qBAAqB,CAACC,KAAK,CAACE,IAAI,CAAC;EAE7D,MAAMC,SAAS,GAAGL,mBAAmB,CAAC,CAAC;EACvC,MAAMM,QAAQ,GAAGP,kBAAkB,CAACF,SAAS,CAAC,CAAC,CAAC;EAChD,MAAMU,QAAQ,GAAGF,SAAS,GAAGA,SAAS,CAACG,MAAM,GAAGF,QAAQ;EACxD,MAAMG,KAAK,GAAGJ,SAAS,GAAGA,SAAS,CAACG,MAAM,CAACE,IAAI,GAAGC,SAAS;EAC3D,MAAMC,MAAM,GAAGnB,QAAQ,CAAC,MAAM;IAC5B,OACEoB,KAAK,CAACC,IAAI,CAACX,eAAe,CAACS,MAAM,CAAC,CAClCG,MAAM,CAACb,KAAK,CAACc,KAAK,IAAI,EAAE,CAAC;EAC7B,CAAC,CAAC;EAEF,MAAMC,OAAO,GAAGxB,QAAQ,CAAC,MAAAyB,iBAAA,CACtB7B,eAAe;IAACmB,MAAM,EAAED,QAAQ;IAAA,IAAAY,SAAA;MAAA,OAAGjB,KAAK,CAACiB,QAAQ;IAAA;EAAA,EACnD,CAAC;EAEF,MAAMC,IAAI,GAAGtB,sBAAsB,CAAC;IAClCuB,UAAU,EAAEnB,KAAK,CAACmB,UAAU;IAC5BC,QAAQ,EAAEpB,KAAK,CAACoB,QAAQ;IACxBC,OAAO,EAAErB,KAAK,CAACqB;EACjB,CAAC,CAAC;EAEF,OAAAL,iBAAA,CACGvB,cAAc,EAAA6B,YAAA;IAAA,IACbpB,IAAIA,CAAA;MAAA,OAAEF,KAAK,CAACE,IAAI;IAAA;IAChBqB,QAAQ;IACRC,SAAS,EAAEpC;EAAS,GAChB8B,IAAI;IAAA,IAAAD,SAAA;MAAA,OAAAD,iBAAA,CAEPtB,KAAK;QAAC+B,KAAK,EAAExB,eAAe;QAAA,IAAAgB,SAAA;UAAA,QAAAS,MAAA,OAC1BA,MAAA,UAACzB,eAAe,CAACS,MAAM,CAACiB,IAAI,GAAG,CAAC,IAC9B3B,KAAK,CAACc,KAAK,IAAId,KAAK,CAACc,KAAK,CAACc,MAAM,GAAG,CAAE,SAAAZ,iBAAA,CAEpC3B,cAAc;YAAA,IAACwC,UAAUA,CAAA;cAAA,OAAEnB,MAAM,CAACe,KAAK;YAAA;UAAA,IAAAK,iBAAA,aAAAA,iBAAA,YAI3C,GAAAJ,MAAA,OACArB,QAAQ,KAAKD,QAAQ,GACpBW,OAAO,kBAEMR,KAAK,EAAAmB,MAAA,OACfA,MAAA,SAAAzB,eAAe,CAAC8B,iBAAiB,OAE7B,GAAG,EAAAf,iBAAA,CACH1B,KAAK;YAAA2B,QAAA,EAAEF;UAAO,YAAAe,iBAAA,aAAAA,iBAAA,aAKdf,OAAO,CACP,EAEJ;QAAA;MAAA;IAAA;EAAA;AAKb","ignoreList":[]}
1
+ {"version":3,"names":["NamespaceScopes","Reference","Usings","Block","computed","SourceFile","CoreSourceFile","Scope","useBinder","useCsharpFormatOptions","getGlobalNamespace","useNamespaceContext","CSharpSourceFileScope","props","sourceFileScope","path","nsContext","globalNs","nsSymbol","symbol","nsRef","name","undefined","usings","Array","from","concat","using","content","_$createComponent","children","opts","printWidth","tabWidth","useTabs","_$mergeProps","filetype","reference","value","_$memo","size","length","namespaces","_$createIntrinsic","hasBlockNamespace"],"sources":["../../../../src/components/source-file/source-file.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,eAAe;AACxB,SAASC,SAAS;AAClB,SAASC,MAAM;AACf,SACEC,KAAK,EAELC,QAAQ,EACRC,UAAU,IAAIC,cAAc,EAC5BC,KAAK,EACLC,SAAS,QACJ,gBAAgB;AACvB,SAEEC,sBAAsB,QACjB,kCAAkC;AACzC,SAASC,kBAAkB,QAAQ,oCAAoC;AACvE,SAASC,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,qBAAqB,QAAQ,6BAA6B;;AAGnE;AACA;AACA;;AAeA;AACA,OAAO,SAASP,UAAUA,CAACQ,KAAsB,EAAE;EACjD,MAAMC,eAAe,GAAG,IAAIF,qBAAqB,CAACC,KAAK,CAACE,IAAI,CAAC;EAE7D,MAAMC,SAAS,GAAGL,mBAAmB,CAAC,CAAC;EACvC,MAAMM,QAAQ,GAAGP,kBAAkB,CAACF,SAAS,CAAC,CAAC,CAAC;EAChD,MAAMU,QAAQ,GAAGF,SAAS,GAAGA,SAAS,CAACG,MAAM,GAAGF,QAAQ;EACxD,MAAMG,KAAK,GAAGJ,SAAS,GAAGA,SAAS,CAACG,MAAM,CAACE,IAAI,GAAGC,SAAS;EAC3D,MAAMC,MAAM,GAAGnB,QAAQ,CAAC,MAAM;IAC5B,OACEoB,KAAK,CAACC,IAAI,CAACX,eAAe,CAACS,MAAM,CAAC,CAClCG,MAAM,CAACb,KAAK,CAACc,KAAK,IAAI,EAAE,CAAC;EAC7B,CAAC,CAAC;EAEF,MAAMC,OAAO,GAAGxB,QAAQ,CAAC,MAAAyB,iBAAA,CACtB7B,eAAe;IAACmB,MAAM,EAAED,QAAQ;IAAA,IAAAY,SAAA;MAAA,OAAGjB,KAAK,CAACiB,QAAQ;IAAA;EAAA,EACnD,CAAC;EAEF,MAAMC,IAAI,GAAGtB,sBAAsB,CAAC;IAClCuB,UAAU,EAAEnB,KAAK,CAACmB,UAAU;IAC5BC,QAAQ,EAAEpB,KAAK,CAACoB,QAAQ;IACxBC,OAAO,EAAErB,KAAK,CAACqB;EACjB,CAAC,CAAC;EAEF,OAAAL,iBAAA,CACGvB,cAAc,EAAA6B,YAAA;IAAA,IACbpB,IAAIA,CAAA;MAAA,OAAEF,KAAK,CAACE,IAAI;IAAA;IAChBqB,QAAQ;IACRC,SAAS,EAAEpC;EAAS,GAChB8B,IAAI;IAAA,IAAAD,SAAA;MAAA,OAAAD,iBAAA,CAEPtB,KAAK;QAAC+B,KAAK,EAAExB,eAAe;QAAA,IAAAgB,SAAA;UAAA,QAAAS,MAAA,OAC1BA,MAAA,UAACzB,eAAe,CAACS,MAAM,CAACiB,IAAI,GAAG,CAAC,IAC9B3B,KAAK,CAACc,KAAK,IAAId,KAAK,CAACc,KAAK,CAACc,MAAM,GAAG,CAAE,SAAAZ,iBAAA,CAEpC3B,MAAM;YAAA,IAACwC,UAAUA,CAAA;cAAA,OAAEnB,MAAM,CAACe,KAAK;YAAA;UAAA,IAAAK,iBAAA,aAAAA,iBAAA,YAInC,GAAAJ,MAAA,OACArB,QAAQ,KAAKD,QAAQ,GACpBW,OAAO,kBAEMR,KAAK,EAAAmB,MAAA,OACfA,MAAA,SAAAzB,eAAe,CAAC8B,iBAAiB,OAE7B,GAAG,EAAAf,iBAAA,CACH1B,KAAK;YAAA2B,QAAA,EAAEF;UAAO,YAAAe,iBAAA,aAAAA,iBAAA,aAKdf,OAAO,CACP,EAEJ;QAAA;MAAA;IAAA;EAAA;AAKb","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"using.test.d.ts","sourceRoot":"","sources":["../../../../src/components/source-file/using.test.tsx"],"names":[],"mappings":""}
@@ -1,88 +1,69 @@
1
1
  import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
2
- import * as core from "@alloy-js/core";
2
+ import { ClassDeclaration } from "#components/class/declaration.js";
3
+ import { EnumDeclaration } from "#components/enum/declaration.js";
4
+ import { EnumMember } from "#components/enum/member.js";
5
+ import { Method } from "#components/method/method.js";
6
+ import { Namespace } from "#components/namespace.js";
7
+ import { SourceFile } from "#components/source-file/source-file.js";
8
+ import { Output, refkey } from "@alloy-js/core";
3
9
  import * as coretest from "@alloy-js/core/testing";
4
10
  import { expect, it } from "vitest";
5
- import * as csharp from "../src/index.js";
6
- import { findFile } from "./utils.js";
7
- it("uses a single namespace", () => {
8
- const res = core.render(_$createComponent(core.Output, {
11
+ import { createCSharpNamePolicy } from "../../name-policy.js";
12
+ it("using on source file are placed above file namespace statement", () => {
13
+ expect(_$createComponent(Output, {
9
14
  get children() {
10
- return _$createComponent(csharp.Namespace, {
15
+ return _$createComponent(Namespace, {
11
16
  name: "TestCode",
12
17
  get children() {
13
- return _$createComponent(csharp.SourceFile, {
18
+ return _$createComponent(SourceFile, {
14
19
  path: "Test1.cs",
15
20
  using: ["Foo"]
16
21
  });
17
22
  }
18
23
  });
19
24
  }
20
- }));
21
- expect(findFile(res, "Test1.cs").contents).toBe(coretest.d`
25
+ })).toRenderTo(`
22
26
  using Foo;
23
27
 
24
28
  namespace TestCode;
25
-
26
-
27
- `);
28
- });
29
- it("uses multiple namespaces", () => {
30
- const res = core.render(_$createComponent(core.Output, {
31
- get children() {
32
- return _$createComponent(csharp.Namespace, {
33
- name: "TestCode",
34
- get children() {
35
- return _$createComponent(csharp.SourceFile, {
36
- path: "Test1.cs",
37
- using: ["Foo", "Bar.Baz"]
38
- });
39
- }
40
- });
41
- }
42
- }));
43
- expect(findFile(res, "Test1.cs").contents).toBe(coretest.d`
44
- using Bar.Baz;
45
- using Foo;
46
-
47
- namespace TestCode;
48
-
49
29
 
30
+
50
31
  `);
51
32
  });
52
33
  it("adds using statement across namespaces", () => {
53
- const inputTypeRefkey = core.refkey();
54
- const outputTypeRefkey = core.refkey();
55
- const twoValRefkey = core.refkey();
34
+ const inputTypeRefkey = refkey();
35
+ const outputTypeRefkey = refkey();
36
+ const twoValRefkey = refkey();
56
37
  const params = [{
57
38
  name: "BodyParam",
58
39
  type: inputTypeRefkey
59
40
  }];
60
- expect(_$createComponent(core.Output, {
41
+ expect(_$createComponent(Output, {
61
42
  get namePolicy() {
62
- return csharp.createCSharpNamePolicy();
43
+ return createCSharpNamePolicy();
63
44
  },
64
45
  get children() {
65
- return [_$createComponent(csharp.Namespace, {
46
+ return [_$createComponent(Namespace, {
66
47
  name: "Models",
67
48
  get children() {
68
- return _$createComponent(csharp.SourceFile, {
49
+ return _$createComponent(SourceFile, {
69
50
  path: "Models.cs",
70
51
  get children() {
71
- return [_$createComponent(csharp.ClassDeclaration, {
52
+ return [_$createComponent(ClassDeclaration, {
72
53
  "public": true,
73
54
  name: "Input",
74
55
  refkey: inputTypeRefkey
75
- }), _$createIntrinsic("hbr", {}), _$createComponent(csharp.ClassDeclaration, {
56
+ }), _$createIntrinsic("hbr", {}), _$createComponent(ClassDeclaration, {
76
57
  "public": true,
77
58
  name: "Output",
78
59
  refkey: outputTypeRefkey
79
- }), _$createIntrinsic("hbr", {}), _$createComponent(csharp.EnumDeclaration, {
60
+ }), _$createIntrinsic("hbr", {}), _$createComponent(EnumDeclaration, {
80
61
  "public": true,
81
62
  name: "TestEnum",
82
63
  get children() {
83
- return [_$createComponent(csharp.EnumMember, {
64
+ return [_$createComponent(EnumMember, {
84
65
  name: "One"
85
- }), ",", _$createIntrinsic("hbr", {}), _$createComponent(csharp.EnumMember, {
66
+ }), ",", _$createIntrinsic("hbr", {}), _$createComponent(EnumMember, {
86
67
  name: "Two",
87
68
  refkey: twoValRefkey
88
69
  })];
@@ -91,18 +72,18 @@ it("adds using statement across namespaces", () => {
91
72
  }
92
73
  });
93
74
  }
94
- }), _$createComponent(csharp.Namespace, {
75
+ }), _$createComponent(Namespace, {
95
76
  name: "Client",
96
77
  get children() {
97
- return _$createComponent(csharp.SourceFile, {
78
+ return _$createComponent(SourceFile, {
98
79
  path: "Client.cs",
99
80
  using: ["System"],
100
81
  get children() {
101
- return [_$createComponent(csharp.ClassDeclaration, {
82
+ return [_$createComponent(ClassDeclaration, {
102
83
  "public": true,
103
84
  name: "Client",
104
85
  get children() {
105
- return _$createComponent(csharp.Method, {
86
+ return _$createComponent(Method, {
106
87
  "public": true,
107
88
  name: "MethodOne",
108
89
  parameters: params,
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ClassDeclaration","EnumDeclaration","EnumMember","Method","Namespace","SourceFile","Output","refkey","coretest","expect","it","createCSharpNamePolicy","_$createComponent","children","name","path","using","toRenderTo","inputTypeRefkey","outputTypeRefkey","twoValRefkey","params","type","namePolicy","_$createIntrinsic","parameters","returns","d"],"sources":["../../../../src/components/source-file/using.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,gBAAgB;AACzB,SAASC,eAAe;AACxB,SAASC,UAAU;AACnB,SAASC,MAAM;AACf,SAASC,SAAS;AAClB,SAASC,UAAU;AACnB,SAASC,MAAM,EAAEC,MAAM,QAAQ,gBAAgB;AAC/C,OAAO,KAAKC,QAAQ,MAAM,wBAAwB;AAClD,SAASC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,sBAAsB,QAAQ,sBAAsB;AAE7DD,EAAE,CAAC,gEAAgE,EAAE,MAAM;EACzED,MAAM,CAAAG,iBAAA,CACHN,MAAM;IAAA,IAAAO,SAAA;MAAA,OAAAD,iBAAA,CACJR,SAAS;QAACU,IAAI;QAAA,IAAAD,SAAA;UAAA,OAAAD,iBAAA,CACZP,UAAU;YAACU,IAAI;YAAYC,KAAK,EAAE,CAAC,KAAK;UAAC;QAAA;MAAA;IAAA;EAAA,EAGhD,CAAC,CAACC,UAAU,CAAC;AACf;AACA;AACA;AACA;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFP,EAAE,CAAC,wCAAwC,EAAE,MAAM;EACjD,MAAMQ,eAAe,GAAGX,MAAM,CAAC,CAAC;EAChC,MAAMY,gBAAgB,GAAGZ,MAAM,CAAC,CAAC;EACjC,MAAMa,YAAY,GAAGb,MAAM,CAAC,CAAC;EAE7B,MAAMc,MAAM,GAAG,CACb;IACEP,IAAI,EAAE,WAAW;IACjBQ,IAAI,EAAEJ;EACR,CAAC,CACF;EAEDT,MAAM,CAAAG,iBAAA,CACHN,MAAM;IAAA,IAACiB,UAAUA,CAAA;MAAA,OAAEZ,sBAAsB,CAAC,CAAC;IAAA;IAAA,IAAAE,SAAA;MAAA,QAAAD,iBAAA,CACzCR,SAAS;QAACU,IAAI;QAAA,IAAAD,SAAA;UAAA,OAAAD,iBAAA,CACZP,UAAU;YAACU,IAAI;YAAA,IAAAF,SAAA;cAAA,QAAAD,iBAAA,CACbZ,gBAAgB;gBAAA;gBAAQc,IAAI;gBAASP,MAAM,EAAEW;cAAe,IAAAM,iBAAA,aAAAZ,iBAAA,CAE5DZ,gBAAgB;gBAAA;gBAAQc,IAAI;gBAAUP,MAAM,EAAEY;cAAgB,IAAAK,iBAAA,aAAAZ,iBAAA,CAE9DX,eAAe;gBAAA;gBAAQa,IAAI;gBAAA,IAAAD,SAAA;kBAAA,QAAAD,iBAAA,CACzBV,UAAU;oBAACY,IAAI;kBAAA,SAAAU,iBAAA,aAAAZ,iBAAA,CACfV,UAAU;oBAACY,IAAI;oBAAOP,MAAM,EAAEa;kBAAY;gBAAA;cAAA;YAAA;UAAA;QAAA;MAAA,IAAAR,iBAAA,CAIhDR,SAAS;QAACU,IAAI;QAAA,IAAAD,SAAA;UAAA,OAAAD,iBAAA,CACZP,UAAU;YAACU,IAAI;YAAaC,KAAK,EAAE,CAAC,QAAQ,CAAC;YAAA,IAAAH,SAAA;cAAA,QAAAD,iBAAA,CAC3CZ,gBAAgB;gBAAA;gBAAQc,IAAI;gBAAA,IAAAD,SAAA;kBAAA,OAAAD,iBAAA,CAC1BT,MAAM;oBAAA;oBAELW,IAAI;oBACJW,UAAU,EAAEJ,MAAM;oBAClBK,OAAO,EAAEP;kBAAgB;gBAAA;cAAA,IAAAK,iBAAA,aAI5BJ,YAAY;YAAA;UAAA;QAAA;MAAA;IAAA;EAAA,EAIrB,CAAC,CAACH,UAAU,CAAC;IACX,WAAW,EAAET,QAAQ,CAACmB,CAAC;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;IACD,WAAW,EAAEnB,QAAQ,CAACmB,CAAC;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -9,6 +9,6 @@ export declare const EnumMember: core.StcSignature<base.EnumMemberProps>;
9
9
  export declare const Parameter: core.StcSignature<base.ParameterProps>;
10
10
  export declare const Parameters: core.StcSignature<base.ParametersProps>;
11
11
  export declare const ProjectDirectory: core.StcSignature<base.ProjectDirectoryProps>;
12
- export declare const UsingDirective: core.StcSignature<base.UsingDirectiveProps>;
12
+ export declare const UsingDirective: core.StcSignature<base.UsingsProps>;
13
13
  export declare const StructDeclaration: core.StcSignature<base.StructDeclarationProps>;
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/stc/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,eAAO,MAAM,gBAAgB,+CAAkC,CAAC;AAChE,eAAO,MAAM,WAAW,0CAA6B,CAAC;AACtD,eAAO,MAAM,KAAK,oCAAuB,CAAC;AAC1C,eAAO,MAAM,WAAW,qCAAwB,CAAC;AACjD,eAAO,MAAM,eAAe,8CAAiC,CAAC;AAC9D,eAAO,MAAM,UAAU,yCAA4B,CAAC;AACpD,eAAO,MAAM,SAAS,wCAA2B,CAAC;AAClD,eAAO,MAAM,UAAU,yCAA4B,CAAC;AACpD,eAAO,MAAM,gBAAgB,+CAAkC,CAAC;AAChE,eAAO,MAAM,cAAc,6CAAgC,CAAC;AAC5D,eAAO,MAAM,iBAAiB,gDAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/stc/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,eAAO,MAAM,gBAAgB,+CAAkC,CAAC;AAChE,eAAO,MAAM,WAAW,0CAA6B,CAAC;AACtD,eAAO,MAAM,KAAK,oCAAuB,CAAC;AAC1C,eAAO,MAAM,WAAW,qCAAwB,CAAC;AACjD,eAAO,MAAM,eAAe,8CAAiC,CAAC;AAC9D,eAAO,MAAM,UAAU,yCAA4B,CAAC;AACpD,eAAO,MAAM,SAAS,wCAA2B,CAAC;AAClD,eAAO,MAAM,UAAU,yCAA4B,CAAC;AACpD,eAAO,MAAM,gBAAgB,+CAAkC,CAAC;AAChE,eAAO,MAAM,cAAc,qCAAwB,CAAC;AACpD,eAAO,MAAM,iBAAiB,gDAAmC,CAAC"}
@@ -9,6 +9,6 @@ export const EnumMember = core.stc(base.EnumMember);
9
9
  export const Parameter = core.stc(base.Parameter);
10
10
  export const Parameters = core.stc(base.Parameters);
11
11
  export const ProjectDirectory = core.stc(base.ProjectDirectory);
12
- export const UsingDirective = core.stc(base.UsingDirective);
12
+ export const UsingDirective = core.stc(base.Usings);
13
13
  export const StructDeclaration = core.stc(base.StructDeclaration);
14
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["core","base","ClassDeclaration","stc","Constructor","Field","ClassMethod","Method","EnumDeclaration","EnumMember","Parameter","Parameters","ProjectDirectory","UsingDirective","StructDeclaration"],"sources":["../../../../src/components/stc/index.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,IAAI,MAAM,gBAAgB;AACtC,OAAO,KAAKC,IAAI,MAAM,aAAa;AAEnC,OAAO,MAAMC,gBAAgB,GAAGF,IAAI,CAACG,GAAG,CAACF,IAAI,CAACC,gBAAgB,CAAC;AAC/D,OAAO,MAAME,WAAW,GAAGJ,IAAI,CAACG,GAAG,CAACF,IAAI,CAACG,WAAW,CAAC;AACrD,OAAO,MAAMC,KAAK,GAAGL,IAAI,CAACG,GAAG,CAACF,IAAI,CAACI,KAAK,CAAC;AACzC,OAAO,MAAMC,WAAW,GAAGN,IAAI,CAACG,GAAG,CAACF,IAAI,CAACM,MAAM,CAAC;AAChD,OAAO,MAAMC,eAAe,GAAGR,IAAI,CAACG,GAAG,CAACF,IAAI,CAACO,eAAe,CAAC;AAC7D,OAAO,MAAMC,UAAU,GAAGT,IAAI,CAACG,GAAG,CAACF,IAAI,CAACQ,UAAU,CAAC;AACnD,OAAO,MAAMC,SAAS,GAAGV,IAAI,CAACG,GAAG,CAACF,IAAI,CAACS,SAAS,CAAC;AACjD,OAAO,MAAMC,UAAU,GAAGX,IAAI,CAACG,GAAG,CAACF,IAAI,CAACU,UAAU,CAAC;AACnD,OAAO,MAAMC,gBAAgB,GAAGZ,IAAI,CAACG,GAAG,CAACF,IAAI,CAACW,gBAAgB,CAAC;AAC/D,OAAO,MAAMC,cAAc,GAAGb,IAAI,CAACG,GAAG,CAACF,IAAI,CAACY,cAAc,CAAC;AAC3D,OAAO,MAAMC,iBAAiB,GAAGd,IAAI,CAACG,GAAG,CAACF,IAAI,CAACa,iBAAiB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["core","base","ClassDeclaration","stc","Constructor","Field","ClassMethod","Method","EnumDeclaration","EnumMember","Parameter","Parameters","ProjectDirectory","UsingDirective","Usings","StructDeclaration"],"sources":["../../../../src/components/stc/index.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,IAAI,MAAM,gBAAgB;AACtC,OAAO,KAAKC,IAAI,MAAM,aAAa;AAEnC,OAAO,MAAMC,gBAAgB,GAAGF,IAAI,CAACG,GAAG,CAACF,IAAI,CAACC,gBAAgB,CAAC;AAC/D,OAAO,MAAME,WAAW,GAAGJ,IAAI,CAACG,GAAG,CAACF,IAAI,CAACG,WAAW,CAAC;AACrD,OAAO,MAAMC,KAAK,GAAGL,IAAI,CAACG,GAAG,CAACF,IAAI,CAACI,KAAK,CAAC;AACzC,OAAO,MAAMC,WAAW,GAAGN,IAAI,CAACG,GAAG,CAACF,IAAI,CAACM,MAAM,CAAC;AAChD,OAAO,MAAMC,eAAe,GAAGR,IAAI,CAACG,GAAG,CAACF,IAAI,CAACO,eAAe,CAAC;AAC7D,OAAO,MAAMC,UAAU,GAAGT,IAAI,CAACG,GAAG,CAACF,IAAI,CAACQ,UAAU,CAAC;AACnD,OAAO,MAAMC,SAAS,GAAGV,IAAI,CAACG,GAAG,CAACF,IAAI,CAACS,SAAS,CAAC;AACjD,OAAO,MAAMC,UAAU,GAAGX,IAAI,CAACG,GAAG,CAACF,IAAI,CAACU,UAAU,CAAC;AACnD,OAAO,MAAMC,gBAAgB,GAAGZ,IAAI,CAACG,GAAG,CAACF,IAAI,CAACW,gBAAgB,CAAC;AAC/D,OAAO,MAAMC,cAAc,GAAGb,IAAI,CAACG,GAAG,CAACF,IAAI,CAACa,MAAM,CAAC;AACnD,OAAO,MAAMC,iBAAiB,GAAGf,IAAI,CAACG,GAAG,CAACF,IAAI,CAACc,iBAAiB,CAAC","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ import { NamespaceSymbol } from "../../symbols/namespace.js";
2
+ export interface UsingsProps {
3
+ /**
4
+ * Namespace symbols or namespace names to use to generate using statements.
5
+ */
6
+ namespaces: (NamespaceSymbol | string)[];
7
+ }
8
+ /**
9
+ * Component rendering csharp using directive
10
+ * @example
11
+ *
12
+ * ```tsx
13
+ * <Usings namespaces={["System", "Models"]} />
14
+ * ```
15
+ *
16
+ * will render
17
+ *
18
+ * ```csharp
19
+ * using Models;
20
+ * using System;
21
+ * ```
22
+ */
23
+ export declare function Usings(props: UsingsProps): import("@alloy-js/core").Children;
24
+ export interface UsingNamespaceDirective {
25
+ namespace: string;
26
+ }
27
+ export declare function UsingNamespaceDirective(props: UsingNamespaceDirective): string;
28
+ //# sourceMappingURL=using.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"using.d.ts","sourceRoot":"","sources":["../../../../src/components/using/using.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,CAAC,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC;CAC1C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,qCAYxC;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,uBAAuB,UAErE"}
@@ -0,0 +1,37 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { computed, For } from "@alloy-js/core";
3
+ /**
4
+ * Component rendering csharp using directive
5
+ * @example
6
+ *
7
+ * ```tsx
8
+ * <Usings namespaces={["System", "Models"]} />
9
+ * ```
10
+ *
11
+ * will render
12
+ *
13
+ * ```csharp
14
+ * using Models;
15
+ * using System;
16
+ * ```
17
+ */
18
+ export function Usings(props) {
19
+ const sortedNamespaces = computed(() => {
20
+ return props.namespaces.map(getNamespaceName).sort((n1, n2) => n1.localeCompare(n2));
21
+ });
22
+ return _$createComponent(For, {
23
+ each: sortedNamespaces,
24
+ children: namespace => _$createComponent(UsingNamespaceDirective, {
25
+ namespace: namespace
26
+ })
27
+ });
28
+ }
29
+ export function UsingNamespaceDirective(props) {
30
+ return `using ${getNamespaceName(props.namespace)};`;
31
+ }
32
+ function getNamespaceName(namespace) {
33
+ return typeof namespace === "string" ? namespace : namespace.getFullyQualifiedName({
34
+ omitGlobal: true
35
+ });
36
+ }
37
+ //# sourceMappingURL=using.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["computed","For","Usings","props","sortedNamespaces","namespaces","map","getNamespaceName","sort","n1","n2","localeCompare","_$createComponent","each","children","namespace","UsingNamespaceDirective","getFullyQualifiedName","omitGlobal"],"sources":["../../../../src/components/using/using.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,QAAQ,EAAEC,GAAG,QAAQ,gBAAgB;AAU9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,MAAMA,CAACC,KAAkB,EAAE;EACzC,MAAMC,gBAAgB,GAAGJ,QAAQ,CAAC,MAAM;IACtC,OAAOG,KAAK,CAACE,UAAU,CACpBC,GAAG,CAACC,gBAAgB,CAAC,CACrBC,IAAI,CAAC,CAACC,EAAE,EAAEC,EAAE,KAAKD,EAAE,CAACE,aAAa,CAACD,EAAE,CAAC,CAAC;EAC3C,CAAC,CAAC;EAEF,OAAAE,iBAAA,CACGX,GAAG;IAACY,IAAI,EAAET,gBAAgB;IAAAU,QAAA,EACvBC,SAAS,IAAAH,iBAAA,CAAMI,uBAAuB;MAACD,SAAS,EAAEA;IAAS;EAAI;AAGvE;AAMA,OAAO,SAASC,uBAAuBA,CAACb,KAA8B,EAAE;EACtE,OAAO,SAASI,gBAAgB,CAACJ,KAAK,CAACY,SAAS,CAAC,GAAG;AACtD;AAEA,SAASR,gBAAgBA,CAACQ,SAAmC,EAAU;EACrE,OAAO,OAAOA,SAAS,KAAK,QAAQ,GAAGA,SAAS,GAC5CA,SAAS,CAACE,qBAAqB,CAAC;IAAEC,UAAU,EAAE;EAAK,CAAC,CACrD;AACL","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=using.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"using.test.d.ts","sourceRoot":"","sources":["../../../../src/components/using/using.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { expect, it } from "vitest";
3
+ import { Usings } from "./using.js";
4
+ it("single using", () => {
5
+ expect(_$createComponent(Usings, {
6
+ namespaces: ["Foo"]
7
+ })).toRenderTo(`
8
+ using Foo;
9
+ `);
10
+ });
11
+ it("multiple using", () => {
12
+ expect(_$createComponent(Usings, {
13
+ namespaces: ["Foo", "Bar"]
14
+ })).toRenderTo(`
15
+ using Bar;
16
+ using Foo;
17
+ `);
18
+ });
19
+ //# sourceMappingURL=using.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["expect","it","Usings","_$createComponent","namespaces","toRenderTo"],"sources":["../../../../src/components/using/using.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,MAAM;AAEfD,EAAE,CAAC,cAAc,EAAE,MAAM;EACvBD,MAAM,CAAAG,iBAAA,CAAED,MAAM;IAACE,UAAU,EAAE,CAAC,KAAK;EAAC,EAAI,CAAC,CAACC,UAAU,CAAC;AACrD;AACA,GAAG,CAAC;AACJ,CAAC,CAAC;AAEFJ,EAAE,CAAC,gBAAgB,EAAE,MAAM;EACzBD,MAAM,CAAAG,iBAAA,CAAED,MAAM;IAACE,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK;EAAC,EAAI,CAAC,CAACC,UAAU,CAAC;AAC5D;AACA;AACA,GAAG,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}