@powerlines/plugin-alloy 0.26.76 → 0.26.77

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 (164) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +29 -1
  2. package/dist/core/components/index.cjs +12 -1
  3. package/dist/core/components/index.mjs +7 -1
  4. package/dist/core/components/infrastructure-file.cjs +48 -1
  5. package/dist/core/components/infrastructure-file.mjs +45 -1
  6. package/dist/core/components/infrastructure-file.mjs.map +1 -1
  7. package/dist/core/components/output.cjs +41 -1
  8. package/dist/core/components/output.mjs +39 -1
  9. package/dist/core/components/output.mjs.map +1 -1
  10. package/dist/core/components/single-line-comment.cjs +23 -1
  11. package/dist/core/components/single-line-comment.mjs +21 -1
  12. package/dist/core/components/single-line-comment.mjs.map +1 -1
  13. package/dist/core/components/source-file.cjs +64 -1
  14. package/dist/core/components/source-file.mjs +61 -1
  15. package/dist/core/components/source-file.mjs.map +1 -1
  16. package/dist/core/components/spacing.cjs +20 -1
  17. package/dist/core/components/spacing.mjs +18 -1
  18. package/dist/core/components/spacing.mjs.map +1 -1
  19. package/dist/core/contexts/context.cjs +41 -1
  20. package/dist/core/contexts/context.mjs +36 -1
  21. package/dist/core/contexts/context.mjs.map +1 -1
  22. package/dist/core/contexts/index.cjs +22 -1
  23. package/dist/core/contexts/index.mjs +5 -1
  24. package/dist/core/contexts/meta.cjs +41 -1
  25. package/dist/core/contexts/meta.mjs +36 -1
  26. package/dist/core/contexts/meta.mjs.map +1 -1
  27. package/dist/core/contexts/reflection.cjs +80 -1
  28. package/dist/core/contexts/reflection.mjs +70 -1
  29. package/dist/core/contexts/reflection.mjs.map +1 -1
  30. package/dist/core/helpers/code.cjs +34 -1
  31. package/dist/core/helpers/code.mjs +32 -1
  32. package/dist/core/helpers/code.mjs.map +1 -1
  33. package/dist/core/helpers/index.cjs +4 -1
  34. package/dist/core/helpers/index.mjs +3 -1
  35. package/dist/core/index.cjs +37 -1
  36. package/dist/core/index.mjs +14 -1
  37. package/dist/hcl/components/block-declaration.cjs +34 -1
  38. package/dist/hcl/components/block-declaration.mjs +32 -1
  39. package/dist/hcl/components/block-declaration.mjs.map +1 -1
  40. package/dist/hcl/components/hcl-file.cjs +83 -1
  41. package/dist/hcl/components/hcl-file.mjs +80 -1
  42. package/dist/hcl/components/hcl-file.mjs.map +1 -1
  43. package/dist/hcl/components/index.cjs +11 -1
  44. package/dist/hcl/components/index.mjs +6 -1
  45. package/dist/hcl/components/packer-file.cjs +29 -1
  46. package/dist/hcl/components/packer-file.mjs +27 -1
  47. package/dist/hcl/components/packer-file.mjs.map +1 -1
  48. package/dist/hcl/components/terraform-file.cjs +30 -1
  49. package/dist/hcl/components/terraform-file.mjs +28 -1
  50. package/dist/hcl/components/terraform-file.mjs.map +1 -1
  51. package/dist/hcl/index.cjs +12 -1
  52. package/dist/hcl/index.mjs +7 -1
  53. package/dist/helpers/capnp.cjs +245 -37
  54. package/dist/helpers/capnp.mjs +227 -37
  55. package/dist/helpers/capnp.mjs.map +1 -1
  56. package/dist/helpers/create-builtin.cjs +20 -1
  57. package/dist/helpers/create-builtin.mjs +18 -1
  58. package/dist/helpers/create-builtin.mjs.map +1 -1
  59. package/dist/helpers/index.cjs +25 -1
  60. package/dist/helpers/index.mjs +6 -1
  61. package/dist/helpers/refkey.cjs +17 -1
  62. package/dist/helpers/refkey.mjs +15 -1
  63. package/dist/helpers/refkey.mjs.map +1 -1
  64. package/dist/helpers/typescript.cjs +43 -19
  65. package/dist/helpers/typescript.mjs +41 -19
  66. package/dist/helpers/typescript.mjs.map +1 -1
  67. package/dist/index.cjs +55 -1
  68. package/dist/index.mjs +51 -1
  69. package/dist/index.mjs.map +1 -1
  70. package/dist/markdown/components/front-matter.cjs +29 -1
  71. package/dist/markdown/components/front-matter.mjs +27 -1
  72. package/dist/markdown/components/front-matter.mjs.map +1 -1
  73. package/dist/markdown/components/heading.cjs +24 -1
  74. package/dist/markdown/components/heading.mjs +22 -1
  75. package/dist/markdown/components/heading.mjs.map +1 -1
  76. package/dist/markdown/components/index.cjs +13 -1
  77. package/dist/markdown/components/index.mjs +6 -1
  78. package/dist/markdown/components/markdown-file.cjs +135 -1
  79. package/dist/markdown/components/markdown-file.mjs +132 -1
  80. package/dist/markdown/components/markdown-file.mjs.map +1 -1
  81. package/dist/markdown/components/markdown-table.cjs +102 -1
  82. package/dist/markdown/components/markdown-table.mjs +98 -1
  83. package/dist/markdown/components/markdown-table.mjs.map +1 -1
  84. package/dist/markdown/contexts/index.cjs +7 -1
  85. package/dist/markdown/contexts/index.mjs +3 -1
  86. package/dist/markdown/contexts/markdown-table.cjs +38 -1
  87. package/dist/markdown/contexts/markdown-table.mjs +33 -1
  88. package/dist/markdown/contexts/markdown-table.mjs.map +1 -1
  89. package/dist/markdown/index.cjs +20 -1
  90. package/dist/markdown/index.mjs +9 -1
  91. package/dist/render.cjs +91 -1
  92. package/dist/render.mjs +88 -1
  93. package/dist/render.mjs.map +1 -1
  94. package/dist/types/components.cjs +9 -0
  95. package/dist/types/components.mjs +9 -1
  96. package/dist/types/index.mjs +1 -1
  97. package/dist/types/plugin.mjs +1 -1
  98. package/dist/typescript/components/builtin-file.cjs +63 -1
  99. package/dist/typescript/components/builtin-file.mjs +61 -1
  100. package/dist/typescript/components/builtin-file.mjs.map +1 -1
  101. package/dist/typescript/components/class-declaration.cjs +306 -1
  102. package/dist/typescript/components/class-declaration.mjs +299 -1
  103. package/dist/typescript/components/class-declaration.mjs.map +1 -1
  104. package/dist/typescript/components/dynamic-import-statement.cjs +26 -1
  105. package/dist/typescript/components/dynamic-import-statement.mjs +24 -1
  106. package/dist/typescript/components/dynamic-import-statement.mjs.map +1 -1
  107. package/dist/typescript/components/entry-file.cjs +43 -1
  108. package/dist/typescript/components/entry-file.mjs +40 -1
  109. package/dist/typescript/components/entry-file.mjs.map +1 -1
  110. package/dist/typescript/components/index.cjs +64 -1
  111. package/dist/typescript/components/index.mjs +15 -1
  112. package/dist/typescript/components/interface-declaration.cjs +239 -1
  113. package/dist/typescript/components/interface-declaration.mjs +234 -1
  114. package/dist/typescript/components/interface-declaration.mjs.map +1 -1
  115. package/dist/typescript/components/object-declaration.cjs +139 -1
  116. package/dist/typescript/components/object-declaration.mjs +136 -1
  117. package/dist/typescript/components/object-declaration.mjs.map +1 -1
  118. package/dist/typescript/components/property-name.cjs +32 -1
  119. package/dist/typescript/components/property-name.mjs +30 -1
  120. package/dist/typescript/components/property-name.mjs.map +1 -1
  121. package/dist/typescript/components/record-expression.cjs +13 -3
  122. package/dist/typescript/components/record-expression.mjs +11 -3
  123. package/dist/typescript/components/record-expression.mjs.map +1 -1
  124. package/dist/typescript/components/tsdoc-reflection.cjs +331 -1
  125. package/dist/typescript/components/tsdoc-reflection.mjs +324 -1
  126. package/dist/typescript/components/tsdoc-reflection.mjs.map +1 -1
  127. package/dist/typescript/components/tsdoc.cjs +497 -1
  128. package/dist/typescript/components/tsdoc.mjs +475 -1
  129. package/dist/typescript/components/tsdoc.mjs.map +1 -1
  130. package/dist/typescript/components/type-declaration.cjs +39 -1
  131. package/dist/typescript/components/type-declaration.mjs +37 -1
  132. package/dist/typescript/components/type-declaration.mjs.map +1 -1
  133. package/dist/typescript/components/type-parameters.cjs +83 -1
  134. package/dist/typescript/components/type-parameters.mjs +81 -1
  135. package/dist/typescript/components/type-parameters.mjs.map +1 -1
  136. package/dist/typescript/components/typescript-file.cjs +221 -1
  137. package/dist/typescript/components/typescript-file.mjs +217 -1
  138. package/dist/typescript/components/typescript-file.mjs.map +1 -1
  139. package/dist/typescript/contexts/index.cjs +4 -1
  140. package/dist/typescript/contexts/index.mjs +3 -1
  141. package/dist/typescript/contexts/lexical-scope.cjs +26 -1
  142. package/dist/typescript/contexts/lexical-scope.mjs +24 -1
  143. package/dist/typescript/contexts/lexical-scope.mjs.map +1 -1
  144. package/dist/typescript/contexts/member-scope.cjs +24 -1
  145. package/dist/typescript/contexts/member-scope.mjs +22 -1
  146. package/dist/typescript/contexts/member-scope.mjs.map +1 -1
  147. package/dist/typescript/helpers/get-call-signature-props.cjs +26 -1
  148. package/dist/typescript/helpers/get-call-signature-props.mjs +24 -1
  149. package/dist/typescript/helpers/get-call-signature-props.mjs.map +1 -1
  150. package/dist/typescript/helpers/index.cjs +6 -1
  151. package/dist/typescript/helpers/index.mjs +4 -1
  152. package/dist/typescript/helpers/utilities.cjs +15 -1
  153. package/dist/typescript/helpers/utilities.mjs +13 -1
  154. package/dist/typescript/helpers/utilities.mjs.map +1 -1
  155. package/dist/typescript/index.cjs +73 -1
  156. package/dist/typescript/index.mjs +21 -1
  157. package/dist/yaml/components/index.cjs +5 -1
  158. package/dist/yaml/components/index.mjs +3 -1
  159. package/dist/yaml/components/yaml-file.cjs +149 -1
  160. package/dist/yaml/components/yaml-file.mjs +146 -1
  161. package/dist/yaml/components/yaml-file.mjs.map +1 -1
  162. package/dist/yaml/index.cjs +6 -1
  163. package/dist/yaml/index.mjs +4 -1
  164. package/package.json +6 -6
