@alloy-js/csharp 0.18.0-dev.23 → 0.18.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 (160) hide show
  1. package/dist/src/components/Class.d.ts +26 -0
  2. package/dist/src/components/Class.d.ts.map +1 -0
  3. package/dist/src/components/{ClassDeclaration.js → Class.js} +38 -64
  4. package/dist/src/components/ClassMethod.d.ts +5 -26
  5. package/dist/src/components/ClassMethod.d.ts.map +1 -1
  6. package/dist/src/components/ClassMethod.js +9 -27
  7. package/dist/src/components/Enum.d.ts +15 -0
  8. package/dist/src/components/Enum.d.ts.map +1 -0
  9. package/dist/src/components/{EnumDeclaration.js → Enum.js} +5 -25
  10. package/dist/src/components/Parameters.d.ts +13 -0
  11. package/dist/src/components/Parameters.d.ts.map +1 -0
  12. package/dist/src/components/Parameters.js +34 -0
  13. package/dist/src/components/SourceFile.d.ts.map +1 -1
  14. package/dist/src/components/SourceFile.js +0 -1
  15. package/dist/src/components/index.d.ts +4 -13
  16. package/dist/src/components/index.d.ts.map +1 -1
  17. package/dist/src/components/index.js +5 -14
  18. package/dist/src/components/stc/index.d.ts +2 -2
  19. package/dist/src/components/stc/index.d.ts.map +1 -1
  20. package/dist/src/components/stc/index.js +2 -2
  21. package/dist/src/modifiers.d.ts +4 -10
  22. package/dist/src/modifiers.d.ts.map +1 -1
  23. package/dist/src/modifiers.js +32 -9
  24. package/dist/src/name-policy.d.ts +1 -1
  25. package/dist/src/name-policy.d.ts.map +1 -1
  26. package/dist/src/name-policy.js +0 -2
  27. package/dist/test/class-method.test.js +14 -37
  28. package/dist/test/class.test.d.ts +2 -0
  29. package/dist/test/class.test.d.ts.map +1 -0
  30. package/dist/test/class.test.js +298 -0
  31. package/dist/test/enum.test.js +12 -12
  32. package/dist/test/namespace.test.js +8 -8
  33. package/dist/test/projectdirectory.test.d.ts +2 -0
  34. package/dist/test/projectdirectory.test.d.ts.map +1 -0
  35. package/dist/test/{project-directory.test.js → projectdirectory.test.js} +8 -8
  36. package/dist/test/sourcefile.test.js +4 -4
  37. package/dist/test/using.test.js +9 -9
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/package.json +3 -4
  40. package/src/components/Class.tsx +149 -0
  41. package/src/components/ClassMethod.tsx +15 -54
  42. package/src/components/{EnumDeclaration.tsx → Enum.tsx} +6 -30
  43. package/src/components/Parameters.tsx +51 -0
  44. package/src/components/SourceFile.tsx +0 -1
  45. package/src/components/index.ts +4 -13
  46. package/src/components/stc/index.ts +2 -2
  47. package/src/modifiers.ts +42 -25
  48. package/src/name-policy.ts +0 -5
  49. package/temp/api.json +715 -5284
  50. package/test/class-method.test.tsx +14 -24
  51. package/test/class.test.tsx +292 -0
  52. package/test/enum.test.tsx +11 -11
  53. package/test/namespace.test.tsx +4 -4
  54. package/test/{project-directory.test.tsx → projectdirectory.test.tsx} +4 -4
  55. package/test/sourcefile.test.tsx +2 -2
  56. package/test/using.test.tsx +9 -9
  57. package/vitest.config.ts +0 -3
  58. package/dist/src/components/ClassDeclaration.d.ts +0 -74
  59. package/dist/src/components/ClassDeclaration.d.ts.map +0 -1
  60. package/dist/src/components/EnumDeclaration.d.ts +0 -34
  61. package/dist/src/components/EnumDeclaration.d.ts.map +0 -1
  62. package/dist/src/components/doc/comment.d.ts +0 -70
  63. package/dist/src/components/doc/comment.d.ts.map +0 -1
  64. package/dist/src/components/doc/comment.js +0 -88
  65. package/dist/src/components/doc/comment.test.d.ts +0 -2
  66. package/dist/src/components/doc/comment.test.d.ts.map +0 -1
  67. package/dist/src/components/doc/comment.test.js +0 -348
  68. package/dist/src/components/doc/from-markdown.d.ts +0 -6
  69. package/dist/src/components/doc/from-markdown.d.ts.map +0 -1
  70. package/dist/src/components/doc/from-markdown.js +0 -58
  71. package/dist/src/components/doc/from-markdown.test.d.ts +0 -2
  72. package/dist/src/components/doc/from-markdown.test.d.ts.map +0 -1
  73. package/dist/src/components/doc/from-markdown.test.js +0 -83
  74. package/dist/src/components/interface/declaration.d.ts +0 -47
  75. package/dist/src/components/interface/declaration.d.ts.map +0 -1
  76. package/dist/src/components/interface/declaration.js +0 -77
  77. package/dist/src/components/interface/declaration.test.d.ts +0 -2
  78. package/dist/src/components/interface/declaration.test.d.ts.map +0 -1
  79. package/dist/src/components/interface/declaration.test.js +0 -153
  80. package/dist/src/components/interface/method.d.ts +0 -32
  81. package/dist/src/components/interface/method.d.ts.map +0 -1
  82. package/dist/src/components/interface/method.js +0 -68
  83. package/dist/src/components/interface/method.test.d.ts +0 -2
  84. package/dist/src/components/interface/method.test.d.ts.map +0 -1
  85. package/dist/src/components/interface/method.test.js +0 -279
  86. package/dist/src/components/interface/property.d.ts +0 -38
  87. package/dist/src/components/interface/property.d.ts.map +0 -1
  88. package/dist/src/components/interface/property.js +0 -67
  89. package/dist/src/components/interface/property.test.d.ts +0 -2
  90. package/dist/src/components/interface/property.test.d.ts.map +0 -1
  91. package/dist/src/components/interface/property.test.js +0 -165
  92. package/dist/src/components/parameters/parameters.d.ts +0 -19
  93. package/dist/src/components/parameters/parameters.d.ts.map +0 -1
  94. package/dist/src/components/parameters/parameters.js +0 -43
  95. package/dist/src/components/property/property.d.ts +0 -62
  96. package/dist/src/components/property/property.d.ts.map +0 -1
  97. package/dist/src/components/property/property.js +0 -70
  98. package/dist/src/components/property/property.test.d.ts +0 -2
  99. package/dist/src/components/property/property.test.d.ts.map +0 -1
  100. package/dist/src/components/property/property.test.js +0 -218
  101. package/dist/src/components/record/declaration.d.ts +0 -35
  102. package/dist/src/components/record/declaration.d.ts.map +0 -1
  103. package/dist/src/components/record/declaration.js +0 -90
  104. package/dist/src/components/record/declaration.test.d.ts +0 -2
  105. package/dist/src/components/record/declaration.test.d.ts.map +0 -1
  106. package/dist/src/components/record/declaration.test.js +0 -94
  107. package/dist/src/components/type-parameters/type-parameter-constraints.d.ts +0 -8
  108. package/dist/src/components/type-parameters/type-parameter-constraints.d.ts.map +0 -1
  109. package/dist/src/components/type-parameters/type-parameter-constraints.js +0 -44
  110. package/dist/src/components/type-parameters/type-parameter-constraints.test.d.ts +0 -2
  111. package/dist/src/components/type-parameters/type-parameter-constraints.test.d.ts.map +0 -1
  112. package/dist/src/components/type-parameters/type-parameter-constraints.test.js +0 -67
  113. package/dist/src/components/type-parameters/type-parameter.d.ts +0 -20
  114. package/dist/src/components/type-parameters/type-parameter.d.ts.map +0 -1
  115. package/dist/src/components/type-parameters/type-parameter.js +0 -22
  116. package/dist/src/components/type-parameters/type-parameters.d.ts +0 -17
  117. package/dist/src/components/type-parameters/type-parameters.d.ts.map +0 -1
  118. package/dist/src/components/type-parameters/type-parameters.js +0 -54
  119. package/dist/src/components/type-parameters/type-parameters.test.d.ts +0 -2
  120. package/dist/src/components/type-parameters/type-parameters.test.d.ts.map +0 -1
  121. package/dist/src/components/type-parameters/type-parameters.test.js +0 -48
  122. package/dist/src/components/var/declaration.d.ts +0 -35
  123. package/dist/src/components/var/declaration.d.ts.map +0 -1
  124. package/dist/src/components/var/declaration.js +0 -40
  125. package/dist/src/components/var/declaration.test.d.ts +0 -2
  126. package/dist/src/components/var/declaration.test.d.ts.map +0 -1
  127. package/dist/src/components/var/declaration.test.js +0 -73
  128. package/dist/test/class-declaration.test.d.ts +0 -2
  129. package/dist/test/class-declaration.test.d.ts.map +0 -1
  130. package/dist/test/class-declaration.test.js +0 -463
  131. package/dist/test/project-directory.test.d.ts +0 -2
  132. package/dist/test/project-directory.test.d.ts.map +0 -1
  133. package/dist/test/vitest.setup.d.ts +0 -2
  134. package/dist/test/vitest.setup.d.ts.map +0 -1
  135. package/dist/test/vitest.setup.js +0 -1
  136. package/src/components/ClassDeclaration.tsx +0 -213
  137. package/src/components/doc/comment.test.tsx +0 -337
  138. package/src/components/doc/comment.tsx +0 -152
  139. package/src/components/doc/from-markdown.test.tsx +0 -103
  140. package/src/components/doc/from-markdown.tsx +0 -58
  141. package/src/components/interface/declaration.test.tsx +0 -143
  142. package/src/components/interface/declaration.tsx +0 -105
  143. package/src/components/interface/method.test.tsx +0 -278
  144. package/src/components/interface/method.tsx +0 -102
  145. package/src/components/interface/property.test.tsx +0 -144
  146. package/src/components/interface/property.tsx +0 -107
  147. package/src/components/parameters/parameters.tsx +0 -74
  148. package/src/components/property/property.test.tsx +0 -188
  149. package/src/components/property/property.tsx +0 -152
  150. package/src/components/record/declaration.test.tsx +0 -73
  151. package/src/components/record/declaration.tsx +0 -109
  152. package/src/components/type-parameters/type-parameter-constraints.test.tsx +0 -93
  153. package/src/components/type-parameters/type-parameter-constraints.tsx +0 -46
  154. package/src/components/type-parameters/type-parameter.tsx +0 -35
  155. package/src/components/type-parameters/type-parameters.test.tsx +0 -46
  156. package/src/components/type-parameters/type-parameters.tsx +0 -63
  157. package/src/components/var/declaration.test.tsx +0 -59
  158. package/src/components/var/declaration.tsx +0 -47
  159. package/test/class-declaration.test.tsx +0 -418
  160. package/test/vitest.setup.ts +0 -1
