@powerlines/plugin-alloy 0.26.75 → 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,83 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../_virtual/_rolldown/runtime.cjs`);let e=require(`@alloy-js/core/jsx-runtime`),t=require(`@alloy-js/core`),n=require(`@alloy-js/typescript`);function r(r){return(0,e.createComponent)(t.Show,{when:typeof r==`object`,get fallback(){return[r]},get children(){return[(0,e.createIntrinsic)(`group`,{get children(){return[(0,e.memo)(()=>r.name),(0,e.createComponent)(t.Show,{get when(){return!!r.extends},get children(){return[` `,`extends`,(0,e.createIntrinsic)(`indent`,{get children(){return[` `,(0,e.createComponent)(n.TypeRefContext,{get children(){return r.extends}})]}})]}}),(0,e.createComponent)(t.Show,{get when(){return!!r.default},get children(){return[` = `,(0,e.createComponent)(n.TypeRefContext,{get children(){return r.default}})]}})]}}),` `]}})}function i(n){if(n.children)return n.children;if(n.parameters)return[`<`,(0,e.createIntrinsic)(`group`,{get children(){return(0,e.createComponent)(t.Indent,{softline:!0,get children(){return[(0,e.createComponent)(t.For,{get each(){return n.parameters},comma:!0,line:!0,children:e=>r(e)}),(0,e.createIntrinsic)(`ifBreak`,{children:`,`})]}})}}),`>`]}exports.TypeParameters=i;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
3
+ let _alloy_js_core_jsx_runtime = require("@alloy-js/core/jsx-runtime");
4
+ let _alloy_js_core = require("@alloy-js/core");
5
+ let _alloy_js_typescript = require("@alloy-js/typescript");
6
+
7
+ //#region src/typescript/components/type-parameters.tsx
8
+ /** Props for type parameters */
9
+ function typeParameter(param) {
10
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
11
+ when: typeof param === "object",
12
+ get fallback() {
13
+ return [param];
14
+ },
15
+ get children() {
16
+ return [(0, _alloy_js_core_jsx_runtime.createIntrinsic)("group", { get children() {
17
+ return [
18
+ (0, _alloy_js_core_jsx_runtime.memo)(() => param.name),
19
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
20
+ get when() {
21
+ return !!param.extends;
22
+ },
23
+ get children() {
24
+ return [
25
+ " ",
26
+ "extends",
27
+ (0, _alloy_js_core_jsx_runtime.createIntrinsic)("indent", { get children() {
28
+ return [" ", (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_typescript.TypeRefContext, { get children() {
29
+ return param.extends;
30
+ } })];
31
+ } })
32
+ ];
33
+ }
34
+ }),
35
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
36
+ get when() {
37
+ return !!param.default;
38
+ },
39
+ get children() {
40
+ return [" = ", (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_typescript.TypeRefContext, { get children() {
41
+ return param.default;
42
+ } })];
43
+ }
44
+ })
45
+ ];
46
+ } }), " "];
47
+ }
48
+ });
49
+ }
50
+ /**
51
+ * Represent type parameters
52
+ *
53
+ * @example
54
+ * ```ts
55
+ * <A, B extends string>
56
+ * ```
57
+ */
58
+ function TypeParameters(props) {
59
+ if (props.children) return props.children;
60
+ if (!props.parameters) return;
61
+ return [
62
+ "<",
63
+ (0, _alloy_js_core_jsx_runtime.createIntrinsic)("group", { get children() {
64
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Indent, {
65
+ softline: true,
66
+ get children() {
67
+ return [(0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.For, {
68
+ get each() {
69
+ return props.parameters;
70
+ },
71
+ comma: true,
72
+ line: true,
73
+ children: (param) => typeParameter(param)
74
+ }), (0, _alloy_js_core_jsx_runtime.createIntrinsic)("ifBreak", { children: "," })];
75
+ }
76
+ });
77
+ } }),
78
+ ">"
79
+ ];
80
+ }
81
+
82
+ //#endregion
83
+ exports.TypeParameters = TypeParameters;
@@ -1,2 +1,82 @@
1
- import{createComponent as e,createIntrinsic as t,memo as n}from"@alloy-js/core/jsx-runtime";import{For as r,Indent as i,Show as a}from"@alloy-js/core";import{TypeRefContext as o}from"@alloy-js/typescript";function s(r){return e(a,{when:typeof r==`object`,get fallback(){return[r]},get children(){return[t(`group`,{get children(){return[n(()=>r.name),e(a,{get when(){return!!r.extends},get children(){return[` `,`extends`,t(`indent`,{get children(){return[` `,e(o,{get children(){return r.extends}})]}})]}}),e(a,{get when(){return!!r.default},get children(){return[` = `,e(o,{get children(){return r.default}})]}})]}}),` `]}})}function c(n){if(n.children)return n.children;if(n.parameters)return[`<`,t(`group`,{get children(){return e(i,{softline:!0,get children(){return[e(r,{get each(){return n.parameters},comma:!0,line:!0,children:e=>s(e)}),t(`ifBreak`,{children:`,`})]}})}}),`>`]}export{c as TypeParameters};
1
+ import { createComponent, createIntrinsic, memo } from "@alloy-js/core/jsx-runtime";
2
+ import { For, Indent, Show } from "@alloy-js/core";
3
+ import { TypeRefContext } from "@alloy-js/typescript";
4
+
5
+ //#region src/typescript/components/type-parameters.tsx
6
+ /** Props for type parameters */
7
+ function typeParameter(param) {
8
+ return createComponent(Show, {
9
+ when: typeof param === "object",
10
+ get fallback() {
11
+ return [param];
12
+ },
13
+ get children() {
14
+ return [createIntrinsic("group", { get children() {
15
+ return [
16
+ memo(() => param.name),
17
+ createComponent(Show, {
18
+ get when() {
19
+ return !!param.extends;
20
+ },
21
+ get children() {
22
+ return [
23
+ " ",
24
+ "extends",
25
+ createIntrinsic("indent", { get children() {
26
+ return [" ", createComponent(TypeRefContext, { get children() {
27
+ return param.extends;
28
+ } })];
29
+ } })
30
+ ];
31
+ }
32
+ }),
33
+ createComponent(Show, {
34
+ get when() {
35
+ return !!param.default;
36
+ },
37
+ get children() {
38
+ return [" = ", createComponent(TypeRefContext, { get children() {
39
+ return param.default;
40
+ } })];
41
+ }
42
+ })
43
+ ];
44
+ } }), " "];
45
+ }
46
+ });
47
+ }
48
+ /**
49
+ * Represent type parameters
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * <A, B extends string>
54
+ * ```
55
+ */
56
+ function TypeParameters(props) {
57
+ if (props.children) return props.children;
58
+ if (!props.parameters) return;
59
+ return [
60
+ "<",
61
+ createIntrinsic("group", { get children() {
62
+ return createComponent(Indent, {
63
+ softline: true,
64
+ get children() {
65
+ return [createComponent(For, {
66
+ get each() {
67
+ return props.parameters;
68
+ },
69
+ comma: true,
70
+ line: true,
71
+ children: (param) => typeParameter(param)
72
+ }), createIntrinsic("ifBreak", { children: "," })];
73
+ }
74
+ });
75
+ } }),
76
+ ">"
77
+ ];
78
+ }
79
+
80
+ //#endregion
81
+ export { TypeParameters };
2
82
  //# sourceMappingURL=type-parameters.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-parameters.mjs","names":[],"sources":["../../../src/typescript/components/type-parameters.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { Children, For, Indent, Show } from \"@alloy-js/core\";\nimport { TypeParameterDescriptor, TypeRefContext } from \"@alloy-js/typescript\";\n\n/** Props for type parameters */\nexport interface TypeParametersProps {\n /** Parameters */\n parameters?: TypeParameterDescriptor[] | string[];\n /** Jsx Children */\n children?: Children;\n}\n\nfunction typeParameter(param: TypeParameterDescriptor | string) {\n return (\n <Show when={typeof param === \"object\"} fallback={<>{param}</>}>\n <group>\n {(param as TypeParameterDescriptor).name}\n <Show when={!!(param as TypeParameterDescriptor).extends}>\n {\" \"}\n extends\n <indent>\n {\" \"}\n <TypeRefContext>\n {(param as TypeParameterDescriptor).extends}\n </TypeRefContext>\n </indent>\n </Show>\n <Show when={!!(param as TypeParameterDescriptor).default}>\n {\" = \"}\n <TypeRefContext>\n {(param as TypeParameterDescriptor).default}\n </TypeRefContext>\n </Show>\n </group>{\" \"}\n </Show>\n );\n}\n\n/**\n * Represent type parameters\n *\n * @example\n * ```ts\n * <A, B extends string>\n * ```\n */\nexport function TypeParameters(props: TypeParametersProps) {\n if (props.children) {\n return props.children;\n }\n\n if (!props.parameters) {\n return undefined;\n }\n\n return (\n <>\n {\"<\"}\n <group>\n <Indent softline>\n <For each={props.parameters} comma line>\n {param => typeParameter(param)}\n </For>\n <ifBreak>,</ifBreak>\n </Indent>\n </group>\n {\">\"}\n </>\n );\n}\n"],"mappings":"6MAwBA,SAAE,EAAa,EAAA,CACb,OAAO,EAAW,EAAA,CAClB,KAAQ,OAAG,GAAQ,SACrB,IAAA,UAAA,YAGE,IAAM,UAAC,CACJ,MAAK,CAAI,EAAkB,QAAS,CAClC,IAAK,UAAA,CACF,MAAM,CAAE,MAAC,EAAA,KAAuB,CAAE,EAAI,EAAA,CACvC,IAAK,MAAS,CACT,MAAA,CAAA,CAAA,EAAA,SAEH,IAAA,UAAM,CACH,MAAE,CAAA,IAAA,UAAA,EAAA,SAAA,CACH,IAAA,UAAc,CACX,MAAS,CAAA,IAAA,EAAwB,EAAQ,CAC3C,IAAA,UAAc,CACV,OAAA,EAAA,SAEC,CAAC,CAAC,EAEV,CAAA,CAAA,EAEA,CAAC,CAAA,EAAc,EAAA,CAChB,IAAI,MAAA,CACA,MAAI,CAAA,CAAA,EAAA,SAEf,IAAA,UAAA,CACH,MAAA,CAAA,MAAA,EAAA,EAAA,CAAA,IAAA,UAAA,CAEE,OAAA,EAAA,SAED,CAAA,CAAA,EAEK,CAAA,CAAA,EAED,CAAA,CAAA,IAAA,EAEL,CAAA,CAWA,SAAU,EAAA,EAAA,CACR,GAAI,EAAM,SACR,OAAK,EAAO,SAET,KAAM,WAGX,MAAO,CAAC,IAAA,EAAM,QAAA,CACZ,IAAI,UAAK,CACP,OAAI,EAAA,EAAA,CACJ,SAAA,GACH,IAAA,UAAA,CACH,MAAA,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"type-parameters.mjs","names":[],"sources":["../../../src/typescript/components/type-parameters.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Powerlines\n\n This code was released as part of the Powerlines project. Powerlines\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/powerlines.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/powerlines\n Documentation: https://docs.stormsoftware.com/projects/powerlines\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { Children, For, Indent, Show } from \"@alloy-js/core\";\nimport { TypeParameterDescriptor, TypeRefContext } from \"@alloy-js/typescript\";\n\n/** Props for type parameters */\nexport interface TypeParametersProps {\n /** Parameters */\n parameters?: TypeParameterDescriptor[] | string[];\n /** Jsx Children */\n children?: Children;\n}\n\nfunction typeParameter(param: TypeParameterDescriptor | string) {\n return (\n <Show when={typeof param === \"object\"} fallback={<>{param}</>}>\n <group>\n {(param as TypeParameterDescriptor).name}\n <Show when={!!(param as TypeParameterDescriptor).extends}>\n {\" \"}\n extends\n <indent>\n {\" \"}\n <TypeRefContext>\n {(param as TypeParameterDescriptor).extends}\n </TypeRefContext>\n </indent>\n </Show>\n <Show when={!!(param as TypeParameterDescriptor).default}>\n {\" = \"}\n <TypeRefContext>\n {(param as TypeParameterDescriptor).default}\n </TypeRefContext>\n </Show>\n </group>{\" \"}\n </Show>\n );\n}\n\n/**\n * Represent type parameters\n *\n * @example\n * ```ts\n * <A, B extends string>\n * ```\n */\nexport function TypeParameters(props: TypeParametersProps) {\n if (props.children) {\n return props.children;\n }\n\n if (!props.parameters) {\n return undefined;\n }\n\n return (\n <>\n {\"<\"}\n <group>\n <Indent softline>\n <For each={props.parameters} comma line>\n {param => typeParameter(param)}\n </For>\n <ifBreak>,</ifBreak>\n </Indent>\n </group>\n {\">\"}\n </>\n );\n}\n"],"mappings":";;;;;;AAwBA,SAAE,cAAa,OAAA;AACb,QAAO,gBAAW,MAAA;EAClB,MAAQ,OAAG,UAAQ;EACrB,IAAA,WAAA;;;EAGE,IAAM,WAAC;AACJ,UAAK,CAAI,gBAAkB,SAAS,EAClC,IAAK,WAAA;AACF,WAAM;KAAE,WAAC,MAAA,KAAuB;KAAE,gBAAI,MAAA;MACvC,IAAK,OAAS;AACT,cAAA,CAAA,CAAA,MAAA;;MAEH,IAAA,WAAM;AACH,cAAE;QAAA;QAAA;QAAA,gBAAA,UAAA,EACH,IAAA,WAAc;AACX,gBAAS,CAAA,KAAA,gBAAwB,gBAAQ,EAC3C,IAAA,WAAc;AACV,iBAAA,MAAA;YAEC,CAAC,CAAC;WAEV,CAAA;QAAA;;MAEA,CAAC;KAAA,gBAAc,MAAA;MAChB,IAAI,OAAA;AACA,cAAI,CAAA,CAAA,MAAA;;MAEf,IAAA,WAAA;AACH,cAAA,CAAA,OAAA,gBAAA,gBAAA;AAEE,eAAA,MAAA;UAED,CAAA,CAAA;;MAEK,CAAA;KAAA;MAED,CAAA,EAAA,IAAA;;EAEL,CAAA;;;;;;;;;;AAWA,SAAU,eAAA,OAAA;AACR,KAAI,MAAM,SACR,QAAK,MAAO;AAEd,KAAI,CAAC,MAAM,WACT;AAEF,QAAO;EAAC;EAAA,gBAAM,SAAA,EACZ,IAAI,WAAK;AACP,UAAI,gBAAA,QAAA;IACJ,UAAA;IACH,IAAA,WAAA;AACH,YAAA,CAAA,gBAAA,KAAA"}