@@ -1 +1,306 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`./tsdoc.cjs`),t=require(`../contexts/lexical-scope.cjs`);require(`../contexts/index.cjs`);const n=require(`../contexts/member-scope.cjs`),r=require(`../helpers/get-call-signature-props.cjs`);require(`../helpers/index.cjs`);const i=require(`./property-name.cjs`),a=require(`./type-parameters.cjs`);let o=require(`@alloy-js/core/jsx-runtime`),s=require(`@alloy-js/core`),c=require(`@alloy-js/typescript`);function l(t){let r=t.extends&&[` extends `,(0,o.memo)(()=>t.extends)],i=t.implements&&t.implements.length>0&&[` `,`implements`,` `,(0,o.createComponent)(s.For,{get each(){return t.implements},comma:!0,space:!0,children:e=>e})],l=(0,c.createTypeAndValueSymbol)(t.name,{refkeys:t.refkey,export:t.export,default:t.default,metadata:t.metadata,hasInstanceMembers:!0,namePolicy:(0,c.useTSNamePolicy)().for(`class`)});return[(0,o.createComponent)(s.Show,{get when(){return!!t.doc},get children(){return(0,o.createComponent)(e.TSDoc,{get heading(){return t.doc}})}}),(0,o.createComponent)(c.Declaration,{symbol:l,get export(){return t.export},get default(){return t.default},get children(){return(0,o.createComponent)(n.MemberScope,{ownerSymbol:l,get children(){return[(0,o.memo)(()=>t.abstract&&s.code`abstract `),` class `,(0,o.createComponent)(s.Name,{}),(0,o.memo)(()=>(0,o.memo)(()=>!!t.typeParameters)()&&(0,o.createComponent)(a.TypeParameters,{get parameters(){return t.typeParameters}})),r,i,` `,(0,o.createComponent)(s.Block,{get children(){return t.children}})]}})}})]}l.TypeParameters=a.TypeParameters;function u(t){let n=c.TSSymbolFlags.None;t.nullish&&(n|=c.TSSymbolFlags.Nullish);let r=(0,c.createMemberSymbol)(t.name,t,{refkeys:t.refkey,tsFlags:n,namePolicy:(0,c.useTSNamePolicy)().for(`class-member-data`)});return[(0,o.createComponent)(s.Show,{get when(){return!!t.doc},get children(){return(0,o.createComponent)(e.TSDoc,{get heading(){return t.doc}})}}),(0,o.createComponent)(s.MemberDeclaration,{symbol:r,get children(){return[(0,o.memo)(()=>t.public&&`public `),(0,o.memo)(()=>t.private&&`private `),(0,o.memo)(()=>t.protected&&`protected `),(0,o.memo)(()=>t.abstract&&`abstract `),(0,o.memo)(()=>t.override&&`override `),(0,o.memo)(()=>t.static&&`static `),(0,o.memo)(()=>t.children)]}})]}function d(e){let t=e.optional?`?`:``,n=e.type&&[t,`: `,(0,o.createComponent)(c.TypeRefContext,{get children(){return e.type}})],r=e.children&&[` = `,(0,o.memo)(()=>e.children)];return(0,o.createComponent)(u,(0,o.mergeProps)(e,{nullish:e.nullish??e.optional,get children(){return[(0,o.createComponent)(i.PropertyName,{get private(){return e.isPrivateMember},get name(){return e.isPrivateMember?e.name:void 0}}),n,r]}}))}function f(e){return[(0,o.createComponent)(u,(0,o.mergeProps)(e,{get children(){return[`set `,(0,o.createComponent)(i.PropertyName,{get name(){return e.name}}),(0,o.createComponent)(t.LexicalScope,{get children(){return[(0,o.createComponent)(c.CallSignature,{get parameters(){return[{name:`value`,type:(0,o.createComponent)(c.TypeRefContext,{get children(){return e.type}})}]}}),` `,(0,o.createComponent)(s.Block,{get children(){return e.children}})]}})]}}))]}function p(e){return(0,o.createComponent)(u,(0,o.mergeProps)(e,{get children(){return[`get `,(0,o.createComponent)(i.PropertyName,{get name(){return e.name}}),(0,o.createComponent)(t.LexicalScope,{get children(){return[(0,o.createComponent)(c.CallSignature,{get returnType(){return(0,o.createComponent)(c.TypeRefContext,{get children(){return e.type}})}}),` `,(0,o.createComponent)(s.Block,{get children(){return e.children}})]}})]}}))}function m(n){let a=r.getCallSignatureProps(n),[l,d]=(0,s.splitProps)(n,[`doc`]);return[(0,o.createComponent)(s.Show,{get when(){return!!n.doc},get children(){return(0,o.createComponent)(e.TSDoc,{get heading(){return n.doc},get children(){return(0,o.memo)(()=>!!Array.isArray(d.parameters))()&&(0,o.createComponent)(e.TSDocParams,{get parameters(){return d.parameters}})}})}}),(0,o.createComponent)(u,(0,o.mergeProps)(d,{get children(){return[(0,o.memo)(()=>n.async&&`async `),(0,o.createComponent)(i.PropertyName,{}),(0,o.createComponent)(t.LexicalScope,{get children(){return[(0,o.createComponent)(c.CallSignature,a),` `,(0,o.createComponent)(s.Block,{get children(){return n.children}})]}})]}}))]}exports.ClassDeclaration=l,exports.ClassField=d,exports.ClassMember=u,exports.ClassMethod=m,exports.ClassPropertyGet=p,exports.ClassPropertySet=f;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
3
+ const require_typescript_components_tsdoc = require('./tsdoc.cjs');
4
+ const require_typescript_contexts_lexical_scope = require('../contexts/lexical-scope.cjs');
5
+ require('../contexts/index.cjs');
6
+ const require_typescript_contexts_member_scope = require('../contexts/member-scope.cjs');
7
+ const require_typescript_helpers_get_call_signature_props = require('../helpers/get-call-signature-props.cjs');
8
+ require('../helpers/index.cjs');
9
+ const require_typescript_components_property_name = require('./property-name.cjs');
10
+ const require_typescript_components_type_parameters = require('./type-parameters.cjs');
11
+ let _alloy_js_core_jsx_runtime = require("@alloy-js/core/jsx-runtime");
12
+ let _alloy_js_core = require("@alloy-js/core");
13
+ let _alloy_js_typescript = require("@alloy-js/typescript");
14
+
15
+ //#region src/typescript/components/class-declaration.tsx
16
+ /**
17
+ * Props for the ClassDeclaration component, which represents a TypeScript class declaration
18
+ */
19
+ /**
20
+ * Create a TypeScript class declaration.
21
+ *
22
+ * @example
23
+ * ```tsx
24
+ * const myPetRefkey = refkey();
25
+ * const Animal = refkey();
26
+ * const staticMember = refkey();
27
+ * const instanceMember = refkey();
28
+ *
29
+ * <ClassDeclaration name="Animal" refkey={Animal}>
30
+ * <ClassMember public static name="something" type="string" refkey={staticMember}>
31
+ * "hello"
32
+ * </ClassMember>
33
+ * <ClassMember public name="kind" type="string" />
34
+ * <ClassMember public name="name" type="string" refkey={instanceMember} />
35
+ * <ClassConstructor parameters="name: string">
36
+ * this.name = name;
37
+ * </ClassConstructor>
38
+ * </ClassDeclaration>
39
+ *
40
+ * <VarDeclaration const name="myPet" refkey={myPetRefkey}>
41
+ * new {Animal}();
42
+ * </VarDeclaration>
43
+ *
44
+ * {staticMember}; // Animal.something
45
+ * <MemberReference path={[myPetRefkey, instanceMember]} /> // myPet.name
46
+ * {memberRefkey(myPetRefkey, instanceMember)}
47
+ * ```
48
+ */
49
+ function ClassDeclaration(props) {
50
+ const extendsPart = props.extends && [" extends ", (0, _alloy_js_core_jsx_runtime.memo)(() => props.extends)];
51
+ const implementsPart = props.implements && props.implements.length > 0 && [
52
+ " ",
53
+ "implements",
54
+ " ",
55
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.For, {
56
+ get each() {
57
+ return props.implements;
58
+ },
59
+ comma: true,
60
+ space: true,
61
+ children: (implement) => implement
62
+ })
63
+ ];
64
+ const sym = (0, _alloy_js_typescript.createTypeAndValueSymbol)(props.name, {
65
+ refkeys: props.refkey,
66
+ export: props.export,
67
+ default: props.default,
68
+ metadata: props.metadata,
69
+ hasInstanceMembers: true,
70
+ namePolicy: (0, _alloy_js_typescript.useTSNamePolicy)().for("class")
71
+ });
72
+ return [(0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
73
+ get when() {
74
+ return Boolean(props.doc);
75
+ },
76
+ get children() {
77
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(require_typescript_components_tsdoc.TSDoc, { get heading() {
78
+ return props.doc;
79
+ } });
80
+ }
81
+ }), (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_typescript.Declaration, {
82
+ symbol: sym,
83
+ get ["export"]() {
84
+ return props.export;
85
+ },
86
+ get ["default"]() {
87
+ return props.default;
88
+ },
89
+ get children() {
90
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(require_typescript_contexts_member_scope.MemberScope, {
91
+ ownerSymbol: sym,
92
+ get children() {
93
+ return [
94
+ (0, _alloy_js_core_jsx_runtime.memo)(() => props.abstract && _alloy_js_core.code`abstract `),
95
+ " class ",
96
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Name, {}),
97
+ (0, _alloy_js_core_jsx_runtime.memo)(() => (0, _alloy_js_core_jsx_runtime.memo)(() => !!props.typeParameters)() && (0, _alloy_js_core_jsx_runtime.createComponent)(require_typescript_components_type_parameters.TypeParameters, { get parameters() {
98
+ return props.typeParameters;
99
+ } })),
100
+ extendsPart,
101
+ implementsPart,
102
+ " ",
103
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Block, { get children() {
104
+ return props.children;
105
+ } })
106
+ ];
107
+ }
108
+ });
109
+ }
110
+ })];
111
+ }
112
+ ClassDeclaration.TypeParameters = require_typescript_components_type_parameters.TypeParameters;
113
+ /**
114
+ * Generates a TypeScript class member declaration for the given reflection class.
115
+ */
116
+ /**
117
+ * Generates a TypeScript class member declaration for the given reflection class.
118
+ *
119
+ * @param props - The properties of the class member, including its name, visibility, and other modifiers.
120
+ * @returns A JSX element representing the class member declaration, which can be used within a ClassDeclaration component.
121
+ */
122
+ function ClassMember(props) {
123
+ let tsFlags = _alloy_js_typescript.TSSymbolFlags.None;
124
+ if (props.nullish) tsFlags |= _alloy_js_typescript.TSSymbolFlags.Nullish;
125
+ const sym = (0, _alloy_js_typescript.createMemberSymbol)(props.name, props, {
126
+ refkeys: props.refkey,
127
+ tsFlags,
128
+ namePolicy: (0, _alloy_js_typescript.useTSNamePolicy)().for("class-member-data")
129
+ });
130
+ return [(0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
131
+ get when() {
132
+ return Boolean(props.doc);
133
+ },
134
+ get children() {
135
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(require_typescript_components_tsdoc.TSDoc, { get heading() {
136
+ return props.doc;
137
+ } });
138
+ }
139
+ }), (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.MemberDeclaration, {
140
+ symbol: sym,
141
+ get children() {
142
+ return [
143
+ (0, _alloy_js_core_jsx_runtime.memo)(() => props.public && "public "),
144
+ (0, _alloy_js_core_jsx_runtime.memo)(() => props.private && "private "),
145
+ (0, _alloy_js_core_jsx_runtime.memo)(() => props.protected && "protected "),
146
+ (0, _alloy_js_core_jsx_runtime.memo)(() => props.abstract && "abstract "),
147
+ (0, _alloy_js_core_jsx_runtime.memo)(() => props.override && "override "),
148
+ (0, _alloy_js_core_jsx_runtime.memo)(() => props.static && "static "),
149
+ (0, _alloy_js_core_jsx_runtime.memo)(() => props.children)
150
+ ];
151
+ }
152
+ })];
153
+ }
154
+ /**
155
+ * Props for a class field, which is a specific type of class member that represents a property of the class.
156
+ */
157
+ /**
158
+ * Generates a TypeScript class field declaration for the given reflection class.
159
+ *
160
+ * @param props - The properties of the class field, including its name, type, optionality, and other modifiers.
161
+ * @returns A JSX element representing the class field declaration, which can be used within a ClassDeclaration component.
162
+ */
163
+ function ClassField(props) {
164
+ const optionality = props.optional ? "?" : "";
165
+ const typeSection = props.type && [
166
+ optionality,
167
+ ": ",
168
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_typescript.TypeRefContext, { get children() {
169
+ return props.type;
170
+ } })
171
+ ];
172
+ const initializerSection = props.children && [" = ", (0, _alloy_js_core_jsx_runtime.memo)(() => props.children)];
173
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(ClassMember, (0, _alloy_js_core_jsx_runtime.mergeProps)(props, {
174
+ nullish: props.nullish ?? props.optional,
175
+ get children() {
176
+ return [
177
+ (0, _alloy_js_core_jsx_runtime.createComponent)(require_typescript_components_property_name.PropertyName, {
178
+ get ["private"]() {
179
+ return props.isPrivateMember;
180
+ },
181
+ get name() {
182
+ return props.isPrivateMember ? props.name : void 0;
183
+ }
184
+ }),
185
+ typeSection,
186
+ initializerSection
187
+ ];
188
+ }
189
+ }));
190
+ }
191
+ /**
192
+ * Props for a class field, which is a specific type of class member that represents a property of the class.
193
+ */
194
+ /**
195
+ * Generates a TypeScript class property setter declaration for the given reflection class.
196
+ *
197
+ * @param props - The properties of the class property, including its name, type, and other modifiers.
198
+ * @returns A JSX element representing the class property setter declaration, which can be used within a ClassDeclaration component.
199
+ */
200
+ function ClassPropertySet(props) {
201
+ return [(0, _alloy_js_core_jsx_runtime.createComponent)(ClassMember, (0, _alloy_js_core_jsx_runtime.mergeProps)(props, { get children() {
202
+ return [
203
+ "set ",
204
+ (0, _alloy_js_core_jsx_runtime.createComponent)(require_typescript_components_property_name.PropertyName, { get name() {
205
+ return props.name;
206
+ } }),
207
+ (0, _alloy_js_core_jsx_runtime.createComponent)(require_typescript_contexts_lexical_scope.LexicalScope, { get children() {
208
+ return [
209
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_typescript.CallSignature, { get parameters() {
210
+ return [{
211
+ name: "value",
212
+ type: (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_typescript.TypeRefContext, { get children() {
213
+ return props.type;
214
+ } })
215
+ }];
216
+ } }),
217
+ " ",
218
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Block, { get children() {
219
+ return props.children;
220
+ } })
221
+ ];
222
+ } })
223
+ ];
224
+ } }))];
225
+ }
226
+ /**
227
+ * Generates a TypeScript class property getter declaration for the given reflection class.
228
+ *
229
+ * @param props - The properties of the class property, including its name, type, and other modifiers.
230
+ * @returns A JSX element representing the class property getter declaration, which can be used within a ClassDeclaration component.
231
+ */
232
+ function ClassPropertyGet(props) {
233
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(ClassMember, (0, _alloy_js_core_jsx_runtime.mergeProps)(props, { get children() {
234
+ return [
235
+ "get ",
236
+ (0, _alloy_js_core_jsx_runtime.createComponent)(require_typescript_components_property_name.PropertyName, { get name() {
237
+ return props.name;
238
+ } }),
239
+ (0, _alloy_js_core_jsx_runtime.createComponent)(require_typescript_contexts_lexical_scope.LexicalScope, { get children() {
240
+ return [
241
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_typescript.CallSignature, { get returnType() {
242
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_typescript.TypeRefContext, { get children() {
243
+ return props.type;
244
+ } });
245
+ } }),
246
+ " ",
247
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Block, { get children() {
248
+ return props.children;
249
+ } })
250
+ ];
251
+ } })
252
+ ];
253
+ } }));
254
+ }
255
+ /**
256
+ * Props for a class method, which is a specific type of class member that represents a function defined within the class.
257
+ */
258
+ /**
259
+ * Generates a TypeScript class method declaration for the given reflection class.
260
+ *
261
+ * @param props - The properties of the class method, including its name, visibility, and other modifiers.
262
+ * @returns A JSX element representing the class method declaration, which can be used within a ClassDeclaration component.
263
+ */
264
+ function ClassMethod(props) {
265
+ const callProps = require_typescript_helpers_get_call_signature_props.getCallSignatureProps(props);
266
+ const [_, rest] = (0, _alloy_js_core.splitProps)(props, ["doc"]);
267
+ return [(0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
268
+ get when() {
269
+ return Boolean(props.doc);
270
+ },
271
+ get children() {
272
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(require_typescript_components_tsdoc.TSDoc, {
273
+ get heading() {
274
+ return props.doc;
275
+ },
276
+ get children() {
277
+ return (0, _alloy_js_core_jsx_runtime.memo)(() => !!Array.isArray(rest.parameters))() && (0, _alloy_js_core_jsx_runtime.createComponent)(require_typescript_components_tsdoc.TSDocParams, { get parameters() {
278
+ return rest.parameters;
279
+ } });
280
+ }
281
+ });
282
+ }
283
+ }), (0, _alloy_js_core_jsx_runtime.createComponent)(ClassMember, (0, _alloy_js_core_jsx_runtime.mergeProps)(rest, { get children() {
284
+ return [
285
+ (0, _alloy_js_core_jsx_runtime.memo)(() => props.async && "async "),
286
+ (0, _alloy_js_core_jsx_runtime.createComponent)(require_typescript_components_property_name.PropertyName, {}),
287
+ (0, _alloy_js_core_jsx_runtime.createComponent)(require_typescript_contexts_lexical_scope.LexicalScope, { get children() {
288
+ return [
289
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_typescript.CallSignature, callProps),
290
+ " ",
291
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Block, { get children() {
292
+ return props.children;
293
+ } })
294
+ ];
295
+ } })
296
+ ];
297
+ } }))];
298
+ }
299
+
300
+ //#endregion
301
+ exports.ClassDeclaration = ClassDeclaration;
302
+ exports.ClassField = ClassField;
303
+ exports.ClassMember = ClassMember;
304
+ exports.ClassMethod = ClassMethod;
305
+ exports.ClassPropertyGet = ClassPropertyGet;
306
+ exports.ClassPropertySet = ClassPropertySet;
@@ -1,2 +1,300 @@
1
- import{TSDoc as e,TSDocParams as t}from"./tsdoc.mjs";import{LexicalScope as n}from"../contexts/lexical-scope.mjs";import"../contexts/index.mjs";import{MemberScope as r}from"../contexts/member-scope.mjs";import{getCallSignatureProps as i}from"../helpers/get-call-signature-props.mjs";import"../helpers/index.mjs";import{PropertyName as a}from"./property-name.mjs";import{TypeParameters as o}from"./type-parameters.mjs";import{createComponent as s,memo as c,mergeProps as l}from"@alloy-js/core/jsx-runtime";import{Block as u,For as d,MemberDeclaration as f,Name as p,Show as m,code as h,splitProps as g}from"@alloy-js/core";import{CallSignature as _,Declaration as v,TSSymbolFlags as y,TypeRefContext as b,createMemberSymbol as x,createTypeAndValueSymbol as S,useTSNamePolicy as C}from"@alloy-js/typescript";function w(t){let n=t.extends&&[` extends `,c(()=>t.extends)],i=t.implements&&t.implements.length>0&&[` `,`implements`,` `,s(d,{get each(){return t.implements},comma:!0,space:!0,children:e=>e})],a=S(t.name,{refkeys:t.refkey,export:t.export,default:t.default,metadata:t.metadata,hasInstanceMembers:!0,namePolicy:C().for(`class`)});return[s(m,{get when(){return!!t.doc},get children(){return s(e,{get heading(){return t.doc}})}}),s(v,{symbol:a,get export(){return t.export},get default(){return t.default},get children(){return s(r,{ownerSymbol:a,get children(){return[c(()=>t.abstract&&h`abstract `),` class `,s(p,{}),c(()=>c(()=>!!t.typeParameters)()&&s(o,{get parameters(){return t.typeParameters}})),n,i,` `,s(u,{get children(){return t.children}})]}})}})]}w.TypeParameters=o;function T(t){let n=y.None;t.nullish&&(n|=y.Nullish);let r=x(t.name,t,{refkeys:t.refkey,tsFlags:n,namePolicy:C().for(`class-member-data`)});return[s(m,{get when(){return!!t.doc},get children(){return s(e,{get heading(){return t.doc}})}}),s(f,{symbol:r,get children(){return[c(()=>t.public&&`public `),c(()=>t.private&&`private `),c(()=>t.protected&&`protected `),c(()=>t.abstract&&`abstract `),c(()=>t.override&&`override `),c(()=>t.static&&`static `),c(()=>t.children)]}})]}function E(e){let t=e.optional?`?`:``,n=e.type&&[t,`: `,s(b,{get children(){return e.type}})],r=e.children&&[` = `,c(()=>e.children)];return s(T,l(e,{nullish:e.nullish??e.optional,get children(){return[s(a,{get private(){return e.isPrivateMember},get name(){return e.isPrivateMember?e.name:void 0}}),n,r]}}))}function D(e){return[s(T,l(e,{get children(){return[`set `,s(a,{get name(){return e.name}}),s(n,{get children(){return[s(_,{get parameters(){return[{name:`value`,type:s(b,{get children(){return e.type}})}]}}),` `,s(u,{get children(){return e.children}})]}})]}}))]}function O(e){return s(T,l(e,{get children(){return[`get `,s(a,{get name(){return e.name}}),s(n,{get children(){return[s(_,{get returnType(){return s(b,{get children(){return e.type}})}}),` `,s(u,{get children(){return e.children}})]}})]}}))}function k(r){let o=i(r),[d,f]=g(r,[`doc`]);return[s(m,{get when(){return!!r.doc},get children(){return s(e,{get heading(){return r.doc},get children(){return c(()=>!!Array.isArray(f.parameters))()&&s(t,{get parameters(){return f.parameters}})}})}}),s(T,l(f,{get children(){return[c(()=>r.async&&`async `),s(a,{}),s(n,{get children(){return[s(_,o),` `,s(u,{get children(){return r.children}})]}})]}}))]}export{w as ClassDeclaration,E as ClassField,T as ClassMember,k as ClassMethod,O as ClassPropertyGet,D as ClassPropertySet};
1
+ import { TSDoc, TSDocParams } from "./tsdoc.mjs";
2
+ import { LexicalScope } from "../contexts/lexical-scope.mjs";
3
+ import "../contexts/index.mjs";
4
+ import { MemberScope as MemberScope$1 } from "../contexts/member-scope.mjs";
5
+ import { getCallSignatureProps } from "../helpers/get-call-signature-props.mjs";
6
+ import "../helpers/index.mjs";
7
+ import { PropertyName } from "./property-name.mjs";
8
+ import { TypeParameters } from "./type-parameters.mjs";
9
+ import { createComponent, memo, mergeProps } from "@alloy-js/core/jsx-runtime";
10
+ import { Block, For, MemberDeclaration, Name, Show, code, splitProps } from "@alloy-js/core";
11
+ import { CallSignature, Declaration as Declaration$1, TSSymbolFlags, TypeRefContext, createMemberSymbol, createTypeAndValueSymbol, useTSNamePolicy } from "@alloy-js/typescript";
12
+
13
+ //#region src/typescript/components/class-declaration.tsx
14
+ /**
15
+ * Props for the ClassDeclaration component, which represents a TypeScript class declaration
16
+ */
17
+ /**
18
+ * Create a TypeScript class declaration.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * const myPetRefkey = refkey();
23
+ * const Animal = refkey();
24
+ * const staticMember = refkey();
25
+ * const instanceMember = refkey();
26
+ *
27
+ * <ClassDeclaration name="Animal" refkey={Animal}>
28
+ * <ClassMember public static name="something" type="string" refkey={staticMember}>
29
+ * "hello"
30
+ * </ClassMember>
31
+ * <ClassMember public name="kind" type="string" />
32
+ * <ClassMember public name="name" type="string" refkey={instanceMember} />
33
+ * <ClassConstructor parameters="name: string">
34
+ * this.name = name;
35
+ * </ClassConstructor>
36
+ * </ClassDeclaration>
37
+ *
38
+ * <VarDeclaration const name="myPet" refkey={myPetRefkey}>
39
+ * new {Animal}();
40
+ * </VarDeclaration>
41
+ *
42
+ * {staticMember}; // Animal.something
43
+ * <MemberReference path={[myPetRefkey, instanceMember]} /> // myPet.name
44
+ * {memberRefkey(myPetRefkey, instanceMember)}
45
+ * ```
46
+ */
47
+ function ClassDeclaration(props) {
48
+ const extendsPart = props.extends && [" extends ", memo(() => props.extends)];
49
+ const implementsPart = props.implements && props.implements.length > 0 && [
50
+ " ",
51
+ "implements",
52
+ " ",
53
+ createComponent(For, {
54
+ get each() {
55
+ return props.implements;
56
+ },
57
+ comma: true,
58
+ space: true,
59
+ children: (implement) => implement
60
+ })
61
+ ];
62
+ const sym = createTypeAndValueSymbol(props.name, {
63
+ refkeys: props.refkey,
64
+ export: props.export,
65
+ default: props.default,
66
+ metadata: props.metadata,
67
+ hasInstanceMembers: true,
68
+ namePolicy: useTSNamePolicy().for("class")
69
+ });
70
+ return [createComponent(Show, {
71
+ get when() {
72
+ return Boolean(props.doc);
73
+ },
74
+ get children() {
75
+ return createComponent(TSDoc, { get heading() {
76
+ return props.doc;
77
+ } });
78
+ }
79
+ }), createComponent(Declaration$1, {
80
+ symbol: sym,
81
+ get ["export"]() {
82
+ return props.export;
83
+ },
84
+ get ["default"]() {
85
+ return props.default;
86
+ },
87
+ get children() {
88
+ return createComponent(MemberScope$1, {
89
+ ownerSymbol: sym,
90
+ get children() {
91
+ return [
92
+ memo(() => props.abstract && code`abstract `),
93
+ " class ",
94
+ createComponent(Name, {}),
95
+ memo(() => memo(() => !!props.typeParameters)() && createComponent(TypeParameters, { get parameters() {
96
+ return props.typeParameters;
97
+ } })),
98
+ extendsPart,
99
+ implementsPart,
100
+ " ",
101
+ createComponent(Block, { get children() {
102
+ return props.children;
103
+ } })
104
+ ];
105
+ }
106
+ });
107
+ }
108
+ })];
109
+ }
110
+ ClassDeclaration.TypeParameters = TypeParameters;
111
+ /**
112
+ * Generates a TypeScript class member declaration for the given reflection class.
113
+ */
114
+ /**
115
+ * Generates a TypeScript class member declaration for the given reflection class.
116
+ *
117
+ * @param props - The properties of the class member, including its name, visibility, and other modifiers.
118
+ * @returns A JSX element representing the class member declaration, which can be used within a ClassDeclaration component.
119
+ */
120
+ function ClassMember(props) {
121
+ let tsFlags = TSSymbolFlags.None;
122
+ if (props.nullish) tsFlags |= TSSymbolFlags.Nullish;
123
+ const sym = createMemberSymbol(props.name, props, {
124
+ refkeys: props.refkey,
125
+ tsFlags,
126
+ namePolicy: useTSNamePolicy().for("class-member-data")
127
+ });
128
+ return [createComponent(Show, {
129
+ get when() {
130
+ return Boolean(props.doc);
131
+ },
132
+ get children() {
133
+ return createComponent(TSDoc, { get heading() {
134
+ return props.doc;
135
+ } });
136
+ }
137
+ }), createComponent(MemberDeclaration, {
138
+ symbol: sym,
139
+ get children() {
140
+ return [
141
+ memo(() => props.public && "public "),
142
+ memo(() => props.private && "private "),
143
+ memo(() => props.protected && "protected "),
144
+ memo(() => props.abstract && "abstract "),
145
+ memo(() => props.override && "override "),
146
+ memo(() => props.static && "static "),
147
+ memo(() => props.children)
148
+ ];
149
+ }
150
+ })];
151
+ }
152
+ /**
153
+ * Props for a class field, which is a specific type of class member that represents a property of the class.
154
+ */
155
+ /**
156
+ * Generates a TypeScript class field declaration for the given reflection class.
157
+ *
158
+ * @param props - The properties of the class field, including its name, type, optionality, and other modifiers.
159
+ * @returns A JSX element representing the class field declaration, which can be used within a ClassDeclaration component.
160
+ */
161
+ function ClassField(props) {
162
+ const optionality = props.optional ? "?" : "";
163
+ const typeSection = props.type && [
164
+ optionality,
165
+ ": ",
166
+ createComponent(TypeRefContext, { get children() {
167
+ return props.type;
168
+ } })
169
+ ];
170
+ const initializerSection = props.children && [" = ", memo(() => props.children)];
171
+ return createComponent(ClassMember, mergeProps(props, {
172
+ nullish: props.nullish ?? props.optional,
173
+ get children() {
174
+ return [
175
+ createComponent(PropertyName, {
176
+ get ["private"]() {
177
+ return props.isPrivateMember;
178
+ },
179
+ get name() {
180
+ return props.isPrivateMember ? props.name : void 0;
181
+ }
182
+ }),
183
+ typeSection,
184
+ initializerSection
185
+ ];
186
+ }
187
+ }));
188
+ }
189
+ /**
190
+ * Props for a class field, which is a specific type of class member that represents a property of the class.
191
+ */
192
+ /**
193
+ * Generates a TypeScript class property setter declaration for the given reflection class.
194
+ *
195
+ * @param props - The properties of the class property, including its name, type, and other modifiers.
196
+ * @returns A JSX element representing the class property setter declaration, which can be used within a ClassDeclaration component.
197
+ */
198
+ function ClassPropertySet(props) {
199
+ return [createComponent(ClassMember, mergeProps(props, { get children() {
200
+ return [
201
+ "set ",
202
+ createComponent(PropertyName, { get name() {
203
+ return props.name;
204
+ } }),
205
+ createComponent(LexicalScope, { get children() {
206
+ return [
207
+ createComponent(CallSignature, { get parameters() {
208
+ return [{
209
+ name: "value",
210
+ type: createComponent(TypeRefContext, { get children() {
211
+ return props.type;
212
+ } })
213
+ }];
214
+ } }),
215
+ " ",
216
+ createComponent(Block, { get children() {
217
+ return props.children;
218
+ } })
219
+ ];
220
+ } })
221
+ ];
222
+ } }))];
223
+ }
224
+ /**
225
+ * Generates a TypeScript class property getter declaration for the given reflection class.
226
+ *
227
+ * @param props - The properties of the class property, including its name, type, and other modifiers.
228
+ * @returns A JSX element representing the class property getter declaration, which can be used within a ClassDeclaration component.
229
+ */
230
+ function ClassPropertyGet(props) {
231
+ return createComponent(ClassMember, mergeProps(props, { get children() {
232
+ return [
233
+ "get ",
234
+ createComponent(PropertyName, { get name() {
235
+ return props.name;
236
+ } }),
237
+ createComponent(LexicalScope, { get children() {
238
+ return [
239
+ createComponent(CallSignature, { get returnType() {
240
+ return createComponent(TypeRefContext, { get children() {
241
+ return props.type;
242
+ } });
243
+ } }),
244
+ " ",
245
+ createComponent(Block, { get children() {
246
+ return props.children;
247
+ } })
248
+ ];
249
+ } })
250
+ ];
251
+ } }));
252
+ }
253
+ /**
254
+ * Props for a class method, which is a specific type of class member that represents a function defined within the class.
255
+ */
256
+ /**
257
+ * Generates a TypeScript class method declaration for the given reflection class.
258
+ *
259
+ * @param props - The properties of the class method, including its name, visibility, and other modifiers.
260
+ * @returns A JSX element representing the class method declaration, which can be used within a ClassDeclaration component.
261
+ */
262
+ function ClassMethod(props) {
263
+ const callProps = getCallSignatureProps(props);
264
+ const [_, rest] = splitProps(props, ["doc"]);
265
+ return [createComponent(Show, {
266
+ get when() {
267
+ return Boolean(props.doc);
268
+ },
269
+ get children() {
270
+ return createComponent(TSDoc, {
271
+ get heading() {
272
+ return props.doc;
273
+ },
274
+ get children() {
275
+ return memo(() => !!Array.isArray(rest.parameters))() && createComponent(TSDocParams, { get parameters() {
276
+ return rest.parameters;
277
+ } });
278
+ }
279
+ });
280
+ }
281
+ }), createComponent(ClassMember, mergeProps(rest, { get children() {
282
+ return [
283
+ memo(() => props.async && "async "),
284
+ createComponent(PropertyName, {}),
285
+ createComponent(LexicalScope, { get children() {
286
+ return [
287
+ createComponent(CallSignature, callProps),
288
+ " ",
289
+ createComponent(Block, { get children() {
290
+ return props.children;
291
+ } })
292
+ ];
293
+ } })
294
+ ];
295
+ } }))];
296
+ }
297
+
298
+ //#endregion
299
+ export { ClassDeclaration, ClassField, ClassMember, ClassMethod, ClassPropertyGet, ClassPropertySet };
2
300
  //# sourceMappingURL=class-declaration.mjs.map