@@ -0,0 +1,26 @@
1
+ import * as core from "@alloy-js/core";
2
+ import { AccessModifier } from "../modifiers.js";
3
+ import { ParameterProps } from "./Parameters.js";
4
+ export interface ClassProps extends Omit<core.DeclarationProps, "nameKind"> {
5
+ name: string;
6
+ refkey?: core.Refkey;
7
+ accessModifier?: AccessModifier;
8
+ typeParameters?: Record<string, core.Refkey>;
9
+ }
10
+ export declare function Class(props: ClassProps): core.Children;
11
+ export interface ClassConstructorProps {
12
+ accessModifier?: AccessModifier;
13
+ parameters?: Array<ParameterProps>;
14
+ refkey?: core.Refkey;
15
+ symbol?: core.OutputSymbol;
16
+ children?: core.Children;
17
+ }
18
+ export declare function ClassConstructor(props: ClassConstructorProps): core.Children;
19
+ export interface ClassMemberProps {
20
+ name: string;
21
+ type: core.Children;
22
+ accessModifier?: AccessModifier;
23
+ refkey?: core.Refkey;
24
+ }
25
+ export declare function ClassMember(props: ClassMemberProps): core.Children;
26
+ //# sourceMappingURL=Class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Class.d.ts","sourceRoot":"","sources":["../../../src/components/Class.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAqB,MAAM,iBAAiB,CAAC;AAKpE,OAAO,EAAE,cAAc,EAAc,MAAM,iBAAiB,CAAC;AAG7D,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;CAC9C;AAGD,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,iBAoDtC;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC;IAC3B,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;CAC1B;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,iBAiC5D;AAGD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;CACtB;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,iBAwBlD"}
@@ -1,44 +1,16 @@
1
- import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
1
+ import { createComponent as _$createComponent, createIntrinsic as _$createIntrinsic, memo as _$memo } from "@alloy-js/core/jsx-runtime";
2
2
  import * as core from "@alloy-js/core";