@@ -1 +1,221 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../core/contexts/context.cjs`),t=require(`../../core/components/source-file.cjs`),n=require(`../../core/components/single-line-comment.cjs`),r=require(`../../core/helpers/code.cjs`);let i=require(`@alloy-js/core/jsx-runtime`),a=require(`@alloy-js/core`),o=require(`@stryke/path/append`),s=require(`@stryke/string-format/title-case`),c=require(`powerlines/utils`),l=require(`@stryke/helpers/get-unique`),u=require(`@stryke/type-checks/is-string`),d=require(`@alloy-js/typescript`),f=require(`@stryke/type-checks/is-boolean`);function p(e){let[{children:n,path:r,imports:s,builtinImports:c,tsx:l,header:u,hashbang:p},g]=(0,a.splitProps)(e,[`children`,`path`,`imports`,`builtinImports`,`tsx`,`header`,`hashbang`]),_=(0,a.useContext)(a.SourceDirectoryContext),v=(0,d.getSourceDirectoryData)(_),y=(0,o.appendPath)(r,_.path),b=new d.TSModuleScope(y,(0,a.useScope)());v.modules.add(b);let x=(0,a.useContext)(d.PackageContext);return x&&x.scope.addModule(b),e.export&&x&&((0,f.isBoolean)(e.export)?x.scope.addExport(y,b):x.scope.addExport(e.export,b)),(0,i.createComponent)(d.SourceFileContext.Provider,{value:{scope:b},get children(){return(0,i.createComponent)(a.Scope,{value:b,get children(){return(0,i.createComponent)(t.SourceFile,(0,i.mergeProps)(g,{path:y,get header(){return u??(0,i.createComponent)(m,{hashbang:p,get children(){return(0,i.createComponent)(h,{imports:s,builtinImports:c,scope:b})}})},filetype:l?`tsx`:`typescript`,children:n}))}})}})}function m(t){let{header:o,hashbang:l,disableEslint:u=!0,disableBiome:d=!0,children:f}=t,p=e.usePowerlinesSafe();return[(0,i.createComponent)(a.Show,{get when(){return!!l},get children(){return[(0,i.memo)(()=>l===!0?r.code`#!/usr/bin/env ${p?.config.mode===`development`?`-S NODE_OPTIONS=--enable-source-maps`:``} node`:l),(0,i.createIntrinsic)(`hbr`,{})]}}),(0,i.createComponent)(a.Show,{get when(){return!!o},get children(){return[o,(0,i.createIntrinsic)(`hbr`,{})]}}),(0,i.createIntrinsic)(`hbr`,{}),(0,i.createComponent)(a.Show,{get when(){return!!u},get children(){return[(0,i.createComponent)(n.SingleLineComment,{variant:`slash-star`,children:`eslint-disable`}),(0,i.createIntrinsic)(`hbr`,{})]}}),(0,i.createComponent)(a.Show,{get when(){return!!d},get children(){return[(0,i.createComponent)(n.SingleLineComment,{children:`biome-ignore lint: disable`}),(0,i.createIntrinsic)(`hbr`,{})]}}),(0,i.createComponent)(a.Show,{get when(){return!!u||!!d},get children(){return(0,i.createIntrinsic)(`hbr`,{})}}),(0,i.createComponent)(a.Show,{get when(){return!!f},get children(){return[f,(0,i.createIntrinsic)(`hbr`,{})]}}),(0,i.createComponent)(n.SingleLineComment,{get children(){return`Generated by ${(0,s.titleCase)(p?.config?.framework)||`Powerlines`}`}}),(0,i.createIntrinsic)(`hbr`,{}),(0,i.createComponent)(n.SingleLineComment,{get children(){return(0,c.getFileHeaderWarning)(p)}}),(0,i.createIntrinsic)(`hbr`,{})]}function h(t){let{imports:n,builtinImports:o}=t,s=e.usePowerlinesSafe(),c=(0,d.useSourceFile)(),f=t.scope??c.scope,p=(0,a.computed)(()=>Object.fromEntries(Object.entries(n??{}).map(([e,t])=>[e,Array.isArray(t)?(0,l.getUniqueBy)(t,e=>(0,u.isString)(e)?e:e.alias||e.name):t]))),m=(0,a.computed)(()=>Object.fromEntries(Object.entries(o??{}).map(([e,t])=>[e,Array.isArray(t)?(0,l.getUniqueBy)(t,e=>(0,u.isString)(e)?e:e.alias||e.name):t])));return(0,i.createComponent)(a.Show,{get when(){return f.importedModules.size>0||!!p.value&&Object.keys(p.value).length>0||!!m.value&&Object.keys(m.value).length>0},get children(){return[(0,i.createComponent)(a.Show,{get when(){return(0,i.memo)(()=>!!p.value)()&&Object.keys(p.value).length>0},get children(){return(0,i.createComponent)(a.For,{get each(){return Object.entries(p.value??{})},hardline:!0,get ender(){return(0,i.createIntrinsic)(`hbr`,{})},children:([e,t])=>r.code`import ${t===null?``:(0,u.isString)(t)?t:`${t.filter(e=>!(0,u.isString)(e)&&e.default).map(e=>`${e.type?`type `:``}${e.alias?e.alias:e.name}`).join(`, `)+(t.filter(e=>!(0,u.isString)(e)&&e.default).length>0&&t.filter(e=>(0,u.isString)(e)||!e.default).length>0?`, `:``)+(t.filter(e=>(0,u.isString)(e)||!e.default).length>0?`{ ${t.filter(e=>(0,u.isString)(e)||!e.default).map(e=>(0,u.isString)(e)?e:`${e.type?`type `:``}${e.alias?`${e.name} as ${e.alias}`:e.name}`).join(`, `)} }`:``)}`} from "${e}";`})}}),(0,i.createComponent)(a.Show,{get when(){return(0,i.memo)(()=>!!m.value)()&&Object.keys(m.value).length>0},get children(){return(0,i.createComponent)(a.For,{get each(){return Object.entries(m.value??{})},hardline:!0,get ender(){return(0,i.createIntrinsic)(`hbr`,{})},children:([e,t])=>r.code`import ${t===null?``:(0,u.isString)(t)?t:`${t.filter(e=>!(0,u.isString)(e)&&e.default).map(e=>`${e.type?`type `:``}${e.alias?e.alias:e.name}`).join(`, `)+(t.filter(e=>!(0,u.isString)(e)&&e.default).length>0&&t.filter(e=>(0,u.isString)(e)||!e.default).length>0?`, `:``)+(t.filter(e=>(0,u.isString)(e)||!e.default).length>0?`{ ${t.filter(e=>(0,u.isString)(e)||!e.default).map(e=>(0,u.isString)(e)?e:`${e.type?`type `:``}${e.alias?`${e.name} as ${e.alias}`:e.name}`).join(`, `)} }`:``)}`} from "${e.includes(`:`)?e:`${s?.config?.framework||`powerlines`}:${e}`}";`})}}),(0,i.createComponent)(a.Show,{get when(){return f.importedModules.size>0},get children(){return(0,i.createComponent)(d.ImportStatements,{get records(){return f.importedModules}})}}),(0,i.createIntrinsic)(`hbr`,{})]}})}exports.TypescriptFile=p,exports.TypescriptFileHeader=m,exports.TypescriptFileHeaderImports=h;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
3
+ const require_core_contexts_context = require('../../core/contexts/context.cjs');
4
+ const require_core_components_source_file = require('../../core/components/source-file.cjs');
5
+ const require_core_components_single_line_comment = require('../../core/components/single-line-comment.cjs');
6
+ const require_core_helpers_code = require('../../core/helpers/code.cjs');
7
+ let _alloy_js_core_jsx_runtime = require("@alloy-js/core/jsx-runtime");
8
+ let _alloy_js_core = require("@alloy-js/core");
9
+ let _stryke_path_append = require("@stryke/path/append");
10
+ let _stryke_string_format_title_case = require("@stryke/string-format/title-case");
11
+ let powerlines_utils = require("powerlines/utils");
12
+ let _stryke_helpers_get_unique = require("@stryke/helpers/get-unique");
13
+ let _stryke_type_checks_is_string = require("@stryke/type-checks/is-string");
14
+ let _alloy_js_typescript = require("@alloy-js/typescript");
15
+ let _stryke_type_checks_is_boolean = require("@stryke/type-checks/is-boolean");
16
+
17
+ //#region src/typescript/components/typescript-file.tsx
18
+ /**
19
+ * A base component representing a Powerlines generated Typescript source file.
20
+ *
21
+ * @param props - The properties for the source file.
22
+ * @returns The rendered source file component.
23
+ */
24
+ function TypescriptFile(props) {
25
+ const [{ children, path, imports, builtinImports, tsx, header, hashbang }, rest] = (0, _alloy_js_core.splitProps)(props, [
26
+ "children",
27
+ "path",
28
+ "imports",
29
+ "builtinImports",
30
+ "tsx",
31
+ "header",
32
+ "hashbang"
33
+ ]);
34
+ const directoryContext = (0, _alloy_js_core.useContext)(_alloy_js_core.SourceDirectoryContext);
35
+ const sdData = (0, _alloy_js_typescript.getSourceDirectoryData)(directoryContext);
36
+ const modulePath = (0, _stryke_path_append.appendPath)(path, directoryContext.path);
37
+ const scope = new _alloy_js_typescript.TSModuleScope(modulePath, (0, _alloy_js_core.useScope)());
38
+ sdData.modules.add(scope);
39
+ const pkg = (0, _alloy_js_core.useContext)(_alloy_js_typescript.PackageContext);
40
+ if (pkg) pkg.scope.addModule(scope);
41
+ if (props.export) {
42
+ if (pkg) if ((0, _stryke_type_checks_is_boolean.isBoolean)(props.export)) pkg.scope.addExport(modulePath, scope);
43
+ else pkg.scope.addExport(props.export, scope);
44
+ }
45
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_typescript.SourceFileContext.Provider, {
46
+ value: { scope },
47
+ get children() {
48
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Scope, {
49
+ value: scope,
50
+ get children() {
51
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(require_core_components_source_file.SourceFile, (0, _alloy_js_core_jsx_runtime.mergeProps)(rest, {
52
+ path: modulePath,
53
+ get header() {
54
+ return header ?? (0, _alloy_js_core_jsx_runtime.createComponent)(TypescriptFileHeader, {
55
+ hashbang,
56
+ get children() {
57
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(TypescriptFileHeaderImports, {
58
+ imports,
59
+ builtinImports,
60
+ scope
61
+ });
62
+ }
63
+ });
64
+ },
65
+ filetype: tsx ? "tsx" : "typescript",
66
+ children
67
+ }));
68
+ }
69
+ });
70
+ }
71
+ });
72
+ }
73
+ /**
74
+ * Renders the header for a Powerlines Typescript source file.
75
+ *
76
+ * @param props - The properties for the source file header.
77
+ * @returns The rendered source file header.
78
+ */
79
+ function TypescriptFileHeader(props) {
80
+ const { header, hashbang, disableEslint = true, disableBiome = true, children } = props;
81
+ const context = require_core_contexts_context.usePowerlinesSafe();
82
+ return [
83
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
84
+ get when() {
85
+ return Boolean(hashbang);
86
+ },
87
+ get children() {
88
+ return [(0, _alloy_js_core_jsx_runtime.memo)(() => hashbang === true ? require_core_helpers_code.code`#!/usr/bin/env ${context?.config.mode === "development" ? "-S NODE_OPTIONS=--enable-source-maps" : ""} node` : hashbang), (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {})];
89
+ }
90
+ }),
91
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
92
+ get when() {
93
+ return Boolean(header);
94
+ },
95
+ get children() {
96
+ return [header, (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {})];
97
+ }
98
+ }),
99
+ (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {}),
100
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
101
+ get when() {
102
+ return Boolean(disableEslint);
103
+ },
104
+ get children() {
105
+ return [(0, _alloy_js_core_jsx_runtime.createComponent)(require_core_components_single_line_comment.SingleLineComment, {
106
+ variant: "slash-star",
107
+ children: "eslint-disable"
108
+ }), (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {})];
109
+ }
110
+ }),
111
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
112
+ get when() {
113
+ return Boolean(disableBiome);
114
+ },
115
+ get children() {
116
+ return [(0, _alloy_js_core_jsx_runtime.createComponent)(require_core_components_single_line_comment.SingleLineComment, { children: "biome-ignore lint: disable" }), (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {})];
117
+ }
118
+ }),
119
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
120
+ get when() {
121
+ return Boolean(disableEslint) || Boolean(disableBiome);
122
+ },
123
+ get children() {
124
+ return (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {});
125
+ }
126
+ }),
127
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
128
+ get when() {
129
+ return Boolean(children);
130
+ },
131
+ get children() {
132
+ return [children, (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {})];
133
+ }
134
+ }),
135
+ (0, _alloy_js_core_jsx_runtime.createComponent)(require_core_components_single_line_comment.SingleLineComment, { get children() {
136
+ return `Generated by ${(0, _stryke_string_format_title_case.titleCase)(context?.config?.framework) || "Powerlines"}`;
137
+ } }),
138
+ (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {}),
139
+ (0, _alloy_js_core_jsx_runtime.createComponent)(require_core_components_single_line_comment.SingleLineComment, { get children() {
140
+ return (0, powerlines_utils.getFileHeaderWarning)(context);
141
+ } }),
142
+ (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {})
143
+ ];
144
+ }
145
+ /**
146
+ * Renders the header for a Powerlines Typescript source file.
147
+ *
148
+ * @param props - The properties for the source file header.
149
+ * @returns The rendered source file header.
150
+ */
151
+ function TypescriptFileHeaderImports(props) {
152
+ const { imports: importProps, builtinImports: builtinImportsProps } = props;
153
+ const context = require_core_contexts_context.usePowerlinesSafe();
154
+ const sourceFile = (0, _alloy_js_typescript.useSourceFile)();
155
+ const scope = props.scope ?? sourceFile.scope;
156
+ const imports = (0, _alloy_js_core.computed)(() => {
157
+ return Object.fromEntries(Object.entries(importProps ?? {}).map(([module, importItem]) => [module, Array.isArray(importItem) ? (0, _stryke_helpers_get_unique.getUniqueBy)(importItem, (i) => (0, _stryke_type_checks_is_string.isString)(i) ? i : i.alias || i.name) : importItem]));
158
+ });
159
+ const builtinImports = (0, _alloy_js_core.computed)(() => {
160
+ return Object.fromEntries(Object.entries(builtinImportsProps ?? {}).map(([module, importItem]) => [module, Array.isArray(importItem) ? (0, _stryke_helpers_get_unique.getUniqueBy)(importItem, (i) => (0, _stryke_type_checks_is_string.isString)(i) ? i : i.alias || i.name) : importItem]));
161
+ });
162
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
163
+ get when() {
164
+ return scope.importedModules.size > 0 || !!imports.value && Object.keys(imports.value).length > 0 || !!builtinImports.value && Object.keys(builtinImports.value).length > 0;
165
+ },
166
+ get children() {
167
+ return [
168
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
169
+ get when() {
170
+ return (0, _alloy_js_core_jsx_runtime.memo)(() => !!!!imports.value)() && Object.keys(imports.value).length > 0;
171
+ },
172
+ get children() {
173
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.For, {
174
+ get each() {
175
+ return Object.entries(imports.value ?? {});
176
+ },
177
+ hardline: true,
178
+ get ender() {
179
+ return (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {});
180
+ },
181
+ children: ([module, importItem]) => require_core_helpers_code.code`import ${importItem === null ? "" : (0, _stryke_type_checks_is_string.isString)(importItem) ? importItem : `${importItem.filter((i) => !(0, _stryke_type_checks_is_string.isString)(i) && i.default).map((i) => `${i.type ? "type " : ""}${i.alias ? i.alias : i.name}`).join(", ") + (importItem.filter((i) => !(0, _stryke_type_checks_is_string.isString)(i) && i.default).length > 0 && importItem.filter((i) => (0, _stryke_type_checks_is_string.isString)(i) || !i.default).length > 0 ? ", " : "") + (importItem.filter((i) => (0, _stryke_type_checks_is_string.isString)(i) || !i.default).length > 0 ? `{ ${importItem.filter((i) => (0, _stryke_type_checks_is_string.isString)(i) || !i.default).map((i) => (0, _stryke_type_checks_is_string.isString)(i) ? i : `${i.type ? "type " : ""}${i.alias ? `${i.name} as ${i.alias}` : i.name}`).join(", ")} }` : "")}`} from "${module}";`
182
+ });
183
+ }
184
+ }),
185
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
186
+ get when() {
187
+ return (0, _alloy_js_core_jsx_runtime.memo)(() => !!builtinImports.value)() && Object.keys(builtinImports.value).length > 0;
188
+ },
189
+ get children() {
190
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.For, {
191
+ get each() {
192
+ return Object.entries(builtinImports.value ?? {});
193
+ },
194
+ hardline: true,
195
+ get ender() {
196
+ return (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {});
197
+ },
198
+ children: ([module, importItem]) => require_core_helpers_code.code`import ${importItem === null ? "" : (0, _stryke_type_checks_is_string.isString)(importItem) ? importItem : `${importItem.filter((i) => !(0, _stryke_type_checks_is_string.isString)(i) && i.default).map((i) => `${i.type ? "type " : ""}${i.alias ? i.alias : i.name}`).join(", ") + (importItem.filter((i) => !(0, _stryke_type_checks_is_string.isString)(i) && i.default).length > 0 && importItem.filter((i) => (0, _stryke_type_checks_is_string.isString)(i) || !i.default).length > 0 ? ", " : "") + (importItem.filter((i) => (0, _stryke_type_checks_is_string.isString)(i) || !i.default).length > 0 ? `{ ${importItem.filter((i) => (0, _stryke_type_checks_is_string.isString)(i) || !i.default).map((i) => (0, _stryke_type_checks_is_string.isString)(i) ? i : `${i.type ? "type " : ""}${i.alias ? `${i.name} as ${i.alias}` : i.name}`).join(", ")} }` : "")}`} from "${module.includes(":") ? module : `${context?.config?.framework || "powerlines"}:${module}`}";`
199
+ });
200
+ }
201
+ }),
202
+ (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_core.Show, {
203
+ get when() {
204
+ return scope.importedModules.size > 0;
205
+ },
206
+ get children() {
207
+ return (0, _alloy_js_core_jsx_runtime.createComponent)(_alloy_js_typescript.ImportStatements, { get records() {
208
+ return scope.importedModules;
209
+ } });
210
+ }
211
+ }),
212
+ (0, _alloy_js_core_jsx_runtime.createIntrinsic)("hbr", {})
213
+ ];
214
+ }
215
+ });
216
+ }
217
+
218
+ //#endregion
219
+ exports.TypescriptFile = TypescriptFile;
220
+ exports.TypescriptFileHeader = TypescriptFileHeader;
221
+ exports.TypescriptFileHeaderImports = TypescriptFileHeaderImports;
@@ -1,2 +1,218 @@
1
- import{usePowerlinesSafe as e}from"../../core/contexts/context.mjs";import{SourceFile as t}from"../../core/components/source-file.mjs";import{SingleLineComment as n}from"../../core/components/single-line-comment.mjs";import{code as r}from"../../core/helpers/code.mjs";import{createComponent as i,createIntrinsic as a,memo as o,mergeProps as s}from"@alloy-js/core/jsx-runtime";import{For as c,Scope as l,Show as u,SourceDirectoryContext as d,computed as f,splitProps as p,useContext as m,useScope as h}from"@alloy-js/core";import{appendPath as g}from"@stryke/path/append";import{titleCase as _}from"@stryke/string-format/title-case";import{getFileHeaderWarning as v}from"powerlines/utils";import{getUniqueBy as y}from"@stryke/helpers/get-unique";import{isString as b}from"@stryke/type-checks/is-string";import{ImportStatements as x,PackageContext as S,SourceFileContext as C,TSModuleScope as w,getSourceDirectoryData as T,useSourceFile as E}from"@alloy-js/typescript";import{isBoolean as D}from"@stryke/type-checks/is-boolean";function O(e){let[{children:n,path:r,imports:a,builtinImports:o,tsx:c,header:u,hashbang:f},_]=p(e,[`children`,`path`,`imports`,`builtinImports`,`tsx`,`header`,`hashbang`]),v=m(d),y=T(v),b=g(r,v.path),x=new w(b,h());y.modules.add(x);let E=m(S);return E&&E.scope.addModule(x),e.export&&E&&(D(e.export)?E.scope.addExport(b,x):E.scope.addExport(e.export,x)),i(C.Provider,{value:{scope:x},get children(){return i(l,{value:x,get children(){return i(t,s(_,{path:b,get header(){return u??i(k,{hashbang:f,get children(){return i(A,{imports:a,builtinImports:o,scope:x})}})},filetype:c?`tsx`:`typescript`,children:n}))}})}})}function k(t){let{header:s,hashbang:c,disableEslint:l=!0,disableBiome:d=!0,children:f}=t,p=e();return[i(u,{get when(){return!!c},get children(){return[o(()=>c===!0?r`#!/usr/bin/env ${p?.config.mode===`development`?`-S NODE_OPTIONS=--enable-source-maps`:``} node`:c),a(`hbr`,{})]}}),i(u,{get when(){return!!s},get children(){return[s,a(`hbr`,{})]}}),a(`hbr`,{}),i(u,{get when(){return!!l},get children(){return[i(n,{variant:`slash-star`,children:`eslint-disable`}),a(`hbr`,{})]}}),i(u,{get when(){return!!d},get children(){return[i(n,{children:`biome-ignore lint: disable`}),a(`hbr`,{})]}}),i(u,{get when(){return!!l||!!d},get children(){return a(`hbr`,{})}}),i(u,{get when(){return!!f},get children(){return[f,a(`hbr`,{})]}}),i(n,{get children(){return`Generated by ${_(p?.config?.framework)||`Powerlines`}`}}),a(`hbr`,{}),i(n,{get children(){return v(p)}}),a(`hbr`,{})]}function A(t){let{imports:n,builtinImports:s}=t,l=e(),d=E(),p=t.scope??d.scope,m=f(()=>Object.fromEntries(Object.entries(n??{}).map(([e,t])=>[e,Array.isArray(t)?y(t,e=>b(e)?e:e.alias||e.name):t]))),h=f(()=>Object.fromEntries(Object.entries(s??{}).map(([e,t])=>[e,Array.isArray(t)?y(t,e=>b(e)?e:e.alias||e.name):t])));return i(u,{get when(){return p.importedModules.size>0||!!m.value&&Object.keys(m.value).length>0||!!h.value&&Object.keys(h.value).length>0},get children(){return[i(u,{get when(){return o(()=>!!m.value)()&&Object.keys(m.value).length>0},get children(){return i(c,{get each(){return Object.entries(m.value??{})},hardline:!0,get ender(){return a(`hbr`,{})},children:([e,t])=>r`import ${t===null?``:b(t)?t:`${t.filter(e=>!b(e)&&e.default).map(e=>`${e.type?`type `:``}${e.alias?e.alias:e.name}`).join(`, `)+(t.filter(e=>!b(e)&&e.default).length>0&&t.filter(e=>b(e)||!e.default).length>0?`, `:``)+(t.filter(e=>b(e)||!e.default).length>0?`{ ${t.filter(e=>b(e)||!e.default).map(e=>b(e)?e:`${e.type?`type `:``}${e.alias?`${e.name} as ${e.alias}`:e.name}`).join(`, `)} }`:``)}`} from "${e}";`})}}),i(u,{get when(){return o(()=>!!h.value)()&&Object.keys(h.value).length>0},get children(){return i(c,{get each(){return Object.entries(h.value??{})},hardline:!0,get ender(){return a(`hbr`,{})},children:([e,t])=>r`import ${t===null?``:b(t)?t:`${t.filter(e=>!b(e)&&e.default).map(e=>`${e.type?`type `:``}${e.alias?e.alias:e.name}`).join(`, `)+(t.filter(e=>!b(e)&&e.default).length>0&&t.filter(e=>b(e)||!e.default).length>0?`, `:``)+(t.filter(e=>b(e)||!e.default).length>0?`{ ${t.filter(e=>b(e)||!e.default).map(e=>b(e)?e:`${e.type?`type `:``}${e.alias?`${e.name} as ${e.alias}`:e.name}`).join(`, `)} }`:``)}`} from "${e.includes(`:`)?e:`${l?.config?.framework||`powerlines`}:${e}`}";`})}}),i(u,{get when(){return p.importedModules.size>0},get children(){return i(x,{get records(){return p.importedModules}})}}),a(`hbr`,{})]}})}export{O as TypescriptFile,k as TypescriptFileHeader,A as TypescriptFileHeaderImports};
1
+ import { usePowerlinesSafe } from "../../core/contexts/context.mjs";
2
+ import { SourceFile } from "../../core/components/source-file.mjs";
3
+ import { SingleLineComment } from "../../core/components/single-line-comment.mjs";
4
+ import { code as code$1 } from "../../core/helpers/code.mjs";
5
+ import { createComponent, createIntrinsic, memo, mergeProps } from "@alloy-js/core/jsx-runtime";
6
+ import { For, Scope, Show, SourceDirectoryContext, computed, splitProps, useContext, useScope } from "@alloy-js/core";
7
+ import { appendPath } from "@stryke/path/append";
8
+ import { titleCase } from "@stryke/string-format/title-case";
9
+ import { getFileHeaderWarning } from "powerlines/utils";
10
+ import { getUniqueBy } from "@stryke/helpers/get-unique";
11
+ import { isString } from "@stryke/type-checks/is-string";
12
+ import { ImportStatements, PackageContext, SourceFileContext as SourceFileContext$1, TSModuleScope, getSourceDirectoryData, useSourceFile } from "@alloy-js/typescript";
13
+ import { isBoolean } from "@stryke/type-checks/is-boolean";
14
+
15
+ //#region src/typescript/components/typescript-file.tsx
16
+ /**
17
+ * A base component representing a Powerlines generated Typescript source file.
18
+ *
19
+ * @param props - The properties for the source file.
20
+ * @returns The rendered source file component.
21
+ */
22
+ function TypescriptFile(props) {
23
+ const [{ children, path, imports, builtinImports, tsx, header, hashbang }, rest] = splitProps(props, [
24
+ "children",
25
+ "path",
26
+ "imports",
27
+ "builtinImports",
28
+ "tsx",
29
+ "header",
30
+ "hashbang"
31
+ ]);
32
+ const directoryContext = useContext(SourceDirectoryContext);
33
+ const sdData = getSourceDirectoryData(directoryContext);
34
+ const modulePath = appendPath(path, directoryContext.path);
35
+ const scope = new TSModuleScope(modulePath, useScope());
36
+ sdData.modules.add(scope);
37
+ const pkg = useContext(PackageContext);
38
+ if (pkg) pkg.scope.addModule(scope);
39
+ if (props.export) {
40
+ if (pkg) if (isBoolean(props.export)) pkg.scope.addExport(modulePath, scope);
41
+ else pkg.scope.addExport(props.export, scope);
42
+ }
43
+ return createComponent(SourceFileContext$1.Provider, {
44
+ value: { scope },
45
+ get children() {
46
+ return createComponent(Scope, {
47
+ value: scope,
48
+ get children() {
49
+ return createComponent(SourceFile, mergeProps(rest, {
50
+ path: modulePath,
51
+ get header() {
52
+ return header ?? createComponent(TypescriptFileHeader, {
53
+ hashbang,
54
+ get children() {
55
+ return createComponent(TypescriptFileHeaderImports, {
56
+ imports,
57
+ builtinImports,
58
+ scope
59
+ });
60
+ }
61
+ });
62
+ },
63
+ filetype: tsx ? "tsx" : "typescript",
64
+ children
65
+ }));
66
+ }
67
+ });
68
+ }
69
+ });
70
+ }
71
+ /**
72
+ * Renders the header for a Powerlines Typescript source file.
73
+ *
74
+ * @param props - The properties for the source file header.
75
+ * @returns The rendered source file header.
76
+ */
77
+ function TypescriptFileHeader(props) {
78
+ const { header, hashbang, disableEslint = true, disableBiome = true, children } = props;
79
+ const context = usePowerlinesSafe();
80
+ return [
81
+ createComponent(Show, {
82
+ get when() {
83
+ return Boolean(hashbang);
84
+ },
85
+ get children() {
86
+ return [memo(() => hashbang === true ? code$1`#!/usr/bin/env ${context?.config.mode === "development" ? "-S NODE_OPTIONS=--enable-source-maps" : ""} node` : hashbang), createIntrinsic("hbr", {})];
87
+ }
88
+ }),
89
+ createComponent(Show, {
90
+ get when() {
91
+ return Boolean(header);
92
+ },
93
+ get children() {
94
+ return [header, createIntrinsic("hbr", {})];
95
+ }
96
+ }),
97
+ createIntrinsic("hbr", {}),
98
+ createComponent(Show, {
99
+ get when() {
100
+ return Boolean(disableEslint);
101
+ },
102
+ get children() {
103
+ return [createComponent(SingleLineComment, {
104
+ variant: "slash-star",
105
+ children: "eslint-disable"
106
+ }), createIntrinsic("hbr", {})];
107
+ }
108
+ }),
109
+ createComponent(Show, {
110
+ get when() {
111
+ return Boolean(disableBiome);
112
+ },
113
+ get children() {
114
+ return [createComponent(SingleLineComment, { children: "biome-ignore lint: disable" }), createIntrinsic("hbr", {})];
115
+ }
116
+ }),
117
+ createComponent(Show, {
118
+ get when() {
119
+ return Boolean(disableEslint) || Boolean(disableBiome);
120
+ },
121
+ get children() {
122
+ return createIntrinsic("hbr", {});
123
+ }
124
+ }),
125
+ createComponent(Show, {
126
+ get when() {
127
+ return Boolean(children);
128
+ },
129
+ get children() {
130
+ return [children, createIntrinsic("hbr", {})];
131
+ }
132
+ }),
133
+ createComponent(SingleLineComment, { get children() {
134
+ return `Generated by ${titleCase(context?.config?.framework) || "Powerlines"}`;
135
+ } }),
136
+ createIntrinsic("hbr", {}),
137
+ createComponent(SingleLineComment, { get children() {
138
+ return getFileHeaderWarning(context);
139
+ } }),
140
+ createIntrinsic("hbr", {})
141
+ ];
142
+ }
143
+ /**
144
+ * Renders the header for a Powerlines Typescript source file.
145
+ *
146
+ * @param props - The properties for the source file header.
147
+ * @returns The rendered source file header.
148
+ */
149
+ function TypescriptFileHeaderImports(props) {
150
+ const { imports: importProps, builtinImports: builtinImportsProps } = props;
151
+ const context = usePowerlinesSafe();
152
+ const sourceFile = useSourceFile();
153
+ const scope = props.scope ?? sourceFile.scope;
154
+ const imports = computed(() => {
155
+ return Object.fromEntries(Object.entries(importProps ?? {}).map(([module, importItem]) => [module, Array.isArray(importItem) ? getUniqueBy(importItem, (i) => isString(i) ? i : i.alias || i.name) : importItem]));
156
+ });
157
+ const builtinImports = computed(() => {
158
+ return Object.fromEntries(Object.entries(builtinImportsProps ?? {}).map(([module, importItem]) => [module, Array.isArray(importItem) ? getUniqueBy(importItem, (i) => isString(i) ? i : i.alias || i.name) : importItem]));
159
+ });
160
+ return createComponent(Show, {
161
+ get when() {
162
+ return scope.importedModules.size > 0 || !!imports.value && Object.keys(imports.value).length > 0 || !!builtinImports.value && Object.keys(builtinImports.value).length > 0;
163
+ },
164
+ get children() {
165
+ return [
166
+ createComponent(Show, {
167
+ get when() {
168
+ return memo(() => !!!!imports.value)() && Object.keys(imports.value).length > 0;
169
+ },
170
+ get children() {
171
+ return createComponent(For, {
172
+ get each() {
173
+ return Object.entries(imports.value ?? {});
174
+ },
175
+ hardline: true,
176
+ get ender() {
177
+ return createIntrinsic("hbr", {});
178
+ },
179
+ children: ([module, importItem]) => code$1`import ${importItem === null ? "" : isString(importItem) ? importItem : `${importItem.filter((i) => !isString(i) && i.default).map((i) => `${i.type ? "type " : ""}${i.alias ? i.alias : i.name}`).join(", ") + (importItem.filter((i) => !isString(i) && i.default).length > 0 && importItem.filter((i) => isString(i) || !i.default).length > 0 ? ", " : "") + (importItem.filter((i) => isString(i) || !i.default).length > 0 ? `{ ${importItem.filter((i) => isString(i) || !i.default).map((i) => isString(i) ? i : `${i.type ? "type " : ""}${i.alias ? `${i.name} as ${i.alias}` : i.name}`).join(", ")} }` : "")}`} from "${module}";`
180
+ });
181
+ }
182
+ }),
183
+ createComponent(Show, {
184
+ get when() {
185
+ return memo(() => !!builtinImports.value)() && Object.keys(builtinImports.value).length > 0;
186
+ },
187
+ get children() {
188
+ return createComponent(For, {
189
+ get each() {
190
+ return Object.entries(builtinImports.value ?? {});
191
+ },
192
+ hardline: true,
193
+ get ender() {
194
+ return createIntrinsic("hbr", {});
195
+ },
196
+ children: ([module, importItem]) => code$1`import ${importItem === null ? "" : isString(importItem) ? importItem : `${importItem.filter((i) => !isString(i) && i.default).map((i) => `${i.type ? "type " : ""}${i.alias ? i.alias : i.name}`).join(", ") + (importItem.filter((i) => !isString(i) && i.default).length > 0 && importItem.filter((i) => isString(i) || !i.default).length > 0 ? ", " : "") + (importItem.filter((i) => isString(i) || !i.default).length > 0 ? `{ ${importItem.filter((i) => isString(i) || !i.default).map((i) => isString(i) ? i : `${i.type ? "type " : ""}${i.alias ? `${i.name} as ${i.alias}` : i.name}`).join(", ")} }` : "")}`} from "${module.includes(":") ? module : `${context?.config?.framework || "powerlines"}:${module}`}";`
197
+ });
198
+ }
199
+ }),
200
+ createComponent(Show, {
201
+ get when() {
202
+ return scope.importedModules.size > 0;
203
+ },
204
+ get children() {
205
+ return createComponent(ImportStatements, { get records() {
206
+ return scope.importedModules;
207
+ } });
208
+ }
209
+ }),
210
+ createIntrinsic("hbr", {})
211
+ ];
212
+ }
213
+ });
214
+ }
215
+
216
+ //#endregion
217
+ export { TypescriptFile, TypescriptFileHeader, TypescriptFileHeaderImports };
2
218
  //# sourceMappingURL=typescript-file.mjs.map