@marko/language-tools 2.1.6 → 2.1.7
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/index.js +9 -5
- package/dist/index.mjs +9 -5
- package/marko.internal.d.ts +86 -84
- package/package.json +10 -10
package/dist/index.js
CHANGED
|
@@ -2148,7 +2148,9 @@ constructor(_?: Return) {}
|
|
|
2148
2148
|
const renderId = this.#getRenderId(tag);
|
|
2149
2149
|
if (renderId) {
|
|
2150
2150
|
this.#extractor.write(
|
|
2151
|
-
`${varShared("assertRendered")}(${varShared(
|
|
2151
|
+
`${varShared("assertRendered")}(${varShared(
|
|
2152
|
+
"rendered"
|
|
2153
|
+
)}, ${renderId}, `
|
|
2152
2154
|
);
|
|
2153
2155
|
}
|
|
2154
2156
|
if (tagName) {
|
|
@@ -3276,7 +3278,9 @@ var marko_default = {
|
|
|
3276
3278
|
code += "<return ";
|
|
3277
3279
|
if (valueType) {
|
|
3278
3280
|
code += `= ${castType(
|
|
3279
|
-
typeChecker.typeToString(
|
|
3281
|
+
typeChecker.typeToString(
|
|
3282
|
+
typeChecker.getTypeOfSymbol(valueType)
|
|
3283
|
+
)
|
|
3280
3284
|
)}`;
|
|
3281
3285
|
} else {
|
|
3282
3286
|
code += `...${castType(typeChecker.typeToString(returnType))}`;
|
|
@@ -3384,13 +3388,11 @@ var HTMLExtractor = class {
|
|
|
3384
3388
|
#read;
|
|
3385
3389
|
#nodeDetails;
|
|
3386
3390
|
#nodeIdCounter;
|
|
3387
|
-
#dynamicAttrValueCounter;
|
|
3388
3391
|
constructor(parsed) {
|
|
3389
3392
|
this.#extractor = new Extractor(parsed);
|
|
3390
3393
|
this.#read = parsed.read.bind(parsed);
|
|
3391
3394
|
this.#nodeDetails = {};
|
|
3392
3395
|
this.#nodeIdCounter = 0;
|
|
3393
|
-
this.#dynamicAttrValueCounter = 0;
|
|
3394
3396
|
parsed.program.body.forEach((node) => this.#visitNode(node));
|
|
3395
3397
|
}
|
|
3396
3398
|
end() {
|
|
@@ -3423,6 +3425,8 @@ var HTMLExtractor = class {
|
|
|
3423
3425
|
start: node.start + 1,
|
|
3424
3426
|
end: node.start + 2
|
|
3425
3427
|
}) === "!";
|
|
3428
|
+
this.#extractor.write("placeholder");
|
|
3429
|
+
break;
|
|
3426
3430
|
}
|
|
3427
3431
|
return isDynamic || hasDynamicBody;
|
|
3428
3432
|
}
|
|
@@ -3495,7 +3499,7 @@ var HTMLExtractor = class {
|
|
|
3495
3499
|
this.#extractor.write('"');
|
|
3496
3500
|
break;
|
|
3497
3501
|
case 3 /* Dynamic */:
|
|
3498
|
-
this.#extractor.write(`="dynamic
|
|
3502
|
+
this.#extractor.write(`="dynamic"`);
|
|
3499
3503
|
break;
|
|
3500
3504
|
}
|
|
3501
3505
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -2116,7 +2116,9 @@ constructor(_?: Return) {}
|
|
|
2116
2116
|
const renderId = this.#getRenderId(tag);
|
|
2117
2117
|
if (renderId) {
|
|
2118
2118
|
this.#extractor.write(
|
|
2119
|
-
`${varShared("assertRendered")}(${varShared(
|
|
2119
|
+
`${varShared("assertRendered")}(${varShared(
|
|
2120
|
+
"rendered"
|
|
2121
|
+
)}, ${renderId}, `
|
|
2120
2122
|
);
|
|
2121
2123
|
}
|
|
2122
2124
|
if (tagName) {
|
|
@@ -3244,7 +3246,9 @@ var marko_default = {
|
|
|
3244
3246
|
code += "<return ";
|
|
3245
3247
|
if (valueType) {
|
|
3246
3248
|
code += `= ${castType(
|
|
3247
|
-
typeChecker.typeToString(
|
|
3249
|
+
typeChecker.typeToString(
|
|
3250
|
+
typeChecker.getTypeOfSymbol(valueType)
|
|
3251
|
+
)
|
|
3248
3252
|
)}`;
|
|
3249
3253
|
} else {
|
|
3250
3254
|
code += `...${castType(typeChecker.typeToString(returnType))}`;
|
|
@@ -3352,13 +3356,11 @@ var HTMLExtractor = class {
|
|
|
3352
3356
|
#read;
|
|
3353
3357
|
#nodeDetails;
|
|
3354
3358
|
#nodeIdCounter;
|
|
3355
|
-
#dynamicAttrValueCounter;
|
|
3356
3359
|
constructor(parsed) {
|
|
3357
3360
|
this.#extractor = new Extractor(parsed);
|
|
3358
3361
|
this.#read = parsed.read.bind(parsed);
|
|
3359
3362
|
this.#nodeDetails = {};
|
|
3360
3363
|
this.#nodeIdCounter = 0;
|
|
3361
|
-
this.#dynamicAttrValueCounter = 0;
|
|
3362
3364
|
parsed.program.body.forEach((node) => this.#visitNode(node));
|
|
3363
3365
|
}
|
|
3364
3366
|
end() {
|
|
@@ -3391,6 +3393,8 @@ var HTMLExtractor = class {
|
|
|
3391
3393
|
start: node.start + 1,
|
|
3392
3394
|
end: node.start + 2
|
|
3393
3395
|
}) === "!";
|
|
3396
|
+
this.#extractor.write("placeholder");
|
|
3397
|
+
break;
|
|
3394
3398
|
}
|
|
3395
3399
|
return isDynamic || hasDynamicBody;
|
|
3396
3400
|
}
|
|
@@ -3463,7 +3467,7 @@ var HTMLExtractor = class {
|
|
|
3463
3467
|
this.#extractor.write('"');
|
|
3464
3468
|
break;
|
|
3465
3469
|
case 3 /* Dynamic */:
|
|
3466
|
-
this.#extractor.write(`="dynamic
|
|
3470
|
+
this.#extractor.write(`="dynamic"`);
|
|
3467
3471
|
break;
|
|
3468
3472
|
}
|
|
3469
3473
|
}
|
package/marko.internal.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ declare global {
|
|
|
7
7
|
// Extend the Body type to keep track of what is yielded (used for scope hoisted types).
|
|
8
8
|
export interface Body<
|
|
9
9
|
in Params extends readonly any[] = [],
|
|
10
|
-
out Return = void
|
|
10
|
+
out Return = void,
|
|
11
11
|
> {
|
|
12
12
|
(...params: Params): MarkoReturn<Return>;
|
|
13
13
|
}
|
|
@@ -23,11 +23,11 @@ declare global {
|
|
|
23
23
|
export const any: any;
|
|
24
24
|
|
|
25
25
|
export function getGlobal<Override>(
|
|
26
|
-
override: Override
|
|
26
|
+
override: Override,
|
|
27
27
|
): 1 extends Override & 0 ? Marko.Global : Override;
|
|
28
28
|
|
|
29
29
|
export function attrTagNames<Input, Keys extends keyof Input>(
|
|
30
|
-
input: Input
|
|
30
|
+
input: Input,
|
|
31
31
|
): Record<string, never> & {
|
|
32
32
|
[Key in Keys as `@${Input[Key] extends infer Value
|
|
33
33
|
? Value extends { renderBody?: any }
|
|
@@ -58,7 +58,7 @@ declare global {
|
|
|
58
58
|
): string;
|
|
59
59
|
|
|
60
60
|
export function state<Component>(
|
|
61
|
-
component: Component
|
|
61
|
+
component: Component,
|
|
62
62
|
): Component extends {
|
|
63
63
|
state: infer State extends object;
|
|
64
64
|
}
|
|
@@ -71,13 +71,13 @@ declare global {
|
|
|
71
71
|
>;
|
|
72
72
|
|
|
73
73
|
export function instance<Constructor>(
|
|
74
|
-
constructor: Constructor
|
|
74
|
+
constructor: Constructor,
|
|
75
75
|
): Constructor extends abstract new (...args: any) => infer Instance
|
|
76
76
|
? Instance
|
|
77
77
|
: never;
|
|
78
78
|
|
|
79
79
|
export function readScopes<Rendered>(
|
|
80
|
-
rendered: Rendered
|
|
80
|
+
rendered: Rendered,
|
|
81
81
|
): MergeScopes<
|
|
82
82
|
Rendered extends { scopes: Record<any, infer Scope> } ? Scope : never
|
|
83
83
|
> &
|
|
@@ -86,7 +86,7 @@ declare global {
|
|
|
86
86
|
export function assertRendered<Index extends number, Rendered, Result>(
|
|
87
87
|
rendered: Rendered,
|
|
88
88
|
index: Index,
|
|
89
|
-
result: Result
|
|
89
|
+
result: Result,
|
|
90
90
|
): asserts rendered is Rendered & {
|
|
91
91
|
scopes: Record<
|
|
92
92
|
Index,
|
|
@@ -123,7 +123,7 @@ declare global {
|
|
|
123
123
|
| ((...args: any) => any)
|
|
124
124
|
| false
|
|
125
125
|
| void,
|
|
126
|
-
Args extends readonly any[]
|
|
126
|
+
Args extends readonly any[],
|
|
127
127
|
>(
|
|
128
128
|
owner: Owner,
|
|
129
129
|
handler: Handler,
|
|
@@ -135,20 +135,20 @@ declare global {
|
|
|
135
135
|
: (...args: any) => any; // If typescript ever actually supports partial application maybe we do this.
|
|
136
136
|
|
|
137
137
|
export function renderTemplate<Name extends Marko.Template>(
|
|
138
|
-
imported: Promise<{ default: Name }
|
|
138
|
+
imported: Promise<{ default: Name }>,
|
|
139
139
|
): TemplateRenderer<Name>;
|
|
140
140
|
export function renderNativeTag<Name extends string>(
|
|
141
|
-
tag: Name
|
|
141
|
+
tag: Name,
|
|
142
142
|
): NativeTagRenderer<Name>;
|
|
143
143
|
export const missingTag: DefaultRenderer;
|
|
144
144
|
export function renderPreferLocal<Name, Fallback>(
|
|
145
145
|
name: Name,
|
|
146
|
-
fallback: Fallback
|
|
146
|
+
fallback: Fallback,
|
|
147
147
|
): 0 extends 1 & Name ? Fallback : DynamicRenderer<Name>;
|
|
148
148
|
export function renderDynamicTag<Name>(tag: Name): DynamicRenderer<Name>;
|
|
149
149
|
|
|
150
150
|
export function returnTag<
|
|
151
|
-
Input extends { value: unknown; valueChange?: (value: any) => void }
|
|
151
|
+
Input extends { value: unknown; valueChange?: (value: any) => void },
|
|
152
152
|
>(input: Input): Input;
|
|
153
153
|
|
|
154
154
|
export function forTag<
|
|
@@ -159,10 +159,10 @@ declare global {
|
|
|
159
159
|
? Item
|
|
160
160
|
: unknown,
|
|
161
161
|
index: number,
|
|
162
|
-
all: Value
|
|
162
|
+
all: Value,
|
|
163
163
|
],
|
|
164
164
|
void
|
|
165
|
-
|
|
165
|
+
>,
|
|
166
166
|
>(input: {
|
|
167
167
|
of: Value;
|
|
168
168
|
renderBody: RenderBody;
|
|
@@ -173,7 +173,7 @@ declare global {
|
|
|
173
173
|
RenderBody extends Marko.Body<
|
|
174
174
|
[key: keyof Value, value: Value[keyof Value]],
|
|
175
175
|
void
|
|
176
|
-
|
|
176
|
+
>,
|
|
177
177
|
>(input: {
|
|
178
178
|
in: Value;
|
|
179
179
|
renderBody: RenderBody;
|
|
@@ -183,7 +183,7 @@ declare global {
|
|
|
183
183
|
From extends void | number,
|
|
184
184
|
To extends number,
|
|
185
185
|
Step extends void | number,
|
|
186
|
-
RenderBody extends Marko.Body<[index: number], void
|
|
186
|
+
RenderBody extends Marko.Body<[index: number], void>,
|
|
187
187
|
>(input: {
|
|
188
188
|
from?: From;
|
|
189
189
|
to: To;
|
|
@@ -204,12 +204,12 @@ declare global {
|
|
|
204
204
|
| {
|
|
205
205
|
of: readonly unknown[] | Iterable<unknown>;
|
|
206
206
|
}
|
|
207
|
-
) & { renderBody?: RenderBody }
|
|
207
|
+
) & { renderBody?: RenderBody },
|
|
208
208
|
): ReturnAndScope<RenderBodyScope<RenderBody>, void>;
|
|
209
209
|
|
|
210
210
|
export function forAttrTag<
|
|
211
211
|
Value extends Iterable<any> | readonly any[],
|
|
212
|
-
Return
|
|
212
|
+
Return,
|
|
213
213
|
>(
|
|
214
214
|
input: {
|
|
215
215
|
of: Value;
|
|
@@ -219,8 +219,8 @@ declare global {
|
|
|
219
219
|
? Item
|
|
220
220
|
: unknown,
|
|
221
221
|
index: number,
|
|
222
|
-
all: Value
|
|
223
|
-
) => Return
|
|
222
|
+
all: Value,
|
|
223
|
+
) => Return,
|
|
224
224
|
): {
|
|
225
225
|
[Key in keyof Return]: Return[Key] extends
|
|
226
226
|
| readonly (infer Item)[]
|
|
@@ -233,7 +233,7 @@ declare global {
|
|
|
233
233
|
input: {
|
|
234
234
|
in: Value;
|
|
235
235
|
},
|
|
236
|
-
renderBody: (key: keyof Value, value: Value[keyof Value]) => Return
|
|
236
|
+
renderBody: (key: keyof Value, value: Value[keyof Value]) => Return,
|
|
237
237
|
): {
|
|
238
238
|
[Key in keyof Return]: Return[Key] extends
|
|
239
239
|
| readonly (infer Item)[]
|
|
@@ -246,14 +246,14 @@ declare global {
|
|
|
246
246
|
From extends void | number,
|
|
247
247
|
To extends number,
|
|
248
248
|
Step extends void | number,
|
|
249
|
-
Return
|
|
249
|
+
Return,
|
|
250
250
|
>(
|
|
251
251
|
input: {
|
|
252
252
|
from?: From;
|
|
253
253
|
to: To;
|
|
254
254
|
step?: Step;
|
|
255
255
|
},
|
|
256
|
-
renderBody: (index: number) => Return
|
|
256
|
+
renderBody: (index: number) => Return,
|
|
257
257
|
): {
|
|
258
258
|
[Key in keyof Return]: Return[Key] extends
|
|
259
259
|
| readonly (infer Item)[]
|
|
@@ -261,10 +261,10 @@ declare global {
|
|
|
261
261
|
? number extends From | To | Step
|
|
262
262
|
? MaybeRepeatable<Item>
|
|
263
263
|
: Step extends 0
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
264
|
+
? never
|
|
265
|
+
: [To] extends [From extends void ? 0 : From]
|
|
266
|
+
? undefined
|
|
267
|
+
: Repeatable<Item>
|
|
268
268
|
: never;
|
|
269
269
|
};
|
|
270
270
|
|
|
@@ -299,29 +299,31 @@ declare global {
|
|
|
299
299
|
export type DynamicRenderer<Name> = 0 extends 1 & Name
|
|
300
300
|
? DefaultRenderer
|
|
301
301
|
: [Name] extends [Marko.Template]
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
302
|
+
? TemplateRenderer<Name>
|
|
303
|
+
: [Name] extends [string]
|
|
304
|
+
? NativeTagRenderer<Name>
|
|
305
|
+
: [Name] extends [AnyMarkoBody]
|
|
306
|
+
? BodyRenderer<Name>
|
|
307
|
+
: [Name] extends [{ renderBody?: AnyMarkoBody }]
|
|
308
|
+
? [Name["renderBody"]] extends [AnyMarkoBody]
|
|
309
|
+
? BodyRenderer<Name["renderBody"]>
|
|
310
|
+
: BaseRenderer<
|
|
311
|
+
RenderBodyInput<
|
|
312
|
+
BodyParameters<Exclude<Name["renderBody"], void>>
|
|
313
|
+
>
|
|
314
|
+
>
|
|
315
|
+
: DefaultRenderer;
|
|
314
316
|
|
|
315
317
|
export type TemplateRenderer<Template> = Template extends {
|
|
316
318
|
_: infer Renderer;
|
|
317
319
|
}
|
|
318
320
|
? Renderer
|
|
319
321
|
: Template extends Marko.Template<
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
322
|
+
infer Input extends Record<string, unknown>,
|
|
323
|
+
infer Return
|
|
324
|
+
>
|
|
325
|
+
? BaseRenderer<Input, Return>
|
|
326
|
+
: never;
|
|
325
327
|
|
|
326
328
|
export interface NativeTagRenderer<Name extends string> {
|
|
327
329
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint
|
|
@@ -331,7 +333,7 @@ declare global {
|
|
|
331
333
|
Relate<
|
|
332
334
|
__marko_internal_input,
|
|
333
335
|
Marko.Directives & Marko.NativeTags[Name]["input"]
|
|
334
|
-
|
|
336
|
+
>,
|
|
335
337
|
) => ReturnAndScope<
|
|
336
338
|
Scopes<__marko_internal_input>,
|
|
337
339
|
Marko.NativeTags[Name]["return"]
|
|
@@ -346,7 +348,7 @@ declare global {
|
|
|
346
348
|
Relate<
|
|
347
349
|
__marko_internal_input,
|
|
348
350
|
Marko.Directives & RenderBodyInput<BodyParameters<Body>>
|
|
349
|
-
|
|
351
|
+
>,
|
|
350
352
|
) => ReturnAndScope<
|
|
351
353
|
Scopes<__marko_internal_input>,
|
|
352
354
|
BodyReturnType<Body>
|
|
@@ -355,19 +357,19 @@ declare global {
|
|
|
355
357
|
|
|
356
358
|
export interface BaseRenderer<
|
|
357
359
|
Input extends Record<PropertyKey, unknown>,
|
|
358
|
-
Return = void
|
|
360
|
+
Return = void,
|
|
359
361
|
> {
|
|
360
362
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint
|
|
361
363
|
(): () => <__marko_input_with_scope extends unknown>(
|
|
362
364
|
input: Marko.Directives &
|
|
363
365
|
Input &
|
|
364
|
-
Relate<__marko_input_with_scope, Marko.Directives & Input
|
|
366
|
+
Relate<__marko_input_with_scope, Marko.Directives & Input>,
|
|
365
367
|
) => ReturnAndScope<Scopes<__marko_input_with_scope>, Return>;
|
|
366
368
|
}
|
|
367
369
|
|
|
368
370
|
export interface DefaultRenderer {
|
|
369
371
|
(): () => <Input extends Record<PropertyKey, unknown>>(
|
|
370
|
-
input: Input
|
|
372
|
+
input: Input,
|
|
371
373
|
) => ReturnAndScope<Scopes<Input>, void>;
|
|
372
374
|
}
|
|
373
375
|
|
|
@@ -399,15 +401,15 @@ type RenderBodyInput<Args extends readonly unknown[]> = Args extends {
|
|
|
399
401
|
? number extends Length
|
|
400
402
|
? { value?: Args }
|
|
401
403
|
: 0 extends Length
|
|
402
|
-
|
|
403
|
-
|
|
404
|
+
? { value?: [] }
|
|
405
|
+
: { value: Args }
|
|
404
406
|
: never;
|
|
405
407
|
|
|
406
408
|
type Scopes<Input> = 0 extends 1 & Input
|
|
407
409
|
? never
|
|
408
410
|
: Input extends Record<any, unknown>
|
|
409
|
-
|
|
410
|
-
|
|
411
|
+
? MergeScopes<FlatScopes<Input>>
|
|
412
|
+
: never;
|
|
411
413
|
|
|
412
414
|
type ComponentEventHandlers<Component extends Marko.Component> = {
|
|
413
415
|
[K in Exclude<
|
|
@@ -424,14 +426,14 @@ type FlatScopes<Input extends object, Objects = Input> = Input[keyof Input &
|
|
|
424
426
|
? 0 extends 1 & Prop
|
|
425
427
|
? unknown
|
|
426
428
|
: Prop extends (...args: any) => { [Marko._.scope]: infer Scope }
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
429
|
+
? unknown extends Scope
|
|
430
|
+
? never
|
|
431
|
+
: Scope
|
|
432
|
+
: Prop extends object
|
|
433
|
+
? Prop extends Extract<Objects, Prop>
|
|
434
|
+
? never
|
|
435
|
+
: FlatScopes<Prop, Objects | Prop>
|
|
436
|
+
: never
|
|
435
437
|
: unknown;
|
|
436
438
|
|
|
437
439
|
type MergeScopes<Scopes> = {
|
|
@@ -451,12 +453,12 @@ type MergeOptionalScopes<Scopes> = {
|
|
|
451
453
|
type MergeAttrTags<Attrs extends readonly any[]> = Attrs extends readonly [
|
|
452
454
|
infer A,
|
|
453
455
|
infer B,
|
|
454
|
-
...infer Rest
|
|
456
|
+
...infer Rest,
|
|
455
457
|
]
|
|
456
458
|
? MergeAttrTags<[MergeAttrTag<A, B>, ...Rest]>
|
|
457
459
|
: Attrs extends readonly [infer A]
|
|
458
|
-
|
|
459
|
-
|
|
460
|
+
? A
|
|
461
|
+
: never;
|
|
460
462
|
|
|
461
463
|
type MergeAttrTag<A, B> = {
|
|
462
464
|
[K in keyof A | keyof B]: K extends keyof A
|
|
@@ -464,21 +466,21 @@ type MergeAttrTag<A, B> = {
|
|
|
464
466
|
? MergeAttrTagValue<A[K], B[K]>
|
|
465
467
|
: A[K]
|
|
466
468
|
: K extends keyof B
|
|
467
|
-
|
|
468
|
-
|
|
469
|
+
? B[K]
|
|
470
|
+
: never;
|
|
469
471
|
};
|
|
470
472
|
|
|
471
473
|
type MergeAttrTagValue<A, B> = A extends readonly any[]
|
|
472
474
|
? B extends readonly any[]
|
|
473
475
|
? [...A, ...B]
|
|
474
476
|
: B extends void
|
|
475
|
-
|
|
476
|
-
|
|
477
|
+
? A
|
|
478
|
+
: [...A, B]
|
|
477
479
|
: A extends void
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
480
|
+
? B
|
|
481
|
+
: B extends void
|
|
482
|
+
? A
|
|
483
|
+
: [A, B];
|
|
482
484
|
|
|
483
485
|
type AttrTagByListSize<T, Item> = T extends
|
|
484
486
|
| readonly [any, any, ...any[]]
|
|
@@ -486,18 +488,18 @@ type AttrTagByListSize<T, Item> = T extends
|
|
|
486
488
|
| readonly [any, ...any[], any]
|
|
487
489
|
? Repeated<Item>
|
|
488
490
|
: T extends readonly [any]
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
491
|
+
? Item
|
|
492
|
+
: T extends readonly [any, ...any[]] | readonly [...any[], any]
|
|
493
|
+
? Repeatable<Item>
|
|
494
|
+
: T extends readonly []
|
|
495
|
+
? undefined
|
|
496
|
+
: MaybeRepeatable<Item>;
|
|
495
497
|
|
|
496
498
|
type AttrTagByObjectSize<
|
|
497
499
|
Value,
|
|
498
500
|
Item,
|
|
499
501
|
Keys = RecordKeys<Value>,
|
|
500
|
-
KnownKeys = KnownRecordKeys<Value
|
|
502
|
+
KnownKeys = KnownRecordKeys<Value>,
|
|
501
503
|
> = CheckNever<
|
|
502
504
|
Keys,
|
|
503
505
|
undefined,
|
|
@@ -527,16 +529,16 @@ type KnownRecordKeys<T> = keyof {
|
|
|
527
529
|
[Key in keyof T as string extends Key
|
|
528
530
|
? never
|
|
529
531
|
: number extends Key
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
532
|
+
? never
|
|
533
|
+
: symbol extends Key
|
|
534
|
+
? never
|
|
535
|
+
: CheckNever<T[Key], never, Key>]: 0;
|
|
534
536
|
};
|
|
535
537
|
|
|
536
538
|
type CheckNever<T, If, Else> = [T] extends [never] ? If : Else;
|
|
537
539
|
|
|
538
540
|
type UnionToIntersection<T> = (T extends any ? (_: T) => any : never) extends (
|
|
539
|
-
_: infer U
|
|
541
|
+
_: infer U,
|
|
540
542
|
) => any
|
|
541
543
|
? U
|
|
542
544
|
: never;
|
package/package.json
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marko/language-tools",
|
|
3
3
|
"description": "Marko Language Tools",
|
|
4
|
-
"version": "2.1.
|
|
4
|
+
"version": "2.1.7",
|
|
5
5
|
"bugs": "https://github.com/marko-js/language-server/issues/new?template=Bug_report.md",
|
|
6
6
|
"peerDependencies": {
|
|
7
7
|
"@marko/compiler": "^5.28.4"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@babel/helper-validator-identifier": "^7.22.20",
|
|
11
|
-
"@babel/parser": "^7.23.
|
|
12
|
-
"htmljs-parser": "^5.5.
|
|
11
|
+
"@babel/parser": "^7.23.5",
|
|
12
|
+
"htmljs-parser": "^5.5.1",
|
|
13
13
|
"relative-import-path": "^1.0.0"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
-
"@babel/code-frame": "^7.
|
|
17
|
-
"@marko/compiler": "^5.
|
|
18
|
-
"@marko/translator-default": "^5.31.
|
|
19
|
-
"@types/babel__code-frame": "^7.0.
|
|
20
|
-
"@types/babel__helper-validator-identifier": "^7.15.
|
|
16
|
+
"@babel/code-frame": "^7.23.5",
|
|
17
|
+
"@marko/compiler": "^5.34.1",
|
|
18
|
+
"@marko/translator-default": "^5.31.8",
|
|
19
|
+
"@types/babel__code-frame": "^7.0.6",
|
|
20
|
+
"@types/babel__helper-validator-identifier": "^7.15.2",
|
|
21
21
|
"@typescript/vfs": "^1.5.0",
|
|
22
|
-
"marko": "^5.
|
|
22
|
+
"marko": "^5.32.0",
|
|
23
23
|
"mitata": "^0.1.6",
|
|
24
|
-
"tsx": "^
|
|
24
|
+
"tsx": "^4.6.2"
|
|
25
25
|
},
|
|
26
26
|
"exports": {
|
|
27
27
|
".": {
|