@alloy-js/csharp 0.23.0-dev.1 → 0.23.0-dev.4

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 (76) hide show
  1. package/CHANGELOG.md +1 -14
  2. package/dist/src/components/access-expression/access-expression.d.ts +7 -2
  3. package/dist/src/components/access-expression/access-expression.d.ts.map +1 -1
  4. package/dist/src/components/access-expression/access-expression.js +108 -197
  5. package/dist/src/components/access-expression/access-expression.js.map +1 -1
  6. package/dist/src/components/access-expression/part-descriptors.d.ts +0 -31
  7. package/dist/src/components/access-expression/part-descriptors.d.ts.map +1 -1
  8. package/dist/src/components/access-expression/part-descriptors.js +0 -105
  9. package/dist/src/components/access-expression/part-descriptors.js.map +1 -1
  10. package/dist/src/components/doc/from-markdown.js +1 -1
  11. package/dist/src/components/doc/from-markdown.js.map +1 -1
  12. package/dist/src/components/enum/member.d.ts.map +1 -1
  13. package/dist/src/components/enum/member.js +2 -2
  14. package/dist/src/components/enum/member.js.map +1 -1
  15. package/dist/src/components/lexical-scope.d.ts.map +1 -1
  16. package/dist/src/components/lexical-scope.js +4 -3
  17. package/dist/src/components/lexical-scope.js.map +1 -1
  18. package/dist/src/components/method-scope.d.ts.map +1 -1
  19. package/dist/src/components/method-scope.js +4 -3
  20. package/dist/src/components/method-scope.js.map +1 -1
  21. package/dist/src/components/source-file/source-file.d.ts.map +1 -1
  22. package/dist/src/components/source-file/source-file.js +6 -3
  23. package/dist/src/components/source-file/source-file.js.map +1 -1
  24. package/dist/src/contexts/global-namespace.d.ts.map +1 -1
  25. package/dist/src/contexts/global-namespace.js +4 -4
  26. package/dist/src/contexts/global-namespace.js.map +1 -1
  27. package/dist/src/create-library.d.ts.map +1 -1
  28. package/dist/src/create-library.js +7 -7
  29. package/dist/src/create-library.js.map +1 -1
  30. package/dist/src/scopes/csharp.d.ts +1 -0
  31. package/dist/src/scopes/csharp.d.ts.map +1 -1
  32. package/dist/src/scopes/csharp.js +10 -0
  33. package/dist/src/scopes/csharp.js.map +1 -1
  34. package/dist/src/scopes/factories.d.ts.map +1 -1
  35. package/dist/src/scopes/factories.js +4 -3
  36. package/dist/src/scopes/factories.js.map +1 -1
  37. package/dist/src/scopes/namespace.js +2 -2
  38. package/dist/src/scopes/namespace.js.map +1 -1
  39. package/dist/src/symbols/csharp.d.ts +1 -0
  40. package/dist/src/symbols/csharp.d.ts.map +1 -1
  41. package/dist/src/symbols/csharp.js +19 -2
  42. package/dist/src/symbols/csharp.js.map +1 -1
  43. package/dist/src/symbols/factories.d.ts.map +1 -1
  44. package/dist/src/symbols/factories.js +42 -10
  45. package/dist/src/symbols/factories.js.map +1 -1
  46. package/dist/src/symbols/named-type.d.ts +1 -0
  47. package/dist/src/symbols/named-type.d.ts.map +1 -1
  48. package/dist/src/symbols/named-type.js +12 -1
  49. package/dist/src/symbols/named-type.js.map +1 -1
  50. package/dist/src/symbols/namespace.d.ts +1 -0
  51. package/dist/src/symbols/namespace.d.ts.map +1 -1
  52. package/dist/src/symbols/namespace.js +11 -1
  53. package/dist/src/symbols/namespace.js.map +1 -1
  54. package/dist/testing/create-wrapper.d.ts.map +1 -1
  55. package/dist/testing/create-wrapper.js +2 -1
  56. package/dist/testing/create-wrapper.js.map +1 -1
  57. package/dist/tsconfig.tsbuildinfo +1 -1
  58. package/package.json +11 -7
  59. package/src/components/access-expression/access-expression.tsx +146 -243
  60. package/src/components/access-expression/part-descriptors.ts +0 -186
  61. package/src/components/doc/from-markdown.tsx +4 -1
  62. package/src/components/enum/member.tsx +16 -5
  63. package/src/components/lexical-scope.tsx +15 -4
  64. package/src/components/method-scope.tsx +15 -4
  65. package/src/components/source-file/source-file.tsx +11 -2
  66. package/src/contexts/global-namespace.ts +11 -6
  67. package/src/create-library.ts +18 -9
  68. package/src/scopes/csharp.ts +11 -0
  69. package/src/scopes/factories.ts +4 -4
  70. package/src/scopes/namespace.ts +2 -2
  71. package/src/symbols/csharp.ts +20 -1
  72. package/src/symbols/factories.ts +46 -34
  73. package/src/symbols/named-type.ts +15 -3
  74. package/src/symbols/namespace.ts +12 -2
  75. package/temp/api.json +144 -237
  76. package/testing/create-wrapper.tsx +2 -1