3
- import { join } from "@alloy-js/core";
4
- import { computeModifiersPrefix, getAccessModifier, makeModifiers } from "../modifiers.js";
3
+ import { getAccessModifier } from "../modifiers.js";
5
4
  import { useCSharpNamePolicy } from "../name-policy.js";
6
5
  import { CSharpOutputSymbol } from "../symbols/csharp-output-symbol.js";
7
6
  import { CSharpMemberScope, useCSharpScope } from "../symbols/scopes.js";
8
- import { DocWhen } from "./doc/comment.js";
9
7
  import { Name } from "./Name.js";
10
- import { Parameters } from "./parameters/parameters.js";
11
- import { TypeParameterConstraints } from "./type-parameters/type-parameter-constraints.js";
12
- import { TypeParameters } from "./type-parameters/type-parameters.js";
13
- const getClassModifiers = makeModifiers(["abstract", "partial", "sealed", "static"]);
8
+ import { Parameters } from "./Parameters.js";
14
9
 
15
10
  // properties for creating a class
16
11
 
17
- /**
18
- * CSharp class declaration.
19
- * @example
20
- * ```tsx
21
- * <ClassDeclaration public name="MyClass">
22
- * <ClassMember public name="MyField" type="int" />
23
- * <ClassConstructor>
24
- * <Parameter name="value" type="int" />
25
- * this.MyField = value;
26
- * </ClassConstructor>
27
- * </ClassDeclaration>
28
- * ```
29
- * This will produce:
30
- * ```csharp
31
- * public class MyClass
32
- * {
33
- * public int MyField;
34
- * public MyClass(int value)
35
- * {
36
- * this.MyField = value;
37
- * }
38
- * }
39
- * ```
40
- */
41
- export function ClassDeclaration(props) {
12
+ // a C# class declaration
13
+ export function Class(props) {
42
14
  const name = useCSharpNamePolicy().getName(props.name, "class");
43
15
  const thisClassSymbol = new CSharpOutputSymbol(name, {
44
16
  refkeys: props.refkey
@@ -51,27 +23,33 @@ export function ClassDeclaration(props) {
51
23
  const thisClassScope = new CSharpMemberScope("class-decl", {
52
24
  owner: thisClassSymbol
53
25
  });
54
- const bases = [...(props.baseType ? [props.baseType] : []), ...(props.interfaceTypes || [])];
55
- const base = bases.length > 0 ? [" : ", _$memo(() => join(bases, {
56
- joiner: ", "
57
- }))] : null;
58
- const modifiers = computeModifiersPrefix([getAccessModifier(props), getClassModifiers(props)]);
26
+ let typeParams;
27
+ if (props.typeParameters) {
28
+ const typeParamNames = new Array();
29
+ for (const entry of Object.entries(props.typeParameters)) {
30
+ typeParamNames.push(useCSharpNamePolicy().getName(entry[0], "type-parameter"));
31
+ // create a symbol for each type param so its
32
+ // refkey resolves to the type param's name
33
+ new CSharpOutputSymbol(entry[0], {
34
+ scope: thisClassScope,
35
+ refkeys: entry[1]
36
+ });
37
+ }
38
+ typeParams = _$createIntrinsic("group", {
39
+ get children() {
40
+ return ["<", _$createComponent(core.For, {
41
+ each: typeParamNames,
42
+ comma: true,
43
+ line: true,
44
+ children: name => name
45
+ }), ">"];
46
+ }
47
+ });
48
+ }
59
49
  return _$createComponent(core.Declaration, {
60
50
  symbol: thisClassSymbol,
61
51
  get children() {
62
- return [_$createComponent(DocWhen, {
63
- get doc() {
64
- return props.doc;
65
- }
66
- }), modifiers, "class ", _$createComponent(Name, {}), _$memo(() => _$memo(() => !!props.typeParameters)() && _$createComponent(TypeParameters, {
67
- get parameters() {
68
- return props.typeParameters;
69
- }
70
- })), base, _$memo(() => _$memo(() => !!props.typeParameters)() && _$createComponent(TypeParameterConstraints, {
71
- get parameters() {
72
- return props.typeParameters;
73
- }
74
- })), _$memo(() => !props.children && ";"), _$memo(() => _$memo(() => !!props.children)() && _$createComponent(core.Block, {
52
+ return [_$memo(() => getAccessModifier(props.accessModifier)), "class ", _$createComponent(Name, {}), typeParams, _$memo(() => !props.children && ";"), _$memo(() => _$memo(() => !!props.children)() && _$createComponent(core.Block, {
75
53
  newline: true,
76
54
  get children() {
77
55
  return _$createComponent(core.Scope, {
@@ -103,7 +81,12 @@ export function ClassConstructor(props) {
103
81
  const ctorDeclScope = new CSharpMemberScope("constructor-decl", {
104
82
  owner: ctorSymbol
105
83
  });
106
- const modifiers = computeModifiersPrefix([getAccessModifier(props)]);
84
+ const accessModifier = getAccessModifier(props.accessModifier);
85
+ const params = props.parameters ? _$createComponent(Parameters, {
86
+ get parameters() {
87
+ return props.parameters;
88
+ }
89
+ }) : "";
107
90
 
108
91
  // note that scope wraps the ctor decl so that the params get the correct scope
109
92
  return _$createComponent(core.Declaration, {
@@ -112,11 +95,7 @@ export function ClassConstructor(props) {
112
95
  return _$createComponent(core.Scope, {
113
96
  value: ctorDeclScope,
114
97
  get children() {
115
- return [modifiers, _$createComponent(Name, {}), _$createComponent(Parameters, {
116
- get parameters() {
117
- return props.parameters;
118
- }
119
- }), _$createComponent(core.Block, {
98
+ return [accessModifier, _$createComponent(Name, {}), "(", params, ")", _$createComponent(core.Block, {
120
99
  newline: true,
121
100
  get children() {
122
101
  return props.children;
@@ -133,7 +112,7 @@ export function ClassConstructor(props) {
133
112
  // a C# class member (i.e. a field within a class like "private int count")
134
113
  export function ClassMember(props) {
135
114
  let nameElement = "class-member-private";
136
- if (props.public) {
115
+ if (props.accessModifier === "public") {
137
116
  nameElement = "class-member-public";
138
117
  }
139
118
  const name = useCSharpNamePolicy().getName(props.name, nameElement);
@@ -145,15 +124,10 @@ export function ClassMember(props) {
145
124
  scope,
146
125
  refkeys: props.refkey ?? core.refkey(props.name)
147
126
  });
148
- const modifiers = computeModifiersPrefix([getAccessModifier(props)]);
149
127
  return _$createComponent(core.Declaration, {
150
128
  symbol: memberSymbol,
151
129
  get children() {
152
- return [_$createComponent(DocWhen, {
153
- get doc() {
154
- return props.doc;
155
- }
156
- }), modifiers, _$memo(() => props.type), " ", _$createComponent(Name, {})];
130
+ return [_$memo(() => getAccessModifier(props.accessModifier)), _$memo(() => props.type), " ", _$createComponent(Name, {})];
157
131
  }
158
132
  });
159
133
  }
@@ -1,39 +1,18 @@
1
1
  import { Children, Refkey } from "@alloy-js/core";
2
- import { AccessModifiers } from "../modifiers.js";
3
- import { ParameterProps } from "./parameters/parameters.jsx";
4
- import { TypeParameterProps } from "./type-parameters/type-parameter.jsx";
5
- /** Method modifiers. Can only be one. */
6
- export interface ClassMethodModifiers {
7
- readonly abstract?: boolean;
8
- readonly sealed?: boolean;
9
- readonly static?: boolean;
10
- readonly virtual?: boolean;
11
- }
12
- export interface ClassMethodProps extends AccessModifiers, ClassMethodModifiers {
2
+ import { AccessModifier, MethodModifier } from "../modifiers.js";
3
+ import { ParameterProps } from "./Parameters.jsx";
4
+ export interface ClassMethodProps {
13
5
  name: string;
14
6
  refkey?: Refkey;
15
7
  children?: Children;
8
+ accessModifier?: AccessModifier;
9
+ methodModifier?: MethodModifier;
16
10
  parameters?: Array<ParameterProps>;
17
11
  returns?: Children;
18
12
  /**
19
13
  * If true, the method will be declared as an async method.
20
14
  */
21
15
  async?: boolean;
22
- /** Doc comment */
23
- doc?: Children;
24
- /**
25
- * Type parameters for the method
26
- *
27
- * @example
28
- * ```tsx
29
- * <InterfaceMethod name="Test" typeParameters={["T"]} />
30
- * ```
31
- * This will produce:
32
- * ```csharp
33
- * public void Test<T>()
34
- * ```
35
- */
36
- typeParameters?: (TypeParameterProps | string)[];
37
16
  }
38
17
  export declare function ClassMethod(props: ClassMethodProps): Children;
39
18
  //# sourceMappingURL=ClassMethod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClassMethod.d.ts","sourceRoot":"","sources":["../../../src/components/ClassMethod.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAGR,MAAM,EAEP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EAKhB,MAAM,iBAAiB,CAAC;AAKzB,OAAO,EAAE,cAAc,EAAc,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAG1E,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAUD,MAAM,WAAW,gBACf,SAAQ,eAAe,EACrB,oBAAoB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,kBAAkB;IAClB,GAAG,CAAC,EAAE,QAAQ,CAAC;IAEf;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,CAAC,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC;CAClD;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,YA0ClD"}
1
+ {"version":3,"file":"ClassMethod.d.ts","sourceRoot":"","sources":["../../../src/components/ClassMethod.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAGR,MAAM,EAEP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EAKd,cAAc,EACf,MAAM,iBAAiB,CAAC;AAIzB,OAAO,EAAE,cAAc,EAAc,MAAM,kBAAkB,CAAC;AAG9D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,UAAU,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAGD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,YAsClD"}
@@ -1,17 +1,10 @@
1
1
  import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
2
2
  import { Block, MemberDeclaration, refkey, Scope } from "@alloy-js/core";
3
- import { computeModifiersPrefix, getAccessModifier, getAsyncModifier, makeModifiers } from "../modifiers.js";
3
+ import { computeModifiersPrefix, getAccessModifier, getAsyncModifier, getMethodModifier } from "../modifiers.js";
4
4
  import { useCSharpNamePolicy } from "../name-policy.js";
5
5
  import { CSharpOutputSymbol } from "../symbols/csharp-output-symbol.js";
6
6
  import { CSharpMemberScope, useCSharpScope } from "../symbols/scopes.js";
7
- import { DocWhen } from "./doc/comment.js";
8
- import { Parameters } from "./parameters/parameters.js";
9
- import { TypeParameterConstraints } from "./type-parameters/type-parameter-constraints.js";
10
- import { TypeParameters } from "./type-parameters/type-parameters.js";
11
-
12
- /** Method modifiers. Can only be one. */
13
-
14
- const getMethodModifier = makeModifiers(["abstract", "sealed", "static", "virtual"]);
7
+ import { Parameters } from "./Parameters.js";
15
8
 
16
9
  // properties for creating a method
17
10
 
@@ -31,8 +24,13 @@ export function ClassMethod(props) {
31
24
  const methodScope = new CSharpMemberScope("method-decl", {
32
25
  owner: methodSymbol
33
26
  });
27
+ const params = props.parameters ? _$createComponent(Parameters, {
28
+ get parameters() {
29
+ return props.parameters;
30
+ }
31
+ }) : "";
34
32
  const returns = props.returns ?? (props.async ? "Task" : "void");
35
- const modifiers = computeModifiersPrefix([getAccessModifier(props), getMethodModifier(props), getAsyncModifier(props.async)]);
33
+ const modifiers = computeModifiersPrefix([getAccessModifier(props.accessModifier), getMethodModifier(props.methodModifier), getAsyncModifier(props.async)]);
36
34
  // note that scope wraps the method decl so that the params get the correct scope
37
35
  return _$createComponent(MemberDeclaration, {
38
36
  symbol: methodSymbol,
@@ -40,23 +38,7 @@ export function ClassMethod(props) {
40
38
  return _$createComponent(Scope, {
41
39
  value: methodScope,
42
40
  get children() {
43
- return [_$createComponent(DocWhen, {
44
- get doc() {
45
- return props.doc;
46
- }
47
- }), modifiers, returns, " ", name, _$memo(() => _$memo(() => !!props.typeParameters)() && _$createComponent(TypeParameters, {
48
- get parameters() {
49
- return props.typeParameters;
50
- }
51
- })), _$createComponent(Parameters, {
52
- get parameters() {
53
- return props.parameters;
54
- }
55
- }), _$memo(() => _$memo(() => !!props.typeParameters)() && _$createComponent(TypeParameterConstraints, {
56
- get parameters() {
57
- return props.typeParameters;
58
- }
59
- })), _$memo(() => _$memo(() => !!props.abstract)() ? ";" : _$createComponent(Block, {
41
+ return [modifiers, returns, " ", name, "(", params, ")", _$memo(() => _$memo(() => props.methodModifier === "abstract")() ? ";" : _$createComponent(Block, {
60
42
  newline: true,
61
43
  get children() {
62
44
  return props.children;
@@ -0,0 +1,15 @@
1
+ import * as core from "@alloy-js/core";
2
+ import { AccessModifier } from "../modifiers.js";
3
+ export interface EnumProps {
4
+ name: string;
5
+ refkey?: core.Refkey;
6
+ children?: core.Children;
7
+ accessModifier?: AccessModifier;
8
+ }
9
+ export declare function Enum(props: EnumProps): core.Children;
10
+ export interface EnumMemberProps {
11
+ name: string;
12
+ refkey?: core.Refkey;
13
+ }
14
+ export declare function EnumMember(props: EnumMemberProps): core.Children;
15
+ //# sourceMappingURL=Enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Enum.d.ts","sourceRoot":"","sources":["../../../src/components/Enum.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAqB,MAAM,iBAAiB,CAAC;AAOpE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAGD,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,iBA8BpC;AAGD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;CACtB;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,iBAmBhD"}
@@ -1,6 +1,6 @@
1
- import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
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 { computeModifiersPrefix, getAccessModifier } from "../modifiers.js";
3
+ import { getAccessModifier } from "../modifiers.js";
4
4
  import { useCSharpNamePolicy } from "../name-policy.js";
5
5
  import { CSharpOutputSymbol } from "../symbols/csharp-output-symbol.js";
6
6
  import { CSharpMemberScope, useCSharpScope } from "../symbols/scopes.js";
@@ -8,27 +8,8 @@ import { Name } from "./Name.js";
8
8
 
9
9
  // properties for creating an enum
10
10
 
11
- /**
12
- * A C# enum declaration
13
- * @example
14
- * ```tsx
15
- * <EnumDeclaration public name="Color">
16
- * <EnumMember name="Red" />
17
- * <EnumMember name="Green" />
18
- * <EnumMember name="Blue" />
19
- * </EnumDeclaration>
20
- * ```
21
- * This will produce:
22
- * ```csharp
23
- * public enum Color
24
- * {
25
- * Red,
26
- * Green,
27
- * Blue
28
- * }
29
- * ```
30
- */
31
- export function EnumDeclaration(props) {
11
+ // a C# enum declaration
12
+ export function Enum(props) {
32
13
  const name = useCSharpNamePolicy().getName(props.name, "enum");
33
14
  const scope = useCSharpScope();
34
15
  const thisEnumSymbol = new CSharpOutputSymbol(name, {
@@ -44,11 +25,10 @@ export function EnumDeclaration(props) {
44
25
  parent: scope,
45
26
  owner: thisEnumSymbol
46
27
  });
47
- const modifiers = computeModifiersPrefix([getAccessModifier(props)]);
48
28
  if (thisEnumScope.owner) return _$createComponent(core.Declaration, {
49
29
  symbol: thisEnumSymbol,
50
30
  get children() {
51
- return [modifiers, "enum ", _$createComponent(Name, {}), _$memo(() => !props.children && ";"), _$memo(() => _$memo(() => !!props.children)() && _$createComponent(core.Scope, {
31
+ return [_$memo(() => getAccessModifier(props.accessModifier)), "enum ", _$createComponent(Name, {}), _$memo(() => !props.children && ";"), _$memo(() => _$memo(() => !!props.children)() && _$createComponent(core.Scope, {
52
32
  value: thisEnumScope,
53
33
  get children() {
54
34
  return _$createComponent(core.Block, {
@@ -0,0 +1,13 @@
1
+ import * as core from "@alloy-js/core";
2
+ export interface ParameterProps {
3
+ name: string;
4
+ type: core.Children;
5
+ refkey?: core.Refkey;
6
+ symbol?: core.OutputSymbol;
7
+ }
8
+ export declare function Parameter(props: ParameterProps): core.Children;
9
+ export interface ParametersProps {
10
+ parameters: Array<ParameterProps>;
11
+ }
12
+ export declare function Parameters(props: ParametersProps): core.Children;
13
+ //# sourceMappingURL=Parameters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Parameters.d.ts","sourceRoot":"","sources":["../../../src/components/Parameters.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAMvC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC;CAC5B;AAGD,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,iBAsB9C;AAED,MAAM,WAAW,eAAe;IAE9B,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;CACnC;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,iBAMhD"}
@@ -0,0 +1,34 @@
1
+ import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import * as core from "@alloy-js/core";
3
+ import { useCSharpNamePolicy } from "../name-policy.js";
4
+ import { CSharpOutputSymbol } from "../symbols/csharp-output-symbol.js";
5
+ import { useCSharpScope } from "../symbols/scopes.js";
6
+ import { Name } from "./Name.js";
7
+ // a constructor/method parameter
8
+ export function Parameter(props) {
9
+ const name = useCSharpNamePolicy().getName(props.name, "parameter");
10
+ const scope = useCSharpScope();
11
+ if (scope.kind !== "member" || scope.name !== "constructor-decl" && scope.name !== "method-decl") {
12
+ throw new Error("can't define a parameter outside of a constructor-decl or method-decl scope");
13
+ }
14
+ const memberSymbol = new CSharpOutputSymbol(name, {
15
+ scope,
16
+ refkeys: props.refkey ?? core.refkey(props.name)
17
+ });
18
+ return _$createComponent(core.Declaration, {
19
+ symbol: memberSymbol,
20
+ get children() {
21
+ return [_$memo(() => props.type), " ", _$createComponent(Name, {})];
22
+ }
23
+ });
24
+ }
25
+ // a collection of parameters
26
+ export function Parameters(props) {
27
+ return _$createComponent(core.For, {
28
+ get each() {
29
+ return props.parameters;
30
+ },
31
+ joiner: ", ",
32
+ children: param => _$createComponent(Parameter, param)
33
+ });
34
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"SourceFile.d.ts","sourceRoot":"","sources":["../../../src/components/SourceFile.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAMvC,MAAM,WAAW,iBAAiB;IAEhC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAKD,wBAAgB,aAAa,IAAI,iBAAiB,GAAG,SAAS,CAE7D;AAED,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,kCAAkC;IAClC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtB,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;CAC1B;AAID,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,iBA+ChD"}
1
+ {"version":3,"file":"SourceFile.d.ts","sourceRoot":"","sources":["../../../src/components/SourceFile.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAMvC,MAAM,WAAW,iBAAiB;IAEhC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAKD,wBAAgB,aAAa,IAAI,iBAAiB,GAAG,SAAS,CAE7D;AAED,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IAEb,kCAAkC;IAClC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtB,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;CAC1B;AAID,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,iBA8ChD"}
@@ -41,7 +41,6 @@ export function SourceFile(props) {
41
41
  filetype: "cs",
42
42
  reference: Reference,
43
43
  tabWidth: 4,
44
- printWidth: 120,
45
44
  get children() {
46
45
  return _$createComponent(SourceFileContext.Provider, {
47
46
  value: sourceFileCtx,
@@ -1,21 +1,12 @@
1
- export * from "./ClassDeclaration.jsx";
2
- export * from "./ClassMethod.jsx";
1
+ export * from "./Class.js";
2
+ export { ClassMethod, type ClassMethodProps } from "./ClassMethod.jsx";
3
3
  export * from "./Declaration.js";
4
- export * from "./doc/comment.jsx";
5
- export * from "./doc/from-markdown.jsx";
6
- export * from "./EnumDeclaration.jsx";
7
- export * from "./interface/declaration.js";
8
- export * from "./interface/method.js";
9
- export * from "./interface/property.js";
4
+ export * from "./Enum.js";
10
5
  export * from "./Name.js";
11
6
  export * from "./Namespace.js";
12
- export * from "./parameters/parameters.jsx";
7
+ export * from "./Parameters.js";
13
8
  export * from "./ProjectDirectory.js";
14
- export * from "./property/property.jsx";
15
- export * from "./record/declaration.js";
16
9
  export * from "./Reference.js";
17
10
  export * from "./SourceFile.js";
18
- export type { TypeParameterProps } from "./type-parameters/type-parameter.jsx";
19
11
  export * from "./UsingDirective.js";
20
- export * from "./var/declaration.jsx";
21
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,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,iBAAiB,CAAC;AAChC,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,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC"}
@@ -1,20 +1,11 @@
1
- export * from "./ClassDeclaration.js";
2
- export * from "./ClassMethod.js";
1
+ export * from "./Class.js";
2
+ export { ClassMethod } from "./ClassMethod.js";
3
3
  export * from "./Declaration.js";
4
- export * from "./doc/comment.js";
5
- export * from "./doc/from-markdown.js";
6
- export * from "./EnumDeclaration.js";
7
- export * from "./interface/declaration.js";
8
- export * from "./interface/method.js";
9
- export * from "./interface/property.js";
4
+ export * from "./Enum.js";
10
5
  export * from "./Name.js";
11
6
  export * from "./Namespace.js";
12
- export * from "./parameters/parameters.js";
7
+ export * from "./Parameters.js";
13
8
  export * from "./ProjectDirectory.js";
14
- export * from "./property/property.js";
15
- export * from "./record/declaration.js";
16
9
  export * from "./Reference.js";
17
10
  export * from "./SourceFile.js";
18
- export * from "./UsingDirective.js";
19
- export * from "./var/declaration.js";
20
- export {};
11
+ export * from "./UsingDirective.js";
@@ -1,10 +1,10 @@
1
1
  import * as core from "@alloy-js/core";
2
2
  import * as base from "../index.js";
3
- export declare const ClassDeclaration: core.StcSignature<base.ClassDeclarationProps>;
3
+ export declare const Class: core.StcSignature<base.ClassProps>;
4
4
  export declare const ClassConstructor: core.StcSignature<base.ClassConstructorProps>;
5
5
  export declare const ClassMember: core.StcSignature<base.ClassMemberProps>;
6
6
  export declare const ClassMethod: core.StcSignature<base.ClassMethodProps>;
7
- export declare const EnumDeclaration: core.StcSignature<base.EnumDeclarationProps>;
7
+ export declare const Enum: core.StcSignature<base.EnumProps>;
8
8
  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>;
@@ -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,gBAAgB,+CAAkC,CAAC;AAChE,eAAO,MAAM,WAAW,0CAA6B,CAAC;AACtD,eAAO,MAAM,WAAW,0CAA6B,CAAC;AACtD,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"}
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,KAAK,oCAAuB,CAAC;AAC1C,eAAO,MAAM,gBAAgB,+CAAkC,CAAC;AAChE,eAAO,MAAM,WAAW,0CAA6B,CAAC;AACtD,eAAO,MAAM,WAAW,0CAA6B,CAAC;AACtD,eAAO,MAAM,IAAI,mCAAsB,CAAC;AACxC,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"}
@@ -1,10 +1,10 @@
1
1
  import * as core from "@alloy-js/core";
2
2
  import * as base from "../index.js";
3
- export const ClassDeclaration = core.stc(base.ClassDeclaration);
3
+ export const Class = core.stc(base.Class);
4
4
  export const ClassConstructor = core.stc(base.ClassConstructor);
5
5
  export const ClassMember = core.stc(base.ClassMember);
6
6
  export const ClassMethod = core.stc(base.ClassMethod);
7
- export const EnumDeclaration = core.stc(base.EnumDeclaration);
7
+ export const Enum = core.stc(base.Enum);
8
8
  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);
@@ -1,14 +1,8 @@
1
- /** Access modifiers. */
2
- export interface AccessModifiers {
3
- readonly public?: boolean;
4
- readonly protected?: boolean;
5
- readonly private?: boolean;
6
- readonly internal?: boolean;
7
- readonly file?: boolean;
8
- }
9
- export declare const getAccessModifier: (data: AccessModifiers) => string;
1
+ export type AccessModifier = "public" | "protected" | "private" | "internal" | "protected-internal" | "private-protected" | "file";
2
+ export declare function getAccessModifier(accessModifier?: AccessModifier): string;
3
+ export type MethodModifier = "abstract" | "sealed" | "static" | "virtual";
4
+ export declare function getMethodModifier(methodModifier?: MethodModifier): string;
10
5
  export declare function getAsyncModifier(async?: boolean): string;
11
6
  /** Resolve the modifier prefix */
12
7
  export declare function computeModifiersPrefix(modifiers: Array<string | undefined>): string;
13
- export declare function makeModifiers<T>(obj: Array<keyof T>): (data: T) => string;
14
8
  //# sourceMappingURL=modifiers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"modifiers.d.ts","sourceRoot":"","sources":["../../src/modifiers.ts"],"names":[],"mappings":"AAGA,yBAAyB;AACzB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,iBAAiB,mCAM5B,CAAC;AAEH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAExD;AAED,kCAAkC;AAClC,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GACnC,MAAM,CAGR;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAC1C,MAAM,CAAC,YAMhB"}
1
+ {"version":3,"file":"modifiers.d.ts","sourceRoot":"","sources":["../../src/modifiers.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,WAAW,GACX,SAAS,GACT,UAAU,GACV,oBAAoB,GACpB,mBAAmB,GACnB,MAAM,CAAC;AAgBX,wBAAgB,iBAAiB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,MAAM,CAEzE;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAa1E,wBAAgB,iBAAiB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,MAAM,CAEzE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAExD;AAED,kCAAkC;AAClC,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GACnC,MAAM,CAGR"}
@@ -1,20 +1,43 @@
1
1
  // the possible C# access modifiers
2
2
  // https://learn.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers
3
3
 
4
- /** Access modifiers. */
4
+ // maps the above access modifier value to its C# syntax.
5
+ // note that the C# keyword includes a trailing space
6
+ const accessModifierLookup = {
7
+ public: "public ",
8
+ protected: "protected ",
9
+ private: "private ",
10
+ internal: "internal ",
11
+ "protected-internal": "protected internal ",
12
+ "private-protected": "private protected ",
13
+ file: "file "
14
+ };
5
15
 
6
- export const getAccessModifier = makeModifiers(["public", "protected", "private", "internal", "file"]);
16
+ // returns the C# syntax for the specified access modifier.
17
+ // if no access modifier is specified, the empty string is returned.
18
+ export function getAccessModifier(accessModifier) {
19
+ return accessModifier ? accessModifierLookup[accessModifier] : "";
20
+ }
21
+ // maps the above method modifier value to its C# syntax.
22
+ // note that the C# keyword includes a trailing space
23
+ const methodModifierLookup = {
24
+ abstract: "abstract ",
25
+ sealed: "sealed ",
26
+ static: "static ",
27
+ virtual: "virtual "
28
+ };
29
+
30
+ // returns the C# syntax for the specified method modifier.
31
+ // if no method modifier is specified, the empty string is returned.
32
+ export function getMethodModifier(methodModifier) {
33
+ return methodModifier ? methodModifierLookup[methodModifier] : "";
34
+ }
7
35
  export function getAsyncModifier(async) {
8
- return async ? "async" : "";
36
+ return async ? "async " : "";
9
37
  }
10
38
 
11
39
  /** Resolve the modifier prefix */
12
40
  export function computeModifiersPrefix(modifiers) {
13
41
  const resolved = modifiers.filter(x => x);
14
- return resolved.length > 0 ? resolved.join(" ") + " " : "";
15
- }
16
- export function makeModifiers(obj) {
17
- return data => {
18
- return obj.map(key => data[key] ? key : undefined).filter(x => x).join(" ");
19
- };
42
+ return resolved.length > 0 ? resolved.join("") : "";
20
43
  }
@@ -1,5 +1,5 @@
1
1
  import * as core from "@alloy-js/core";
2
- export type CSharpElements = "class" | "constant" | "variable" | "enum" | "enum-member" | "function" | "interface" | "record" | "class-member-private" | "class-member-public" | "class-method" | "class-property" | "parameter" | "type-parameter";
2
+ export type CSharpElements = "class" | "constant" | "enum" | "enum-member" | "function" | "interface" | "class-member-private" | "class-member-public" | "class-method" | "parameter" | "type-parameter";
3
3
  export declare function createCSharpNamePolicy(): core.NamePolicy<CSharpElements>;
4
4
  export declare function useCSharpNamePolicy(): core.NamePolicy<CSharpElements>;
5
5
  //# sourceMappingURL=name-policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"name-policy.d.ts","sourceRoot":"","sources":["../../src/name-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAIvC,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,UAAU,GACV,UAAU,GACV,MAAM,GACN,aAAa,GACb,UAAU,GACV,WAAW,GACX,QAAQ,GACR,sBAAsB,GACtB,qBAAqB,GACrB,cAAc,GACd,gBAAgB,GAChB,WAAW,GACX,gBAAgB,CAAC;AAGrB,wBAAgB,sBAAsB,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAmBxE;AAGD,wBAAgB,mBAAmB,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAErE"}
1
+ {"version":3,"file":"name-policy.d.ts","sourceRoot":"","sources":["../../src/name-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAIvC,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,UAAU,GACV,MAAM,GACN,aAAa,GACb,UAAU,GACV,WAAW,GACX,sBAAsB,GACtB,qBAAqB,GACrB,cAAc,GACd,WAAW,GACX,gBAAgB,CAAC;AAGrB,wBAAgB,sBAAsB,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAiBxE;AAGD,wBAAgB,mBAAmB,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAErE"}