@powerlines/plugin-alloy 0.26.19 → 0.26.21
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.
- package/dist/core/components/infrastructure-file.cjs +9 -14
- package/dist/core/components/infrastructure-file.mjs +9 -14
- package/dist/core/components/infrastructure-file.mjs.map +1 -1
- package/dist/core/components/output.cjs +10 -17
- package/dist/core/components/output.mjs +10 -17
- package/dist/core/components/output.mjs.map +1 -1
- package/dist/core/components/single-line-comment.cjs +4 -6
- package/dist/core/components/single-line-comment.mjs +4 -6
- package/dist/core/components/single-line-comment.mjs.map +1 -1
- package/dist/core/components/source-file.cjs +6 -10
- package/dist/core/components/source-file.mjs +6 -10
- package/dist/core/components/source-file.mjs.map +1 -1
- package/dist/core/components/spacing.cjs +4 -6
- package/dist/core/components/spacing.mjs +4 -6
- package/dist/core/components/spacing.mjs.map +1 -1
- package/dist/hcl/components/block-declaration.cjs +8 -12
- package/dist/hcl/components/block-declaration.mjs +8 -12
- package/dist/hcl/components/block-declaration.mjs.map +1 -1
- package/dist/hcl/components/hcl-file.cjs +21 -35
- package/dist/hcl/components/hcl-file.mjs +22 -36
- package/dist/hcl/components/hcl-file.mjs.map +1 -1
- package/dist/hcl/components/packer-file.cjs +8 -8
- package/dist/hcl/components/packer-file.mjs +8 -8
- package/dist/hcl/components/packer-file.mjs.map +1 -1
- package/dist/hcl/components/terraform-file.cjs +8 -8
- package/dist/hcl/components/terraform-file.mjs +8 -8
- package/dist/hcl/components/terraform-file.mjs.map +1 -1
- package/dist/helpers/capnp.cjs +1 -1
- package/dist/helpers/capnp.mjs +1 -1
- package/dist/helpers/capnp.mjs.map +1 -1
- package/dist/index.cjs +7 -12
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +7 -11
- package/dist/index.mjs.map +1 -1
- package/dist/markdown/components/front-matter.cjs +7 -9
- package/dist/markdown/components/front-matter.mjs +7 -9
- package/dist/markdown/components/front-matter.mjs.map +1 -1
- package/dist/markdown/components/markdown-file.cjs +44 -76
- package/dist/markdown/components/markdown-file.mjs +44 -76
- package/dist/markdown/components/markdown-file.mjs.map +1 -1
- package/dist/markdown/components/markdown-table.cjs +28 -49
- package/dist/markdown/components/markdown-table.mjs +28 -49
- package/dist/markdown/components/markdown-table.mjs.map +1 -1
- package/dist/markdown/contexts/markdown-table.mjs.map +1 -1
- package/dist/render.cjs +3 -3
- package/dist/render.mjs +4 -4
- package/dist/render.mjs.map +1 -1
- package/dist/typescript/components/builtin-file.cjs +20 -30
- package/dist/typescript/components/builtin-file.mjs +20 -30
- package/dist/typescript/components/builtin-file.mjs.map +1 -1
- package/dist/typescript/components/class-declaration.cjs +100 -165
- package/dist/typescript/components/class-declaration.mjs +100 -165
- package/dist/typescript/components/class-declaration.mjs.map +1 -1
- package/dist/typescript/components/dynamic-import-statement.cjs +6 -2
- package/dist/typescript/components/dynamic-import-statement.mjs +6 -2
- package/dist/typescript/components/dynamic-import-statement.mjs.map +1 -1
- package/dist/typescript/components/entry-file.cjs +8 -11
- package/dist/typescript/components/entry-file.mjs +8 -11
- package/dist/typescript/components/entry-file.mjs.map +1 -1
- package/dist/typescript/components/interface-declaration.cjs +74 -127
- package/dist/typescript/components/interface-declaration.mjs +74 -127
- package/dist/typescript/components/interface-declaration.mjs.map +1 -1
- package/dist/typescript/components/object-declaration.cjs +50 -84
- package/dist/typescript/components/object-declaration.mjs +50 -84
- package/dist/typescript/components/object-declaration.mjs.map +1 -1
- package/dist/typescript/components/property-name.cjs +3 -3
- package/dist/typescript/components/property-name.mjs +3 -3
- package/dist/typescript/components/property-name.mjs.map +1 -1
- package/dist/typescript/components/record-expression.mjs.map +1 -1
- package/dist/typescript/components/tsdoc-reflection.cjs +108 -241
- package/dist/typescript/components/tsdoc-reflection.mjs +108 -241
- package/dist/typescript/components/tsdoc-reflection.mjs.map +1 -1
- package/dist/typescript/components/tsdoc.cjs +168 -265
- package/dist/typescript/components/tsdoc.mjs +168 -265
- package/dist/typescript/components/tsdoc.mjs.map +1 -1
- package/dist/typescript/components/type-declaration.cjs +15 -20
- package/dist/typescript/components/type-declaration.mjs +15 -20
- package/dist/typescript/components/type-declaration.mjs.map +1 -1
- package/dist/typescript/components/type-parameters.cjs +29 -55
- package/dist/typescript/components/type-parameters.mjs +29 -55
- package/dist/typescript/components/type-parameters.mjs.map +1 -1
- package/dist/typescript/components/typescript-file.cjs +74 -135
- package/dist/typescript/components/typescript-file.mjs +74 -135
- package/dist/typescript/components/typescript-file.mjs.map +1 -1
- package/dist/typescript/contexts/lexical-scope.cjs +3 -5
- package/dist/typescript/contexts/lexical-scope.mjs +3 -5
- package/dist/typescript/contexts/lexical-scope.mjs.map +1 -1
- package/dist/typescript/contexts/member-scope.cjs +3 -5
- package/dist/typescript/contexts/member-scope.mjs +3 -5
- package/dist/typescript/contexts/member-scope.mjs.map +1 -1
- package/dist/yaml/components/yaml-file.cjs +47 -92
- package/dist/yaml/components/yaml-file.mjs +47 -92
- package/dist/yaml/components/yaml-file.mjs.map +1 -1
- package/package.json +6 -6
|
@@ -6,8 +6,8 @@ import { getCallSignatureProps } from "../helpers/get-call-signature-props.mjs";
|
|
|
6
6
|
import "../helpers/index.mjs";
|
|
7
7
|
import { PropertyName } from "./property-name.mjs";
|
|
8
8
|
import { TypeParameters } from "./type-parameters.mjs";
|
|
9
|
-
import { createComponent, memo, mergeProps } from "@alloy-js/core/jsx-runtime";
|
|
10
9
|
import { Block, For, MemberDeclaration, Name, Show, code, splitProps } from "@alloy-js/core";
|
|
10
|
+
import { Fragment, jsx, jsxs } from "@alloy-js/core/jsx-runtime";
|
|
11
11
|
import { CallSignature, Declaration as Declaration$1, TSSymbolFlags, TypeRefContext, createMemberSymbol, createTypeAndValueSymbol, useTSNamePolicy } from "@alloy-js/typescript";
|
|
12
12
|
|
|
13
13
|
//#region src/typescript/components/class-declaration.tsx
|
|
@@ -42,20 +42,18 @@ import { CallSignature, Declaration as Declaration$1, TSSymbolFlags, TypeRefCont
|
|
|
42
42
|
* ```
|
|
43
43
|
*/
|
|
44
44
|
function ClassDeclaration(props) {
|
|
45
|
-
const extendsPart = props.extends && [" extends ",
|
|
46
|
-
const implementsPart = props.implements && props.implements.length > 0 && [
|
|
45
|
+
const extendsPart = props.extends && /* @__PURE__ */ jsxs(Fragment, { children: [" extends ", props.extends] });
|
|
46
|
+
const implementsPart = props.implements && props.implements.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
47
47
|
" ",
|
|
48
48
|
"implements",
|
|
49
49
|
" ",
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return props.implements;
|
|
53
|
-
},
|
|
50
|
+
/* @__PURE__ */ jsx(For, {
|
|
51
|
+
each: props.implements,
|
|
54
52
|
comma: true,
|
|
55
53
|
space: true,
|
|
56
54
|
children: (implement) => implement
|
|
57
55
|
})
|
|
58
|
-
];
|
|
56
|
+
] });
|
|
59
57
|
const sym = createTypeAndValueSymbol(props.name, {
|
|
60
58
|
refkeys: props.refkey,
|
|
61
59
|
export: props.export,
|
|
@@ -64,45 +62,27 @@ function ClassDeclaration(props) {
|
|
|
64
62
|
hasInstanceMembers: true,
|
|
65
63
|
namePolicy: useTSNamePolicy().for("class")
|
|
66
64
|
});
|
|
67
|
-
return [
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
get children() {
|
|
72
|
-
return createComponent(TSDoc, { get heading() {
|
|
73
|
-
return props.doc;
|
|
74
|
-
} });
|
|
75
|
-
}
|
|
76
|
-
}), createComponent(Declaration$1, {
|
|
65
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Show, {
|
|
66
|
+
when: Boolean(props.doc),
|
|
67
|
+
children: /* @__PURE__ */ jsx(TSDoc, { heading: props.doc })
|
|
68
|
+
}), /* @__PURE__ */ jsx(Declaration$1, {
|
|
77
69
|
symbol: sym,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
} })),
|
|
95
|
-
extendsPart,
|
|
96
|
-
implementsPart,
|
|
97
|
-
" ",
|
|
98
|
-
createComponent(Block, { get children() {
|
|
99
|
-
return props.children;
|
|
100
|
-
} })
|
|
101
|
-
];
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
})];
|
|
70
|
+
export: props.export,
|
|
71
|
+
default: props.default,
|
|
72
|
+
children: /* @__PURE__ */ jsxs(MemberScope$1, {
|
|
73
|
+
ownerSymbol: sym,
|
|
74
|
+
children: [
|
|
75
|
+
props.abstract && code`abstract `,
|
|
76
|
+
" class ",
|
|
77
|
+
/* @__PURE__ */ jsx(Name, {}),
|
|
78
|
+
props.typeParameters && /* @__PURE__ */ jsx(TypeParameters, { parameters: props.typeParameters }),
|
|
79
|
+
extendsPart,
|
|
80
|
+
implementsPart,
|
|
81
|
+
" ",
|
|
82
|
+
/* @__PURE__ */ jsx(Block, { children: props.children })
|
|
83
|
+
]
|
|
84
|
+
})
|
|
85
|
+
})] });
|
|
106
86
|
}
|
|
107
87
|
ClassDeclaration.TypeParameters = TypeParameters;
|
|
108
88
|
/**
|
|
@@ -119,29 +99,21 @@ function ClassMember(props) {
|
|
|
119
99
|
tsFlags,
|
|
120
100
|
namePolicy: useTSNamePolicy().for("class-member-data")
|
|
121
101
|
});
|
|
122
|
-
return [
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
get children() {
|
|
127
|
-
return createComponent(TSDoc, { get heading() {
|
|
128
|
-
return props.doc;
|
|
129
|
-
} });
|
|
130
|
-
}
|
|
131
|
-
}), createComponent(MemberDeclaration, {
|
|
102
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Show, {
|
|
103
|
+
when: Boolean(props.doc),
|
|
104
|
+
children: /* @__PURE__ */ jsx(TSDoc, { heading: props.doc })
|
|
105
|
+
}), /* @__PURE__ */ jsxs(MemberDeclaration, {
|
|
132
106
|
symbol: sym,
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
}
|
|
144
|
-
})];
|
|
107
|
+
children: [
|
|
108
|
+
props.public && "public ",
|
|
109
|
+
props.private && "private ",
|
|
110
|
+
props.protected && "protected ",
|
|
111
|
+
props.abstract && "abstract ",
|
|
112
|
+
props.override && "override ",
|
|
113
|
+
props.static && "static ",
|
|
114
|
+
props.children
|
|
115
|
+
]
|
|
116
|
+
})] });
|
|
145
117
|
}
|
|
146
118
|
/**
|
|
147
119
|
* Generates a TypeScript class field declaration for the given reflection class.
|
|
@@ -151,31 +123,25 @@ function ClassMember(props) {
|
|
|
151
123
|
*/
|
|
152
124
|
function ClassField(props) {
|
|
153
125
|
const optionality = props.optional ? "?" : "";
|
|
154
|
-
const typeSection = props.type && [
|
|
126
|
+
const typeSection = props.type && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
155
127
|
optionality,
|
|
156
128
|
": ",
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
nullish
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
}),
|
|
174
|
-
typeSection,
|
|
175
|
-
initializerSection
|
|
176
|
-
];
|
|
177
|
-
}
|
|
178
|
-
}));
|
|
129
|
+
/* @__PURE__ */ jsx(TypeRefContext, { children: props.type })
|
|
130
|
+
] });
|
|
131
|
+
const initializerSection = props.children && /* @__PURE__ */ jsxs(Fragment, { children: [" = ", props.children] });
|
|
132
|
+
const nullish = props.nullish ?? props.optional;
|
|
133
|
+
return /* @__PURE__ */ jsxs(ClassMember, {
|
|
134
|
+
...props,
|
|
135
|
+
nullish,
|
|
136
|
+
children: [
|
|
137
|
+
/* @__PURE__ */ jsx(PropertyName, {
|
|
138
|
+
private: props.isPrivateMember,
|
|
139
|
+
name: props.isPrivateMember ? props.name : void 0
|
|
140
|
+
}),
|
|
141
|
+
typeSection,
|
|
142
|
+
initializerSection
|
|
143
|
+
]
|
|
144
|
+
});
|
|
179
145
|
}
|
|
180
146
|
/**
|
|
181
147
|
* Generates a TypeScript class property setter declaration for the given reflection class.
|
|
@@ -184,30 +150,21 @@ function ClassField(props) {
|
|
|
184
150
|
* @returns A JSX element representing the class property setter declaration, which can be used within a ClassDeclaration component.
|
|
185
151
|
*/
|
|
186
152
|
function ClassPropertySet(props) {
|
|
187
|
-
return
|
|
188
|
-
|
|
153
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(ClassMember, {
|
|
154
|
+
...props,
|
|
155
|
+
children: [
|
|
189
156
|
"set ",
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
}];
|
|
202
|
-
} }),
|
|
203
|
-
" ",
|
|
204
|
-
createComponent(Block, { get children() {
|
|
205
|
-
return props.children;
|
|
206
|
-
} })
|
|
207
|
-
];
|
|
208
|
-
} })
|
|
209
|
-
];
|
|
210
|
-
} }))];
|
|
157
|
+
/* @__PURE__ */ jsx(PropertyName, { name: props.name }),
|
|
158
|
+
/* @__PURE__ */ jsxs(LexicalScope, { children: [
|
|
159
|
+
/* @__PURE__ */ jsx(CallSignature, { parameters: [{
|
|
160
|
+
name: "value",
|
|
161
|
+
type: /* @__PURE__ */ jsx(TypeRefContext, { children: props.type })
|
|
162
|
+
}] }),
|
|
163
|
+
" ",
|
|
164
|
+
/* @__PURE__ */ jsx(Block, { children: props.children })
|
|
165
|
+
] })
|
|
166
|
+
]
|
|
167
|
+
}) });
|
|
211
168
|
}
|
|
212
169
|
/**
|
|
213
170
|
* Generates a TypeScript class property getter declaration for the given reflection class.
|
|
@@ -216,27 +173,18 @@ function ClassPropertySet(props) {
|
|
|
216
173
|
* @returns A JSX element representing the class property getter declaration, which can be used within a ClassDeclaration component.
|
|
217
174
|
*/
|
|
218
175
|
function ClassPropertyGet(props) {
|
|
219
|
-
return
|
|
220
|
-
|
|
176
|
+
return /* @__PURE__ */ jsxs(ClassMember, {
|
|
177
|
+
...props,
|
|
178
|
+
children: [
|
|
221
179
|
"get ",
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
} });
|
|
231
|
-
} }),
|
|
232
|
-
" ",
|
|
233
|
-
createComponent(Block, { get children() {
|
|
234
|
-
return props.children;
|
|
235
|
-
} })
|
|
236
|
-
];
|
|
237
|
-
} })
|
|
238
|
-
];
|
|
239
|
-
} }));
|
|
180
|
+
/* @__PURE__ */ jsx(PropertyName, { name: props.name }),
|
|
181
|
+
/* @__PURE__ */ jsxs(LexicalScope, { children: [
|
|
182
|
+
/* @__PURE__ */ jsx(CallSignature, { returnType: /* @__PURE__ */ jsx(TypeRefContext, { children: props.type }) }),
|
|
183
|
+
" ",
|
|
184
|
+
/* @__PURE__ */ jsx(Block, { children: props.children })
|
|
185
|
+
] })
|
|
186
|
+
]
|
|
187
|
+
});
|
|
240
188
|
}
|
|
241
189
|
/**
|
|
242
190
|
* Generates a TypeScript class method declaration for the given reflection class.
|
|
@@ -247,37 +195,24 @@ function ClassPropertyGet(props) {
|
|
|
247
195
|
function ClassMethod(props) {
|
|
248
196
|
const callProps = getCallSignatureProps(props);
|
|
249
197
|
const [_, rest] = splitProps(props, ["doc"]);
|
|
250
|
-
return [
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
memo(() => props.async && "async "),
|
|
269
|
-
createComponent(PropertyName, {}),
|
|
270
|
-
createComponent(LexicalScope, { get children() {
|
|
271
|
-
return [
|
|
272
|
-
createComponent(CallSignature, callProps),
|
|
273
|
-
" ",
|
|
274
|
-
createComponent(Block, { get children() {
|
|
275
|
-
return props.children;
|
|
276
|
-
} })
|
|
277
|
-
];
|
|
278
|
-
} })
|
|
279
|
-
];
|
|
280
|
-
} }))];
|
|
198
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Show, {
|
|
199
|
+
when: Boolean(props.doc),
|
|
200
|
+
children: /* @__PURE__ */ jsx(TSDoc, {
|
|
201
|
+
heading: props.doc,
|
|
202
|
+
children: Array.isArray(rest.parameters) && /* @__PURE__ */ jsx(TSDocParams, { parameters: rest.parameters })
|
|
203
|
+
})
|
|
204
|
+
}), /* @__PURE__ */ jsxs(ClassMember, {
|
|
205
|
+
...rest,
|
|
206
|
+
children: [
|
|
207
|
+
props.async && "async ",
|
|
208
|
+
/* @__PURE__ */ jsx(PropertyName, {}),
|
|
209
|
+
/* @__PURE__ */ jsxs(LexicalScope, { children: [
|
|
210
|
+
/* @__PURE__ */ jsx(CallSignature, { ...callProps }),
|
|
211
|
+
" ",
|
|
212
|
+
/* @__PURE__ */ jsx(Block, { children: props.children })
|
|
213
|
+
] })
|
|
214
|
+
]
|
|
215
|
+
})] });
|
|
281
216
|
}
|
|
282
217
|
|
|
283
218
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-declaration.mjs","names":[],"sources":["../../../src/typescript/components/class-declaration.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 {\n Block,\n Children,\n code,\n For,\n MemberDeclaration,\n Name,\n Namekey,\n Refkey,\n Show,\n splitProps\n} from \"@alloy-js/core\";\nimport {\n CallSignature,\n CallSignatureProps,\n CommonDeclarationProps,\n createMemberSymbol,\n createTypeAndValueSymbol,\n Declaration,\n TSSymbolFlags,\n TypeParameterDescriptor,\n TypeRefContext,\n useTSNamePolicy\n} from \"@alloy-js/typescript\";\nimport { LexicalScope } from \"../contexts\";\nimport { MemberScope } from \"../contexts/member-scope\";\nimport { getCallSignatureProps } from \"../helpers\";\nimport { PropertyName } from \"./property-name\";\nimport { TSDoc, TSDocParams } from \"./tsdoc\";\nimport { TypeParameters } from \"./type-parameters\";\n\n/**\n * Props for the ClassDeclaration component, which represents a TypeScript class declaration\n */\nexport interface ClassDeclarationProps extends CommonDeclarationProps {\n /**\n * An indication of whether this class is abstract\n */\n abstract?: boolean;\n\n /**\n * An optional class that this class extends. This will be rendered as an `extends` clause in the class declaration\n */\n extends?: Children;\n\n /**\n * Optional interfaces that this class implements. This will be rendered as an `implements` clause in the class declaration\n */\n implements?: Children[];\n\n /**\n * The generic type parameters of the class.\n */\n typeParameters?: TypeParameterDescriptor[] | string[];\n}\n\n/**\n * Create a TypeScript class declaration.\n *\n * @example\n * ```tsx\n * const myPetRefkey = refkey();\n * const Animal = refkey();\n * const staticMember = refkey();\n * const instanceMember = refkey();\n *\n * <ClassDeclaration name=\"Animal\" refkey={Animal}>\n * <ClassMember public static name=\"something\" type=\"string\" refkey={staticMember}>\n * \"hello\"\n * </ClassMember>\n * <ClassMember public name=\"kind\" type=\"string\" />\n * <ClassMember public name=\"name\" type=\"string\" refkey={instanceMember} />\n * <ClassConstructor parameters=\"name: string\">\n * this.name = name;\n * </ClassConstructor>\n * </ClassDeclaration>\n *\n * <VarDeclaration const name=\"myPet\" refkey={myPetRefkey}>\n * new {Animal}();\n * </VarDeclaration>\n *\n * {staticMember}; // Animal.something\n * <MemberReference path={[myPetRefkey, instanceMember]} /> // myPet.name\n * {memberRefkey(myPetRefkey, instanceMember)}\n * ```\n */\nexport function ClassDeclaration(props: ClassDeclarationProps) {\n const extendsPart = props.extends && <> extends {props.extends}</>;\n const implementsPart = props.implements && props.implements.length > 0 && (\n <>\n {\" \"}\n implements{\" \"}\n <For each={props.implements} comma space>\n {implement => implement}\n </For>\n </>\n );\n const sym = createTypeAndValueSymbol(props.name, {\n refkeys: props.refkey,\n export: props.export,\n default: props.default,\n metadata: props.metadata,\n hasInstanceMembers: true,\n namePolicy: useTSNamePolicy().for(\"class\")\n });\n\n return (\n <>\n <Show when={Boolean(props.doc)}>\n <TSDoc heading={props.doc} />\n </Show>\n <Declaration symbol={sym} export={props.export} default={props.default}>\n <MemberScope ownerSymbol={sym}>\n {props.abstract && code`abstract `} class <Name />\n {props.typeParameters && (\n <TypeParameters parameters={props.typeParameters} />\n )}\n {extendsPart}\n {implementsPart} <Block>{props.children}</Block>\n </MemberScope>\n </Declaration>\n </>\n );\n}\n\nClassDeclaration.TypeParameters = TypeParameters;\n\n/**\n * Generates a TypeScript class member declaration for the given reflection class.\n */\nexport interface ClassMemberProps {\n name: string | Namekey;\n refkey?: Refkey;\n public?: boolean;\n private?: boolean;\n protected?: boolean;\n jsPrivate?: boolean;\n static?: boolean;\n abstract?: boolean;\n children?: Children;\n doc?: Children;\n nullish?: boolean;\n override?: boolean;\n}\n\n/**\n * Generates a TypeScript class member declaration for the given reflection class.\n *\n * @param props - The properties of the class member, including its name, visibility, and other modifiers.\n * @returns A JSX element representing the class member declaration, which can be used within a ClassDeclaration component.\n */\nexport function ClassMember(props: ClassMemberProps) {\n let tsFlags = TSSymbolFlags.None;\n if (props.nullish) {\n tsFlags |= TSSymbolFlags.Nullish;\n }\n\n const sym = createMemberSymbol(props.name, props, {\n refkeys: props.refkey,\n tsFlags,\n namePolicy: useTSNamePolicy().for(\"class-member-data\")\n });\n\n return (\n <>\n <Show when={Boolean(props.doc)}>\n <TSDoc heading={props.doc} />\n </Show>\n <MemberDeclaration symbol={sym}>\n {props.public && \"public \"}\n {props.private && \"private \"}\n {props.protected && \"protected \"}\n {props.abstract && \"abstract \"}\n {props.override && \"override \"}\n {props.static && \"static \"}\n {props.children}\n </MemberDeclaration>\n </>\n );\n}\n\n/**\n * Props for a class field, which is a specific type of class member that represents a property of the class.\n */\nexport interface ClassFieldProps extends ClassMemberProps {\n name: string;\n type?: Children;\n optional?: boolean;\n children?: Children;\n isPrivateMember?: boolean;\n}\n\n/**\n * Generates a TypeScript class field declaration for the given reflection class.\n *\n * @param props - The properties of the class field, including its name, type, optionality, and other modifiers.\n * @returns A JSX element representing the class field declaration, which can be used within a ClassDeclaration component.\n */\nexport function ClassField(props: ClassFieldProps) {\n const optionality = props.optional ? \"?\" : \"\";\n const typeSection = props.type && (\n <>\n {optionality}: <TypeRefContext>{props.type}</TypeRefContext>\n </>\n );\n const initializerSection = props.children && <> = {props.children}</>;\n const nullish = props.nullish ?? props.optional;\n\n return (\n <ClassMember {...props} nullish={nullish}>\n <PropertyName\n private={props.isPrivateMember}\n name={props.isPrivateMember ? props.name : undefined}\n />\n {typeSection}\n {initializerSection}\n </ClassMember>\n );\n}\n\n/**\n * Props for a class field, which is a specific type of class member that represents a property of the class.\n */\nexport interface ClassPropertyProps extends ClassMemberProps {\n name: string;\n type?: Children;\n children?: Children;\n}\n\n/**\n * Generates a TypeScript class property setter declaration for the given reflection class.\n *\n * @param props - The properties of the class property, including its name, type, and other modifiers.\n * @returns A JSX element representing the class property setter declaration, which can be used within a ClassDeclaration component.\n */\nexport function ClassPropertySet(props: ClassPropertyProps) {\n return (\n <>\n <ClassMember {...props}>\n {\"set \"}\n <PropertyName name={props.name} />\n <LexicalScope>\n <CallSignature\n parameters={[\n {\n name: \"value\",\n type: <TypeRefContext>{props.type}</TypeRefContext>\n }\n ]}\n />{\" \"}\n <Block>{props.children}</Block>\n </LexicalScope>\n </ClassMember>\n </>\n );\n}\n\n/**\n * Generates a TypeScript class property getter declaration for the given reflection class.\n *\n * @param props - The properties of the class property, including its name, type, and other modifiers.\n * @returns A JSX element representing the class property getter declaration, which can be used within a ClassDeclaration component.\n */\nexport function ClassPropertyGet(props: ClassPropertyProps) {\n return (\n <ClassMember {...props}>\n {\"get \"}\n <PropertyName name={props.name} />\n <LexicalScope>\n <CallSignature\n returnType={<TypeRefContext>{props.type}</TypeRefContext>}\n />{\" \"}\n <Block>{props.children}</Block>\n </LexicalScope>\n </ClassMember>\n );\n}\n\n/**\n * Props for a class method, which is a specific type of class member that represents a function defined within the class.\n */\nexport interface ClassMethodProps extends ClassMemberProps, CallSignatureProps {\n async?: boolean;\n children?: Children;\n}\n\n/**\n * Generates a TypeScript class method declaration for the given reflection class.\n *\n * @param props - The properties of the class method, including its name, visibility, and other modifiers.\n * @returns A JSX element representing the class method declaration, which can be used within a ClassDeclaration component.\n */\nexport function ClassMethod(props: ClassMethodProps) {\n const callProps = getCallSignatureProps(props);\n const [_, rest] = splitProps(props, [\"doc\"]);\n\n return (\n <>\n <Show when={Boolean(props.doc)}>\n <TSDoc heading={props.doc}>\n {Array.isArray(rest.parameters) && (\n <TSDocParams parameters={rest.parameters} />\n )}\n </TSDoc>\n </Show>\n <ClassMember {...rest}>\n {props.async && \"async \"}\n <PropertyName />\n <LexicalScope>\n <CallSignature {...callProps} /> <Block>{props.children}</Block>\n </LexicalScope>\n </ClassMember>\n </>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"class-declaration.mjs","names":["Declaration","MemberScope"],"sources":["../../../src/typescript/components/class-declaration.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 {\n Block,\n Children,\n code,\n For,\n MemberDeclaration,\n Name,\n Namekey,\n Refkey,\n Show,\n splitProps\n} from \"@alloy-js/core\";\nimport {\n CallSignature,\n CallSignatureProps,\n CommonDeclarationProps,\n createMemberSymbol,\n createTypeAndValueSymbol,\n Declaration,\n TSSymbolFlags,\n TypeParameterDescriptor,\n TypeRefContext,\n useTSNamePolicy\n} from \"@alloy-js/typescript\";\nimport { LexicalScope } from \"../contexts\";\nimport { MemberScope } from \"../contexts/member-scope\";\nimport { getCallSignatureProps } from \"../helpers\";\nimport { PropertyName } from \"./property-name\";\nimport { TSDoc, TSDocParams } from \"./tsdoc\";\nimport { TypeParameters } from \"./type-parameters\";\n\n/**\n * Props for the ClassDeclaration component, which represents a TypeScript class declaration\n */\nexport interface ClassDeclarationProps extends CommonDeclarationProps {\n /**\n * An indication of whether this class is abstract\n */\n abstract?: boolean;\n\n /**\n * An optional class that this class extends. This will be rendered as an `extends` clause in the class declaration\n */\n extends?: Children;\n\n /**\n * Optional interfaces that this class implements. This will be rendered as an `implements` clause in the class declaration\n */\n implements?: Children[];\n\n /**\n * The generic type parameters of the class.\n */\n typeParameters?: TypeParameterDescriptor[] | string[];\n}\n\n/**\n * Create a TypeScript class declaration.\n *\n * @example\n * ```tsx\n * const myPetRefkey = refkey();\n * const Animal = refkey();\n * const staticMember = refkey();\n * const instanceMember = refkey();\n *\n * <ClassDeclaration name=\"Animal\" refkey={Animal}>\n * <ClassMember public static name=\"something\" type=\"string\" refkey={staticMember}>\n * \"hello\"\n * </ClassMember>\n * <ClassMember public name=\"kind\" type=\"string\" />\n * <ClassMember public name=\"name\" type=\"string\" refkey={instanceMember} />\n * <ClassConstructor parameters=\"name: string\">\n * this.name = name;\n * </ClassConstructor>\n * </ClassDeclaration>\n *\n * <VarDeclaration const name=\"myPet\" refkey={myPetRefkey}>\n * new {Animal}();\n * </VarDeclaration>\n *\n * {staticMember}; // Animal.something\n * <MemberReference path={[myPetRefkey, instanceMember]} /> // myPet.name\n * {memberRefkey(myPetRefkey, instanceMember)}\n * ```\n */\nexport function ClassDeclaration(props: ClassDeclarationProps) {\n const extendsPart = props.extends && <> extends {props.extends}</>;\n const implementsPart = props.implements && props.implements.length > 0 && (\n <>\n {\" \"}\n implements{\" \"}\n <For each={props.implements} comma space>\n {implement => implement}\n </For>\n </>\n );\n const sym = createTypeAndValueSymbol(props.name, {\n refkeys: props.refkey,\n export: props.export,\n default: props.default,\n metadata: props.metadata,\n hasInstanceMembers: true,\n namePolicy: useTSNamePolicy().for(\"class\")\n });\n\n return (\n <>\n <Show when={Boolean(props.doc)}>\n <TSDoc heading={props.doc} />\n </Show>\n <Declaration symbol={sym} export={props.export} default={props.default}>\n <MemberScope ownerSymbol={sym}>\n {props.abstract && code`abstract `} class <Name />\n {props.typeParameters && (\n <TypeParameters parameters={props.typeParameters} />\n )}\n {extendsPart}\n {implementsPart} <Block>{props.children}</Block>\n </MemberScope>\n </Declaration>\n </>\n );\n}\n\nClassDeclaration.TypeParameters = TypeParameters;\n\n/**\n * Generates a TypeScript class member declaration for the given reflection class.\n */\nexport interface ClassMemberProps {\n name: string | Namekey;\n refkey?: Refkey;\n public?: boolean;\n private?: boolean;\n protected?: boolean;\n jsPrivate?: boolean;\n static?: boolean;\n abstract?: boolean;\n children?: Children;\n doc?: Children;\n nullish?: boolean;\n override?: boolean;\n}\n\n/**\n * Generates a TypeScript class member declaration for the given reflection class.\n *\n * @param props - The properties of the class member, including its name, visibility, and other modifiers.\n * @returns A JSX element representing the class member declaration, which can be used within a ClassDeclaration component.\n */\nexport function ClassMember(props: ClassMemberProps) {\n let tsFlags = TSSymbolFlags.None;\n if (props.nullish) {\n tsFlags |= TSSymbolFlags.Nullish;\n }\n\n const sym = createMemberSymbol(props.name, props, {\n refkeys: props.refkey,\n tsFlags,\n namePolicy: useTSNamePolicy().for(\"class-member-data\")\n });\n\n return (\n <>\n <Show when={Boolean(props.doc)}>\n <TSDoc heading={props.doc} />\n </Show>\n <MemberDeclaration symbol={sym}>\n {props.public && \"public \"}\n {props.private && \"private \"}\n {props.protected && \"protected \"}\n {props.abstract && \"abstract \"}\n {props.override && \"override \"}\n {props.static && \"static \"}\n {props.children}\n </MemberDeclaration>\n </>\n );\n}\n\n/**\n * Props for a class field, which is a specific type of class member that represents a property of the class.\n */\nexport interface ClassFieldProps extends ClassMemberProps {\n name: string;\n type?: Children;\n optional?: boolean;\n children?: Children;\n isPrivateMember?: boolean;\n}\n\n/**\n * Generates a TypeScript class field declaration for the given reflection class.\n *\n * @param props - The properties of the class field, including its name, type, optionality, and other modifiers.\n * @returns A JSX element representing the class field declaration, which can be used within a ClassDeclaration component.\n */\nexport function ClassField(props: ClassFieldProps) {\n const optionality = props.optional ? \"?\" : \"\";\n const typeSection = props.type && (\n <>\n {optionality}: <TypeRefContext>{props.type}</TypeRefContext>\n </>\n );\n const initializerSection = props.children && <> = {props.children}</>;\n const nullish = props.nullish ?? props.optional;\n\n return (\n <ClassMember {...props} nullish={nullish}>\n <PropertyName\n private={props.isPrivateMember}\n name={props.isPrivateMember ? props.name : undefined}\n />\n {typeSection}\n {initializerSection}\n </ClassMember>\n );\n}\n\n/**\n * Props for a class field, which is a specific type of class member that represents a property of the class.\n */\nexport interface ClassPropertyProps extends ClassMemberProps {\n name: string;\n type?: Children;\n children?: Children;\n}\n\n/**\n * Generates a TypeScript class property setter declaration for the given reflection class.\n *\n * @param props - The properties of the class property, including its name, type, and other modifiers.\n * @returns A JSX element representing the class property setter declaration, which can be used within a ClassDeclaration component.\n */\nexport function ClassPropertySet(props: ClassPropertyProps) {\n return (\n <>\n <ClassMember {...props}>\n {\"set \"}\n <PropertyName name={props.name} />\n <LexicalScope>\n <CallSignature\n parameters={[\n {\n name: \"value\",\n type: <TypeRefContext>{props.type}</TypeRefContext>\n }\n ]}\n />{\" \"}\n <Block>{props.children}</Block>\n </LexicalScope>\n </ClassMember>\n </>\n );\n}\n\n/**\n * Generates a TypeScript class property getter declaration for the given reflection class.\n *\n * @param props - The properties of the class property, including its name, type, and other modifiers.\n * @returns A JSX element representing the class property getter declaration, which can be used within a ClassDeclaration component.\n */\nexport function ClassPropertyGet(props: ClassPropertyProps) {\n return (\n <ClassMember {...props}>\n {\"get \"}\n <PropertyName name={props.name} />\n <LexicalScope>\n <CallSignature\n returnType={<TypeRefContext>{props.type}</TypeRefContext>}\n />{\" \"}\n <Block>{props.children}</Block>\n </LexicalScope>\n </ClassMember>\n );\n}\n\n/**\n * Props for a class method, which is a specific type of class member that represents a function defined within the class.\n */\nexport interface ClassMethodProps extends ClassMemberProps, CallSignatureProps {\n async?: boolean;\n children?: Children;\n}\n\n/**\n * Generates a TypeScript class method declaration for the given reflection class.\n *\n * @param props - The properties of the class method, including its name, visibility, and other modifiers.\n * @returns A JSX element representing the class method declaration, which can be used within a ClassDeclaration component.\n */\nexport function ClassMethod(props: ClassMethodProps) {\n const callProps = getCallSignatureProps(props);\n const [_, rest] = splitProps(props, [\"doc\"]);\n\n return (\n <>\n <Show when={Boolean(props.doc)}>\n <TSDoc heading={props.doc}>\n {Array.isArray(rest.parameters) && (\n <TSDocParams parameters={rest.parameters} />\n )}\n </TSDoc>\n </Show>\n <ClassMember {...rest}>\n {props.async && \"async \"}\n <PropertyName />\n <LexicalScope>\n <CallSignature {...callProps} /> <Block>{props.children}</Block>\n </LexicalScope>\n </ClassMember>\n </>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
|
|
3
|
-
let _alloy_js_core_jsx_runtime = require("@alloy-js/core/jsx-runtime");
|
|
4
3
|
let _alloy_js_core = require("@alloy-js/core");
|
|
4
|
+
let _alloy_js_core_jsx_runtime = require("@alloy-js/core/jsx-runtime");
|
|
5
5
|
let _alloy_js_typescript = require("@alloy-js/typescript");
|
|
6
6
|
|
|
7
7
|
//#region src/typescript/components/dynamic-import-statement.tsx
|
|
@@ -19,7 +19,11 @@ let _alloy_js_typescript = require("@alloy-js/typescript");
|
|
|
19
19
|
*/
|
|
20
20
|
function DynamicImportStatement(props) {
|
|
21
21
|
const { importPath, exportName = "default", const: isConst = true, ...rest } = props;
|
|
22
|
-
return (0, _alloy_js_core_jsx_runtime.
|
|
22
|
+
return /* @__PURE__ */ (0, _alloy_js_core_jsx_runtime.jsx)(_alloy_js_typescript.VarDeclaration, {
|
|
23
|
+
const: isConst,
|
|
24
|
+
...rest,
|
|
25
|
+
initializer: _alloy_js_core.code`await import("${importPath}").then(m => m.${exportName});`
|
|
26
|
+
});
|
|
23
27
|
}
|
|
24
28
|
|
|
25
29
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createComponent, mergeProps } from "@alloy-js/core/jsx-runtime";
|
|
2
1
|
import { code } from "@alloy-js/core";
|
|
2
|
+
import { jsx } from "@alloy-js/core/jsx-runtime";
|
|
3
3
|
import { VarDeclaration } from "@alloy-js/typescript";
|
|
4
4
|
|
|
5
5
|
//#region src/typescript/components/dynamic-import-statement.tsx
|
|
@@ -17,7 +17,11 @@ import { VarDeclaration } from "@alloy-js/typescript";
|
|
|
17
17
|
*/
|
|
18
18
|
function DynamicImportStatement(props) {
|
|
19
19
|
const { importPath, exportName = "default", const: isConst = true, ...rest } = props;
|
|
20
|
-
return
|
|
20
|
+
return /* @__PURE__ */ jsx(VarDeclaration, {
|
|
21
|
+
const: isConst,
|
|
22
|
+
...rest,
|
|
23
|
+
initializer: code`await import("${importPath}").then(m => m.${exportName});`
|
|
24
|
+
});
|
|
21
25
|
}
|
|
22
26
|
|
|
23
27
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-import-statement.mjs","names":[],"sources":["../../../src/typescript/components/dynamic-import-statement.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 { code } from \"@alloy-js/core\";\nimport { VarDeclaration, VarDeclarationProps } from \"@alloy-js/typescript\";\n\nexport interface DynamicImportStatementProps extends Omit<\n VarDeclarationProps,\n \"initializer\"\n> {\n /**\n * The path of the module to import.\n */\n importPath: string;\n\n /**\n * The name of the export to import from the module.\n *\n * @defaultValue \"default\"\n */\n exportName?: string;\n}\n\n/**\n * Generates a dynamic import statement for a given module path and export name.\n *\n * @example\n * ```tsx\n * <DynamicImportStatement importPath=\"./my-module\" exportName=\"myExport\" const={true} name=\"myVar\" />\n * // const myVar = await import(\"./my-module\").then(m => m.myExport);\n * ```\n *\n * @param props - The properties for the dynamic import statement.\n * @returns A `VarDeclaration` component representing the dynamic import statement.\n */\nexport function DynamicImportStatement(props: DynamicImportStatementProps) {\n const {\n importPath,\n exportName = \"default\",\n const: isConst = true,\n ...rest\n } = props;\n\n return (\n <VarDeclaration\n const={isConst}\n {...rest}\n initializer={code`await import(\"${importPath}\").then(m => m.${exportName});`}></VarDeclaration>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"dynamic-import-statement.mjs","names":[],"sources":["../../../src/typescript/components/dynamic-import-statement.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 { code } from \"@alloy-js/core\";\nimport { VarDeclaration, VarDeclarationProps } from \"@alloy-js/typescript\";\n\nexport interface DynamicImportStatementProps extends Omit<\n VarDeclarationProps,\n \"initializer\"\n> {\n /**\n * The path of the module to import.\n */\n importPath: string;\n\n /**\n * The name of the export to import from the module.\n *\n * @defaultValue \"default\"\n */\n exportName?: string;\n}\n\n/**\n * Generates a dynamic import statement for a given module path and export name.\n *\n * @example\n * ```tsx\n * <DynamicImportStatement importPath=\"./my-module\" exportName=\"myExport\" const={true} name=\"myVar\" />\n * // const myVar = await import(\"./my-module\").then(m => m.myExport);\n * ```\n *\n * @param props - The properties for the dynamic import statement.\n * @returns A `VarDeclaration` component representing the dynamic import statement.\n */\nexport function DynamicImportStatement(props: DynamicImportStatementProps) {\n const {\n importPath,\n exportName = \"default\",\n const: isConst = true,\n ...rest\n } = props;\n\n return (\n <VarDeclaration\n const={isConst}\n {...rest}\n initializer={code`await import(\"${importPath}\").then(m => m.${exportName});`}></VarDeclaration>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkDA,SAAgB,uBAAuB,OAAoC;CACzE,MAAM,EACJ,YACA,aAAa,WACb,OAAO,UAAU,MACjB,GAAG,SACD;AAEJ,QACE,oBAAC,gBAAD;EACE,OAAO;EACP,GAAI;EACJ,aAAa,IAAI,iBAAiB,WAAW,iBAAiB,WAAW;EAAsB"}
|
|
@@ -2,13 +2,13 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2
2
|
const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
|
|
3
3
|
const require_core_contexts_context = require('../../core/contexts/context.cjs');
|
|
4
4
|
const require_typescript_components_typescript_file = require('./typescript-file.cjs');
|
|
5
|
-
let _stryke_path_file_path_fns = require("@stryke/path/file-path-fns");
|
|
6
|
-
let _alloy_js_core_jsx_runtime = require("@alloy-js/core/jsx-runtime");
|
|
7
5
|
let _alloy_js_core = require("@alloy-js/core");
|
|
6
|
+
let _stryke_path_file_path_fns = require("@stryke/path/file-path-fns");
|
|
8
7
|
let _stryke_path_append = require("@stryke/path/append");
|
|
9
8
|
let _stryke_path_replace = require("@stryke/path/replace");
|
|
10
9
|
let defu = require("defu");
|
|
11
10
|
defu = require_runtime.__toESM(defu);
|
|
11
|
+
let _alloy_js_core_jsx_runtime = require("@alloy-js/core/jsx-runtime");
|
|
12
12
|
let _stryke_type_checks_is_set = require("@stryke/type-checks/is-set");
|
|
13
13
|
|
|
14
14
|
//#region src/typescript/components/entry-file.tsx
|
|
@@ -27,16 +27,13 @@ function EntryFile(props) {
|
|
|
27
27
|
"typeDefinition"
|
|
28
28
|
]);
|
|
29
29
|
const context = require_core_contexts_context.usePowerlinesSafe();
|
|
30
|
-
const fullPath = (0, _alloy_js_core.computed)(() => context ? (0, _stryke_path_append.appendPath)(`${!(0, _stryke_type_checks_is_set.isSet)(tsx) ? path : (0, _stryke_path_replace.replaceExtension)(path)}${tsx ? ".tsx" : (0, _stryke_path_file_path_fns.hasFileExtension)(path) ? "" : ".ts"}`, (0, _stryke_path_replace.replacePath)(context.entryPath, context.
|
|
31
|
-
return (0, _alloy_js_core_jsx_runtime.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
},
|
|
35
|
-
get meta() {
|
|
36
|
-
return (0, defu.default)({ kind: "entry" }, meta ?? {}, { typeDefinition });
|
|
37
|
-
},
|
|
30
|
+
const fullPath = (0, _alloy_js_core.computed)(() => context ? (0, _stryke_path_append.appendPath)(`${!(0, _stryke_type_checks_is_set.isSet)(tsx) ? path : (0, _stryke_path_replace.replaceExtension)(path)}${tsx ? ".tsx" : (0, _stryke_path_file_path_fns.hasFileExtension)(path) ? "" : ".ts"}`, (0, _stryke_path_replace.replacePath)(context.entryPath, context.config.cwd)) : path);
|
|
31
|
+
return /* @__PURE__ */ (0, _alloy_js_core_jsx_runtime.jsx)(require_typescript_components_typescript_file.TypescriptFile, {
|
|
32
|
+
...rest,
|
|
33
|
+
path: fullPath.value,
|
|
34
|
+
meta: (0, defu.default)({ kind: "entry" }, meta ?? {}, { typeDefinition }),
|
|
38
35
|
children
|
|
39
|
-
})
|
|
36
|
+
});
|
|
40
37
|
}
|
|
41
38
|
|
|
42
39
|
//#endregion
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { usePowerlinesSafe } from "../../core/contexts/context.mjs";
|
|
2
2
|
import { TypescriptFile } from "./typescript-file.mjs";
|
|
3
|
-
import { hasFileExtension } from "@stryke/path/file-path-fns";
|
|
4
|
-
import { createComponent, mergeProps } from "@alloy-js/core/jsx-runtime";
|
|
5
3
|
import { computed, splitProps } from "@alloy-js/core";
|
|
4
|
+
import { hasFileExtension } from "@stryke/path/file-path-fns";
|
|
6
5
|
import { appendPath } from "@stryke/path/append";
|
|
7
6
|
import { replaceExtension, replacePath } from "@stryke/path/replace";
|
|
8
7
|
import defu from "defu";
|
|
8
|
+
import { jsx } from "@alloy-js/core/jsx-runtime";
|
|
9
9
|
import { isSet } from "@stryke/type-checks/is-set";
|
|
10
10
|
|
|
11
11
|
//#region src/typescript/components/entry-file.tsx
|
|
@@ -24,16 +24,13 @@ function EntryFile(props) {
|
|
|
24
24
|
"typeDefinition"
|
|
25
25
|
]);
|
|
26
26
|
const context = usePowerlinesSafe();
|
|
27
|
-
const fullPath = computed(() => context ? appendPath(`${!isSet(tsx) ? path : replaceExtension(path)}${tsx ? ".tsx" : hasFileExtension(path) ? "" : ".ts"}`, replacePath(context.entryPath, context.
|
|
28
|
-
return
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
},
|
|
32
|
-
get meta() {
|
|
33
|
-
return defu({ kind: "entry" }, meta ?? {}, { typeDefinition });
|
|
34
|
-
},
|
|
27
|
+
const fullPath = computed(() => context ? appendPath(`${!isSet(tsx) ? path : replaceExtension(path)}${tsx ? ".tsx" : hasFileExtension(path) ? "" : ".ts"}`, replacePath(context.entryPath, context.config.cwd)) : path);
|
|
28
|
+
return /* @__PURE__ */ jsx(TypescriptFile, {
|
|
29
|
+
...rest,
|
|
30
|
+
path: fullPath.value,
|
|
31
|
+
meta: defu({ kind: "entry" }, meta ?? {}, { typeDefinition }),
|
|
35
32
|
children
|
|
36
|
-
})
|
|
33
|
+
});
|
|
37
34
|
}
|
|
38
35
|
|
|
39
36
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-file.mjs","names":[],"sources":["../../../src/typescript/components/entry-file.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 { computed, splitProps } from \"@alloy-js/core\";\nimport { appendPath } from \"@stryke/path/append\";\nimport { hasFileExtension } from \"@stryke/path/file-path-fns\";\nimport { replaceExtension, replacePath } from \"@stryke/path/replace\";\nimport { isSet } from \"@stryke/type-checks/is-set\";\nimport defu from \"defu\";\nimport { ResolvedEntryTypeDefinition } from \"powerlines\";\nimport { usePowerlinesSafe } from \"../../core/contexts/context\";\nimport { TypescriptFile, TypescriptFileProps } from \"./typescript-file\";\n\nexport type EntryFileProps = TypescriptFileProps & {\n /**\n * Whether the file is a TSX file.\n *\n * @defaultValue false\n */\n tsx?: boolean;\n\n /**\n * Render metadata information about the entrypoint\n */\n typeDefinition?: ResolvedEntryTypeDefinition;\n};\n\n/**\n * A base component representing a Powerlines generated Typescript source file.\n *\n * @param props - The properties for the source file.\n * @returns The rendered source file component.\n */\nexport function EntryFile(props: EntryFileProps) {\n const [{ children, meta, tsx, path, typeDefinition }, rest] = splitProps(\n props,\n [\"children\", \"meta\", \"tsx\", \"path\", \"typeDefinition\"]\n );\n\n const context = usePowerlinesSafe();\n const fullPath = computed(() =>\n context\n ? appendPath(\n `${\n !isSet(tsx) ? path : replaceExtension(path)\n }${tsx ? \".tsx\" : hasFileExtension(path) ? \"\" : \".ts\"}`,\n replacePath(context.entryPath, context.
|
|
1
|
+
{"version":3,"file":"entry-file.mjs","names":[],"sources":["../../../src/typescript/components/entry-file.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 { computed, splitProps } from \"@alloy-js/core\";\nimport { appendPath } from \"@stryke/path/append\";\nimport { hasFileExtension } from \"@stryke/path/file-path-fns\";\nimport { replaceExtension, replacePath } from \"@stryke/path/replace\";\nimport { isSet } from \"@stryke/type-checks/is-set\";\nimport defu from \"defu\";\nimport { ResolvedEntryTypeDefinition } from \"powerlines\";\nimport { usePowerlinesSafe } from \"../../core/contexts/context\";\nimport { TypescriptFile, TypescriptFileProps } from \"./typescript-file\";\n\nexport type EntryFileProps = TypescriptFileProps & {\n /**\n * Whether the file is a TSX file.\n *\n * @defaultValue false\n */\n tsx?: boolean;\n\n /**\n * Render metadata information about the entrypoint\n */\n typeDefinition?: ResolvedEntryTypeDefinition;\n};\n\n/**\n * A base component representing a Powerlines generated Typescript source file.\n *\n * @param props - The properties for the source file.\n * @returns The rendered source file component.\n */\nexport function EntryFile(props: EntryFileProps) {\n const [{ children, meta, tsx, path, typeDefinition }, rest] = splitProps(\n props,\n [\"children\", \"meta\", \"tsx\", \"path\", \"typeDefinition\"]\n );\n\n const context = usePowerlinesSafe();\n const fullPath = computed(() =>\n context\n ? appendPath(\n `${\n !isSet(tsx) ? path : replaceExtension(path)\n }${tsx ? \".tsx\" : hasFileExtension(path) ? \"\" : \".ts\"}`,\n replacePath(context.entryPath, context.config.cwd)\n )\n : path\n );\n\n return (\n <TypescriptFile\n {...rest}\n path={fullPath.value}\n meta={defu(\n {\n kind: \"entry\"\n },\n meta ?? {},\n {\n typeDefinition\n }\n )}>\n {children}\n </TypescriptFile>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAgDA,SAAgB,UAAU,OAAuB;CAC/C,MAAM,CAAC,EAAE,UAAU,MAAM,KAAK,MAAM,kBAAkB,QAAQ,WAC5D,OACA;EAAC;EAAY;EAAQ;EAAO;EAAQ;EAAiB,CACtD;CAED,MAAM,UAAU,mBAAmB;CACnC,MAAM,WAAW,eACf,UACI,WACE,GACE,CAAC,MAAM,IAAI,GAAG,OAAO,iBAAiB,KAAK,GAC1C,MAAM,SAAS,iBAAiB,KAAK,GAAG,KAAK,SAChD,YAAY,QAAQ,WAAW,QAAQ,OAAO,IAAI,CACnD,GACD,KACL;AAED,QACE,oBAAC,gBAAD;EACE,GAAI;EACJ,MAAM,SAAS;EACf,MAAM,KACJ,EACE,MAAM,SACP,EACD,QAAQ,EAAE,EACV,EACE,gBACD,CACF;EACA;EACc"}
|