package/CHANGELOG.md CHANGED
@@ -6,7 +6,6 @@
6
6
 
7
7
  - [#328](https://github.com/alloy-framework/alloy/pull/328) Empty namespaces now don't render an empty block.
8
8
 
9
-
10
9
  ## 0.21.0
11
10
 
12
11
  ### Bug Fixes
@@ -39,7 +38,6 @@
39
38
 
40
39
  - [#283](https://github.com/alloy-framework/alloy/pull/283) Rename `UsingDirective` -> `Usings`
41
40
 
42
-
43
41
  ## 0.20.0
44
42
 
45
43
  ### Bug Fixes
@@ -58,13 +56,12 @@
58
56
 
59
57
  - [#206](https://github.com/alloy-framework/alloy/pull/206) Update core's representation of symbols and scopes. These changes should not impact usage of language components in code generators, but there are some significant changes for language library implementations. See https://github.com/alloy-framework/alloy/pull/206 for more details.
60
58
 
61
-
62
59
  ## 0.19.0
63
60
 
64
61
  ### Features
65
62
 
66
63
  - [#246](https://github.com/alloy-framework/alloy/pull/246) Add support for `struct` declaration
67
- - [#250](https://github.com/alloy-framework/alloy/pull/250) Fields support `new`, `readonly`, `static` and `volatile` modifier
64
+ - [#250](https://github.com/alloy-framework/alloy/pull/250) Fields support `new`, `readonly`, `static` and `volatile` modifier
68
65
  - [#250](https://github.com/alloy-framework/alloy/pull/250) Private field respect c# naming convention of `_camelCase`
69
66
  - [#251](https://github.com/alloy-framework/alloy/pull/251) Support `readonly`, `override` and `extern` modifier for `Method`
70
67
  - [#247](https://github.com/alloy-framework/alloy/pull/247) Add support for expression body syntax in methods
@@ -75,7 +72,6 @@
75
72
  - [#248](https://github.com/alloy-framework/alloy/pull/248) Rename `ClassConstructor` to `Constructor` to allow using it with `StructDeclaration`
76
73
  - [#248](https://github.com/alloy-framework/alloy/pull/248) Rename `ClassMethod` to `Method` to allow using it with `StructDeclaration`
77
74
 
78
-
79
75
  ## 0.18.0
80
76
 
81
77
  ### Bug Fixes
@@ -106,7 +102,6 @@
106
102
 
107
103
  - [#192](https://github.com/alloy-framework/alloy/pull/192) Rename `Class` -> `ClassDeclaration` and `Enum` -> `EnumDeclaration`
108
104
 
109
-
110
105
  ## 0.17.0
111
106
 
112
107
  No changes, version bump only.
@@ -137,7 +132,6 @@ No changes, version bump only.
137
132
 
138
133
  - [#105](https://github.com/alloy-framework/alloy/pull/105) Updated dependencies
139
134
 
140
-
141
135
  ## 0.10.0
142
136
 
143
137
  No changes, version bump only.
@@ -152,7 +146,6 @@ No changes, version bump only.
152
146
 
153
147
  - [#67](https://github.com/alloy-framework/alloy/pull/67) Removed all default refkeys based on declaration name.
154
148
 
155
-
156
149
  ## 0.7.0
157
150
 
158
151
  No changes, version bump only.
@@ -163,7 +156,6 @@ No changes, version bump only.
163
156
 
164
157
  - [#56](https://github.com/alloy-framework/alloy/pull/56) Emitted code is now formatted properly.
165
158
 
166
-
167
159
  ## 0.5.0
168
160
 
169
161
  No changes, version bump only.
@@ -174,19 +166,14 @@ No changes, version bump only.
174
166
 
175
167
  - [80f1ba8](https://github.com/alloy-framework/alloy/commit/80f1ba88470960ce57487b644ae3c3f37f9c4690) Indent source files with 4 spaces as Anders intended.
176
168
 
177
-
178
169
  ## 0.3.0
179
170
 
180
171
  ### Features
181
172
 
182
173
  - [#38](https://github.com/alloy-framework/alloy/pull/38) Indent source files with 4 spaces as Anders intended.
183
174
 
184
-
185
-
186
-
187
175
  ## 0.2.0
188
176
 
189
177
  ### Bug Fixes
190
178
 
191
179
  - [#31](https://github.com/alloy-framework/alloy/pull/31) Update license to MIT
192
-
@@ -3,9 +3,14 @@ import { CSharpSymbol } from "../../symbols/csharp.js";
3
3
  export interface AccessExpressionProps {
4
4
  children: Children;
5
5
  }
6
- export declare function AccessExpression(props: AccessExpressionProps): string | number | boolean | void | import("@alloy-js/core").RenderableObject | import("@alloy-js/core").RefkeyableObject | (() => Children) | import("@vue/reactivity").Ref<any, any> | import("@alloy-js/core").CustomContext | import("@alloy-js/core").IndentIntrinsicElement | import("@alloy-js/core").IndentIfBreakIntrinsicElement | import("@alloy-js/core").BrIntrinsicElement | import("@alloy-js/core").LineIntrinsicElement | import("@alloy-js/core").HbrIntrinsicElement | import("@alloy-js/core").HardlineIntrinsicElement | import("@alloy-js/core").SbrIntrinsicElement | import("@alloy-js/core").SoftlineIntrinsicElement | import("@alloy-js/core").GroupIntrinsicElement | import("@alloy-js/core").AlignIntrinsicElement | import("@alloy-js/core").FillIntrinsicElement | import("@alloy-js/core").BreakParentIntrinsicElement | import("@alloy-js/core").LineSuffixIntrinsicElement | import("@alloy-js/core").LineSuffixBoundaryIntrinsicElement | import("@alloy-js/core").DedentIntrinsicElement | import("@alloy-js/core").LiterallineIntrinsicElement | import("@alloy-js/core").LbrIntrinsicElement | import("@alloy-js/core").DedentToRootIntrinsicElement | import("@alloy-js/core").MarkAsRootIntrinsicElement | import("@alloy-js/core").IfBreakIntrinsicElement | Children[] | import("@vue/reactivity").ComputedRef<Children> | null;
6
+ /**
7
+ * Create a C# access expression from parts. Each part can be a member access,
8
+ * element access, or invocation. Supports conditional access (`?.`), generic
9
+ * type arguments, and call chain formatting.
10
+ */
11
+ export declare function AccessExpression(props: AccessExpressionProps): Children;
7
12
  export declare namespace AccessExpression {
8
- var Part: (props: AccessExpressionPartProps) => void;
13
+ var Part: (_props: AccessExpressionPartProps) => void;
9
14
  }
10
15
  export interface AccessExpressionPartProps {
11
16
  children?: Children;
@@ -1 +1 @@
1
- {"version":3,"file":"access-expression.d.ts","sourceRoot":"","sources":["../../../../src/components/access-expression/access-expression.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAMR,UAAU,EAGX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAWvD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,6yCA6B5D;yBA7Be,gBAAgB;sBA0GS,yBAAyB;;AA1DlE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEtB;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB;;;OAGG;IACH,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
1
+ {"version":3,"file":"access-expression.d.ts","sourceRoot":"","sources":["../../../../src/components/access-expression/access-expression.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAIR,UAAU,EAEX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAoGD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,YAE5D;yBAFe,gBAAgB;;;AAMhC,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEtB;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;;OAGG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB;;;OAGG;IACH,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
@@ -1,180 +1,90 @@
1
- import { createIntrinsic as _$createIntrinsic, createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
2
- import { childrenArray, computed, For, isComponentCreator, Show, takeSymbols } from "@alloy-js/core";
3
- import { childrenToPartDescriptors, isArgsPart, isIdPart } from "./part-descriptors.js";
4
- export function AccessExpression(props) {
5
- const children = flattenAccessExpression(childrenArray(() => props.children));
6
- const parts = childrenToPartDescriptors(children);
7
-
8
- // any symbols emitted from the children won't be relevant to parent scopes.
9
- takeSymbols();
10
- if (parts.length === 0) {
11
- return [];
12
- }
13
- const isCallChain = computed(() => {
14
- let callCount = 0;
15
- for (const part of parts) {
16
- if (isArgsPart(part)) callCount++;
1
+ import { memo as _$memo, createComponent as _$createComponent, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
2
+ import { computed, createAccessExpression, For, Show } from "@alloy-js/core";
3
+ import { normalizeAttributeName } from "./part-descriptors.js";
4
+ const exclusiveParts = ["children", "args", "refkey", "symbol", "id"];
5
+ const {
6
+ Expression,
7
+ Part,
8
+ registerOuterComponent
9
+ } = createAccessExpression({
10
+ createDescriptor(partProps, sym, first) {
11
+ const foundProps = exclusiveParts.filter(key => key in partProps);
12
+ if (foundProps.length > 1) {
13
+ throw new Error(`Only one of ${foundProps.join(", ")} can be used for a MemberExpression part at a time`);
17
14
  }
18
- return callCount > 1;
19
- });
20
-
21
- // construct a member expression from the parts. When a part is nullish,
22
- // and there is a subsequent part, we use `?.` instead of `.`. accessStyle determines
23
- // whether we use dot or bracket notation.
24
-
25
- return computed(() => {
26
- return isCallChain.value ? formatCallChain(parts) : formatNonCallChain(parts);
27
- });
28
- }
29
-
30
- /**
31
- * Flattens nested access expressions into a single array of parts.
32
- */
33
- function flattenAccessExpression(children) {
34
- const flattened = [];
35
- for (const child of children) {
36
- if (isComponentCreator(child, AccessExpression)) {
37
- flattened.push(...flattenAccessExpression(childrenArray(() => child.props.children)));
15
+ let id;
16
+ if (partProps.args || partProps.index !== undefined || partProps.indexerArgs) {
17
+ id = undefined;
18
+ } else if (partProps.children !== undefined) {
19
+ id = partProps.children;
20
+ } else if (first && partProps.refkey) {
21
+ id = partProps.refkey;
22
+ } else if (partProps.id !== undefined) {
23
+ id = normalizeIfAttribute(partProps.id, partProps.attribute);
24
+ } else if (sym) {
25
+ id = normalizeIfAttribute(escapeId(sym.name), partProps.attribute);
38
26
  } else {
39
- flattened.push(child);
40
- }
41
- }
42
- return flattened;
43
- }
44
- AccessExpression.Part = function (props) {
45
- /** renders nothing, the parent AccessExpression will use these args */
46
- };
47
-
48
- /**
49
- * Formatting of call chains (i.e. member expressions which have more than one
50
- * call in them). The general approach is that line breaks occur after each
51
- * call, and there is only one call per line. When there are non-call elements,
52
- * they occur prior to the call part. The first part of the member expression
53
- * contains all but the last non-call part.
54
- *
55
- * The following is an example of proper formatting:
56
- *
57
- * ```ts
58
- * z.dummy // all but the last non-call part for the first element
59
- * .object({ // the first call part with line break after
60
- * a: 1,
61
- * })
62
- * .dummy.partial() // the next call part with non-call parts before it
63
- * ```
64
- */
65
- function formatCallChain(parts) {
66
- return computed(() => {
67
- const expression = [];
68
-
69
- // break the expression into parts.
70
- const chunks = [];
71
-
72
- // the first part is all the non-call parts
73
- let partIndex = 0;
74
- function pushPart() {
75
- const part = parts[partIndex];
76
- if (!part) throw new Error("No part to push");
77
- chunks.at(-1).push(part);
78
- partIndex++;
27
+ id = "<unresolved symbol>";
79
28
  }
80
- function pushChunk() {
81
- chunks.push([]);
29
+ let indexerArgs = [];
30
+ if (partProps.indexerArgs) {
31
+ indexerArgs = partProps.indexerArgs;
32
+ } else if (partProps.index !== undefined) {
33
+ indexerArgs = [partProps.index];
82
34
  }
83
-
84
- // For the first chunk, take all the non-call parts except the last one
85
- // and put them in a chunk.
86
- pushChunk();
87
- while (partIndex < parts.length && (partIndex === parts.length - 1 || chunks.at(-1).length === 0 || !isArgsPart(parts[partIndex + 1]))) {
88
- pushPart();
89
- if (isArgsPart(chunks.at(-1).at(-1))) {
90
- // the first segment always ends after we see a call
91
- // if we happen to take one
92
- break;
93
- }
94
- }
95
-
96
- // then for all remaining parts, collect all the non-call parts and end with
97
- // a call chunk
98
- while (partIndex < parts.length) {
99
- pushChunk();
100
- while (partIndex < parts.length && !isArgsPart(parts[partIndex])) {
101
- pushPart();
102
- }
103
- while (partIndex < parts.length && isArgsPart(parts[partIndex])) {
104
- pushPart();
105
- }
106
- }
107
- for (let chunkIndex = 0; chunkIndex < chunks.length; chunkIndex++) {
108
- const chunk = chunks[chunkIndex];
109
- const chunkExpression = [];
110
- for (let partIndex = 0; partIndex < chunk.length; partIndex++) {
111
- if (chunkIndex === 0 && partIndex === 0) {
112
- // first part is just gonna be the id
113
- const firstPart = isIdPart(chunk[0]) ? chunk[0].id : chunk[0].indexerArgs;
114
- chunkExpression.push(firstPart);
115
- continue;
116
- }
117
- const part = chunk[partIndex];
118
- const prevPart = partIndex === 0 ? chunks[chunkIndex - 1].at(-1) : chunk[partIndex - 1];
119
- if (isArgsPart(part)) {
120
- // For parts with only args (no name), append function call directly with appropriate nullish operator
121
- chunkExpression.push(formatCallExpr(prevPart, part));
122
- } else if (isIdPart(part)) {
123
- chunkExpression.push(formatMemberAccess(prevPart, part, true));
124
- } else {
125
- // bracket notation - don't include the dot
126
- chunkExpression.push(formatElementAccess(prevPart, part));
35
+ return {
36
+ id,
37
+ indexerArgs,
38
+ conditional: !!partProps.conditional,
39
+ nullable: partProps.nullable ? true : sym ? sym.isNullable : false,
40
+ args: partProps.args === true ? [] : Array.isArray(partProps.args) ? partProps.args : undefined,
41
+ typeArgs: partProps.typeArgs
42
+ };
43
+ },
44
+ getBase(part) {
45
+ if (part.id !== undefined) {
46
+ return [_$memo(() => part.id), _$createComponent(TypeArgs, {
47
+ get args() {
48
+ return part.typeArgs;
127
49
  }
128
- }
129
- expression.push(chunkIndex === 0 ? chunkExpression : [_$createIntrinsic("sbr", {}), chunkExpression]);
50
+ })];
130
51
  }
131
- return _$createIntrinsic("group", {
132
- get children() {
133
- return _$createIntrinsic("indent", {
134
- children: expression
135
- });
136
- }
137
- });
138
- });
139
- }
140
- function formatNonCallChain(parts) {
141
- return computed(() => {
142
- const expression = [];
143
- for (let i = 0; i < parts.length; i++) {
144
- const part = parts[i];
145
- const base = isIdPart(part) ? part.id : part.indexerArgs;
146
- if (i === 0) {
147
- expression.push(base, _$createComponent(TypeArgs, {
148
- get args() {
149
- return part.typeArgs;
150
- }
151
- }));
152
- } else {
153
- // Determine if we should use nullish operator from previous part
154
- const prevPart = parts[i - 1];
155
- if (isArgsPart(part)) {
156
- // For parts with only args (no name), append function call directly with appropriate nullish operator
157
- expression.push(formatCallExpr(prevPart, part));
158
- } else if (isIdPart(part)) {
159
- expression.push(formatMemberAccess(prevPart, part));
160
- } else {
161
- // bracket notation - don't include the dot
162
- expression.push(formatElementAccess(prevPart, part));
163
- }
164
- }
52
+ return part.indexerArgs;
53
+ },
54
+ formatPart(part, prevPart, inCallChain) {
55
+ if (part.args !== undefined) {
56
+ return formatCallExpr(part);
57
+ } else if (part.id !== undefined) {
58
+ return formatMemberAccess(prevPart, part, inCallChain);
59
+ } else {
60
+ return formatElementAccess(prevPart, part);
165
61
  }
166
- return expression;
167
- });
62
+ },
63
+ isCallPart(part) {
64
+ return part.args !== undefined;
65
+ }
66
+ });
67
+
68
+ /**
69
+ * Create a C# access expression from parts. Each part can be a member access,
70
+ * element access, or invocation. Supports conditional access (`?.`), generic
71
+ * type arguments, and call chain formatting.
72
+ */
73
+ export function AccessExpression(props) {
74
+ return Expression(props);
168
75
  }
76
+ AccessExpression.Part = Part;
77
+ registerOuterComponent(AccessExpression);
78
+ // --- Formatting helpers ---
79
+
169
80
  function formatElementAccess(prevPart, part) {
81
+ const indexerArgs = computed(() => part.indexerArgs);
170
82
  return _$createIntrinsic("group", {
171
83
  get children() {
172
- return [_$memo(() => part.conditional || "nullable" in prevPart && prevPart.nullable ? "?" : ""), "[", _$createIntrinsic("indent", {
84
+ return [_$memo(() => part.conditional || prevPart.nullable ? "?" : ""), "[", _$createIntrinsic("indent", {
173
85
  get children() {
174
86
  return [_$createIntrinsic("sbr", {}), _$createComponent(For, {
175
- get each() {
176
- return part.indexerArgs;
177
- },
87
+ each: indexerArgs,
178
88
  comma: true,
179
89
  line: true,
180
90
  children: arg => arg
@@ -184,36 +94,26 @@ function formatElementAccess(prevPart, part) {
184
94
  }
185
95
  });
186
96
  }
187
- function formatMemberAccess(prevPart, part, noIndent = false) {
188
- let Wrapping;
97
+ function formatMemberAccess(prevPart, part, noIndent) {
98
+ const content = [_$memo(() => part.conditional || prevPart.nullable ? "?." : "."), _$memo(() => part.id), _$createComponent(TypeArgs, {
99
+ get args() {
100
+ return part.typeArgs;
101
+ }
102
+ })];
189
103
  if (noIndent) {
190
- Wrapping = function (props) {
191
- return _$createIntrinsic("group", {
192
- get children() {
193
- return [_$createIntrinsic("sbr", {}), _$memo(() => props.children)];
194
- }
195
- });
196
- };
197
- } else {
198
- Wrapping = function (props) {
199
- return _$createIntrinsic("group", {
200
- get children() {
201
- return _$createIntrinsic("indent", {
202
- get children() {
203
- return [_$createIntrinsic("sbr", {}), _$memo(() => props.children)];
204
- }
205
- });
206
- }
207
- });
208
- };
104
+ return _$createIntrinsic("group", {
105
+ get children() {
106
+ return [_$createIntrinsic("sbr", {}), content];
107
+ }
108
+ });
209
109
  }
210
- return _$createComponent(Wrapping, {
110
+ return _$createIntrinsic("group", {
211
111
  get children() {
212
- return [_$memo(() => part.conditional || "nullable" in prevPart && prevPart.nullable ? "?." : "."), _$memo(() => isIdPart(part) ? part.id : part.indexerArgs), _$createComponent(TypeArgs, {
213
- get args() {
214
- return part.typeArgs;
112
+ return _$createIntrinsic("indent", {
113
+ get children() {
114
+ return [_$createIntrinsic("sbr", {}), content];
215
115
  }
216
- })];
116
+ });
217
117
  }
218
118
  });
219
119
  }
@@ -242,27 +142,26 @@ function TypeArgs(props) {
242
142
  }
243
143
  });
244
144
  }
245
- function formatCallExpr(prevPart, part) {
145
+ function formatCallExpr(part) {
146
+ const args = computed(() => part.args ?? []);
246
147
  return _$createIntrinsic("group", {
247
148
  get children() {
248
149
  return ["(", _$createComponent(Show, {
249
150
  get when() {
250
- return part.args.length <= 1;
151
+ return args.value.length <= 1;
251
152
  },
252
153
  get children() {
253
- return part.args[0];
154
+ return args.value[0];
254
155
  }
255
156
  }), _$createComponent(Show, {
256
157
  get when() {
257
- return part.args.length > 1;
158
+ return args.value.length > 1;
258
159
  },
259
160
  get children() {
260
161
  return [_$createIntrinsic("indent", {
261
162
  get children() {
262
163
  return [_$createIntrinsic("sbr", {}), _$createComponent(For, {
263
- get each() {
264
- return part.args;
265
- },
164
+ each: args,
266
165
  comma: true,
267
166
  line: true,
268
167
  children: arg => arg
@@ -274,4 +173,16 @@ function formatCallExpr(prevPart, part) {
274
173
  }
275
174
  });
276
175
  }
176
+
177
+ // --- Utilities ---
178
+
179
+ function escapeId(id) {
180
+ return id.replace(/"/g, '\\"');
181
+ }
182
+ function normalizeIfAttribute(id, isAttribute) {
183
+ if (isAttribute) {
184
+ return normalizeAttributeName(id);
185
+ }
186
+ return id;
187
+ }
277
188
  //# sourceMappingURL=access-expression.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["childrenArray","computed","For","isComponentCreator","Show","takeSymbols","childrenToPartDescriptors","isArgsPart","isIdPart","AccessExpression","props","children","flattenAccessExpression","parts","length","isCallChain","callCount","part","value","formatCallChain","formatNonCallChain","flattened","child","push","Part","expression","chunks","partIndex","pushPart","Error","at","pushChunk","chunkIndex","chunk","chunkExpression","firstPart","id","indexerArgs","prevPart","formatCallExpr","formatMemberAccess","formatElementAccess","_$createIntrinsic","i","base","_$createComponent","TypeArgs","args","typeArgs","_$memo","conditional","nullable","each","comma","line","arg","noIndent","Wrapping","when"],"sources":["../../../../src/components/access-expression/access-expression.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["computed","createAccessExpression","For","Show","normalizeAttributeName","exclusiveParts","Expression","Part","registerOuterComponent","createDescriptor","partProps","sym","first","foundProps","filter","key","length","Error","join","id","args","index","undefined","indexerArgs","children","refkey","normalizeIfAttribute","attribute","escapeId","name","conditional","nullable","isNullable","Array","isArray","typeArgs","getBase","part","_$memo","_$createComponent","TypeArgs","formatPart","prevPart","inCallChain","formatCallExpr","formatMemberAccess","formatElementAccess","isCallPart","AccessExpression","props","_$createIntrinsic","each","comma","line","arg","noIndent","content","when","value","replace","isAttribute"],"sources":["../../../../src/components/access-expression/access-expression.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,34 +1,3 @@
1
- import { Children } from "@alloy-js/core";
2
- export interface PartDescriptorWithId extends PartDescriptorBase {
3
- /**
4
- * The identifier of the access expression part. Will use member access, so must be a valid
5
- * C# identifier.
6
- */
7
- id: Children;
8
- conditional: boolean;
9
- typeArgs?: Children[];
10
- }
11
- export declare function isIdPart(part: PartDescriptor): part is PartDescriptorWithId;
12
- export interface PartDescriptorWithIndex extends PartDescriptorBase {
13
- /**
14
- * The index of the access expression part. Will use element access.
15
- */
16
- indexerArgs: Children[];
17
- conditional: boolean;
18
- }
19
- export declare function isIndexPart(part: PartDescriptor): part is PartDescriptorWithIndex;
20
- export interface PartDescriptorWithArgs extends PartDescriptorBase {
21
- args: Children[];
22
- }
23
- export declare function isArgsPart(part: PartDescriptor): part is PartDescriptorWithArgs;
24
- export interface PartDescriptorBase {
25
- nullable: boolean;
26
- }
27
- export type PartDescriptor = PartDescriptorWithId | PartDescriptorWithIndex | PartDescriptorWithArgs;
28
- /**
29
- * Build part descriptors from the children of a MemberExpression.
30
- */
31
- export declare function childrenToPartDescriptors(children: Children[]): PartDescriptor[];
32
1
  /**
33
2
  * Normalize attribute name by removing the "Attribute" suffix if present.
34
3
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"part-descriptors.d.ts","sourceRoot":"","sources":["../../../../src/components/access-expression/part-descriptors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAOT,MAAM,gBAAgB,CAAC;AAOxB,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D;;;OAGG;IACH,EAAE,EAAE,QAAQ,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,IAAI,oBAAoB,CAE3E;AAED,MAAM,WAAW,uBAAwB,SAAQ,kBAAkB;IACjE;;OAEG;IACH,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,cAAc,GACnB,IAAI,IAAI,uBAAuB,CAEjC;AAED,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,IAAI,EAAE,QAAQ,EAAE,CAAC;CAClB;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,cAAc,GACnB,IAAI,IAAI,sBAAsB,CAEhC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,GACtB,oBAAoB,GACpB,uBAAuB,GACvB,sBAAsB,CAAC;AAE3B;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,EAAE,GACnB,cAAc,EAAE,CAclB;AAyGD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,UAKlD"}
1
+ {"version":3,"file":"part-descriptors.d.ts","sourceRoot":"","sources":["../../../../src/components/access-expression/part-descriptors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,UAKlD"}