@@ -125,7 +125,7 @@ export interface SvelteHTMLElement extends BaseSvelteElement {
125
125
| SvelteProgram
126
126
| SvelteElement
127
127
| SvelteIfBlock
128
- | SvelteElseBlock
128
+ | SvelteElseBlockAlone
129
129
| SvelteEachBlock
130
130
| SvelteAwaitPendingBlock
131
131
| SvelteAwaitThenBlock
@@ -144,7 +144,7 @@ export interface SvelteComponentElement extends BaseSvelteElement {
144
144
| SvelteProgram
145
145
| SvelteElement
146
146
| SvelteIfBlock
147
- | SvelteElseBlock
147
+ | SvelteElseBlockAlone
148
148
| SvelteEachBlock
149
149
| SvelteAwaitPendingBlock
150
150
| SvelteAwaitThenBlock
@@ -163,7 +163,7 @@ export interface SvelteSpecialElement extends BaseSvelteElement {
163
163
| SvelteProgram
164
164
| SvelteElement
165
165
| SvelteIfBlock
166
- | SvelteElseBlock
166
+ | SvelteElseBlockAlone
167
167
| SvelteEachBlock
168
168
| SvelteAwaitPendingBlock
169
169
| SvelteAwaitThenBlock
@@ -215,7 +215,7 @@ type Child =
215
215
| SvelteText
216
216
| SvelteMustacheTag
217
217
| SvelteDebugTag
218
- | SvelteIfBlock
218
+ | SvelteIfBlockAlone
219
219
| SvelteEachBlock
220
220
| SvelteAwaitBlock
221
221
| SvelteKeyBlock
@@ -230,7 +230,7 @@ export interface SvelteText extends BaseNode {
230
230
| SvelteElement
231
231
| SvelteStyleElement
232
232
| SvelteIfBlock
233
- | SvelteElseBlock
233
+ | SvelteElseBlockAlone
234
234
| SvelteEachBlock
235
235
| SvelteAwaitPendingBlock
236
236
| SvelteAwaitThenBlock
@@ -244,32 +244,51 @@ export interface SvelteLiteral extends BaseNode {
244
244
parent : SvelteAttribute
245
245
}
246
246
247
+ /** Node of mustache tag. e.g. `{...}`, `{@html ...}`. Like JSXExpressionContainer */
248
+ export type SvelteMustacheTag = SvelteMustacheTagText | SvelteMustacheTagRaw
247
249
interface BaseSvelteMustacheTag extends BaseNode {
250
+ type : "SvelteMustacheTag"
251
+ kind : "text" | "raw"
252
+ expression : ESTree . Expression
248
253
parent :
249
254
| SvelteProgram
250
255
| SvelteElement
251
256
| SvelteIfBlock
252
- | SvelteElseBlock
257
+ | SvelteElseBlockAlone
253
258
| SvelteEachBlock
254
259
| SvelteAwaitPendingBlock
255
260
| SvelteAwaitThenBlock
256
261
| SvelteAwaitCatchBlock
257
262
| SvelteKeyBlock
258
263
| SvelteAttribute
259
264
}
260
- /** Node of mustache tag. e.g. `{...}`, `{@html ...}`. Like JSXExpressionContainer */
261
- export interface SvelteMustacheTag extends BaseSvelteMustacheTag {
262
- type : "SvelteMustacheTag"
263
- kind : "text" | "raw"
264
- expression : ESTree . Expression
265
+ /** Node of mustache tag. e.g. `{...}``. Like JSXExpressionContainer */
266
+ export interface SvelteMustacheTagText extends BaseSvelteMustacheTag {
267
+ kind : "text"
268
+ }
269
+ /** Node of mustache tag. e.g. `{@html ...}`. Like JSXExpressionContainer */
270
+ export interface SvelteMustacheTagRaw extends BaseSvelteMustacheTag {
271
+ kind : "raw"
265
272
}
266
273
/** Node of debug mustache tag. e.g. `{@debug }` */
267
- export interface SvelteDebugTag extends BaseSvelteMustacheTag {
274
+ export interface SvelteDebugTag extends BaseNode {
268
275
type : "SvelteDebugTag"
269
276
identifiers : ESTree . Identifier [ ]
277
+ parent :
278
+ | SvelteProgram
279
+ | SvelteElement
280
+ | SvelteIfBlock
281
+ | SvelteElseBlockAlone
282
+ | SvelteEachBlock
283
+ | SvelteAwaitPendingBlock
284
+ | SvelteAwaitThenBlock
285
+ | SvelteAwaitCatchBlock
286
+ | SvelteKeyBlock
287
+ | SvelteAttribute
270
288
}
271
289
/** Node of if block. e.g. `{#if}` */
272
- export interface SvelteIfBlock extends BaseNode {
290
+ export type SvelteIfBlock = SvelteIfBlockAlone | SvelteIfBlockElseIf
291
+ interface BaseSvelteIfBlock extends BaseNode {
273
292
type : "SvelteIfBlock"
274
293
elseif : boolean
275
294
expression : ESTree . Expression
@@ -286,12 +305,35 @@ export interface SvelteIfBlock extends BaseNode {
286
305
| SvelteAwaitCatchBlock
287
306
| SvelteKeyBlock
288
307
}
308
+ /** Node of if block. e.g. `{#if}` */
309
+ export interface SvelteIfBlockAlone extends BaseSvelteIfBlock {
310
+ elseif : false
311
+ parent : Exclude < BaseSvelteIfBlock [ "parent" ] , SvelteElseBlockElseIf >
312
+ }
313
+ /** Node of if block. e.g. `{:else #if}` */
314
+ export interface SvelteIfBlockElseIf extends BaseSvelteIfBlock {
315
+ elseif : true
316
+ parent : SvelteElseBlockElseIf
317
+ }
318
+
289
319
/** Node of else block. e.g. `{:else}` */
290
- export interface SvelteElseBlock extends BaseNode {
320
+ export type SvelteElseBlock = SvelteElseBlockAlone | SvelteElseBlockElseIf
321
+ interface BaseSvelteElseBlock extends BaseNode {
291
322
type : "SvelteElseBlock"
292
- children : Child [ ]
323
+ elseif : boolean
324
+ children : ( Child | SvelteIfBlockElseIf ) [ ]
293
325
parent : SvelteIfBlock | SvelteEachBlock
294
326
}
327
+ /** Node of else block. e.g. `{:else}` */
328
+ export interface SvelteElseBlockAlone extends BaseSvelteElseBlock {
329
+ elseif : false
330
+ children : Child [ ]
331
+ }
332
+ /** Node of else block. e.g. `{:else if ...}` */
333
+ export interface SvelteElseBlockElseIf extends BaseSvelteElseBlock {
334
+ elseif : true
335
+ children : [ SvelteIfBlockElseIf ]
336
+ }
295
337
/** Node of each block. e.g. `{#each}` */
296
338
export interface SvelteEachBlock extends BaseNode {
297
339
type : "SvelteEachBlock"
@@ -300,56 +342,116 @@ export interface SvelteEachBlock extends BaseNode {
300
342
index : ESTree . Identifier | null
301
343
key : ESTree . Expression | null
302
344
children : Child [ ]
303
- else : SvelteElseBlock | null
345
+ else : SvelteElseBlockAlone | null
304
346
parent :
305
347
| SvelteProgram
306
348
| SvelteElement
307
349
| SvelteIfBlock
308
- | SvelteElseBlock
350
+ | SvelteElseBlockAlone
309
351
| SvelteEachBlock
310
352
| SvelteAwaitPendingBlock
311
353
| SvelteAwaitThenBlock
312
354
| SvelteAwaitCatchBlock
313
355
| SvelteKeyBlock
314
356
}
315
- /** Node of await block. e.g. `{#await}` */
316
- export interface SvelteAwaitBlock extends BaseNode {
357
+ /** Node of await block. e.g. `{#await}`, `{#await ... then ... }`, `{#await ... catch ... }` */
358
+ export type SvelteAwaitBlock =
359
+ | SvelteAwaitBlockAwaitPending
360
+ | SvelteAwaitBlockAwaitThen
361
+ | SvelteAwaitBlockAwaitCatch
362
+ interface BaseSvelteAwaitBlock extends BaseNode {
317
363
type : "SvelteAwaitBlock"
318
364
expression : ESTree . Expression
365
+ kind : "await" | "await-then" | "await-catch"
319
366
pending : SvelteAwaitPendingBlock | null
320
367
then : SvelteAwaitThenBlock | null
321
368
catch : SvelteAwaitCatchBlock | null
322
369
parent :
323
370
| SvelteProgram
324
371
| SvelteElement
325
372
| SvelteIfBlock
326
- | SvelteElseBlock
373
+ | SvelteElseBlockAlone
327
374
| SvelteEachBlock
328
375
| SvelteAwaitPendingBlock
329
376
| SvelteAwaitThenBlock
330
377
| SvelteAwaitCatchBlock
331
378
| SvelteKeyBlock
332
379
}
380
+ /** Node of await block. e.g. `{#await}` */
381
+ export interface SvelteAwaitBlockAwaitPending extends BaseSvelteAwaitBlock {
382
+ kind : "await"
383
+ pending : SvelteAwaitPendingBlock
384
+ then : SvelteAwaitThenBlockAlone | null
385
+ catch : SvelteAwaitCatchBlockAlone | null
386
+ }
387
+ /** Node of await block. e.g. `{#await ... then ... }` */
388
+ export interface SvelteAwaitBlockAwaitThen extends BaseSvelteAwaitBlock {
389
+ kind : "await-then"
390
+ pending : null
391
+ then : SvelteAwaitThenBlockAwaitThen
392
+ catch : SvelteAwaitCatchBlockAlone | null
393
+ }
394
+ /** Node of await block. e.g. `{#await ... catch ... }` */
395
+ export interface SvelteAwaitBlockAwaitCatch extends BaseSvelteAwaitBlock {
396
+ kind : "await-catch"
397
+ pending : null
398
+ then : null
399
+ catch : SvelteAwaitCatchBlockAwaitCatch
400
+ }
401
+
333
402
/** Node of await pending block. e.g. `{#await expr} ... {:then}` */
334
403
export interface SvelteAwaitPendingBlock extends BaseNode {
335
404
type : "SvelteAwaitPendingBlock"
336
405
children : Child [ ]
337
406
parent : SvelteAwaitBlock
338
407
}
339
- /** Node of await then block. e.g. `{:then}` */
340
- export interface SvelteAwaitThenBlock extends BaseNode {
408
+ /** Node of await then block. e.g. `{:then}`, `{#await ... then ...}` */
409
+ export type SvelteAwaitThenBlock =
410
+ | SvelteAwaitThenBlockAlone
411
+ | SvelteAwaitThenBlockAwaitThen
412
+ interface BaseSvelteAwaitThenBlock extends BaseNode {
341
413
type : "SvelteAwaitThenBlock"
414
+ awaitThen : boolean
342
415
value : ESTree . Pattern | null
343
416
children : Child [ ]
344
417
parent : SvelteAwaitBlock
345
418
}
346
- /** Node of await catch block. e.g. `{:catch}` */
347
- export interface SvelteAwaitCatchBlock extends BaseNode {
419
+ /** Node of await then block. e.g. `{:then}` */
420
+ export interface SvelteAwaitThenBlockAlone extends BaseSvelteAwaitThenBlock {
421
+ awaitThen : false
422
+ parent : SvelteAwaitBlockAwaitPending
423
+ }
424
+ /** Node of await then block. e.g. `{#await ... then ...}` */
425
+ export interface SvelteAwaitThenBlockAwaitThen
426
+ extends BaseSvelteAwaitThenBlock {
427
+ awaitThen : true
428
+ parent : SvelteAwaitBlockAwaitThen
429
+ }
430
+
431
+ /** Node of await catch block. e.g. `{:catch}`, `{#await ... catch ... }` */
432
+ export type SvelteAwaitCatchBlock =
433
+ | SvelteAwaitCatchBlockAlone
434
+ | SvelteAwaitCatchBlockAwaitCatch
435
+ interface BaseSvelteAwaitCatchBlock extends BaseNode {
348
436
type : "SvelteAwaitCatchBlock"
437
+ awaitCatch : boolean
349
438
error : ESTree . Pattern | null
350
439
children : Child [ ]
351
440
parent : SvelteAwaitBlock
352
441
}
442
+ /** Node of await catch block. e.g. `{:catch}` */
443
+ export interface SvelteAwaitCatchBlockAlone extends BaseSvelteAwaitCatchBlock {
444
+ awaitCatch : false
445
+ parent : SvelteAwaitBlockAwaitPending | SvelteAwaitBlockAwaitThen
446
+ }
447
+ /** Node of await catch block. e.g. `{#await ... catch ... }` */
448
+ export interface SvelteAwaitCatchBlockAwaitCatch
449
+ extends BaseSvelteAwaitCatchBlock {
450
+ awaitCatch : true
451
+ error : ESTree . Pattern | null
452
+ children : Child [ ]
453
+ parent : SvelteAwaitBlockAwaitCatch
454
+ }
353
455
/** Node of key block. e.g. `{#key}` */
354
456
export interface SvelteKeyBlock extends BaseNode {
355
457
type : "SvelteKeyBlock"
@@ -359,7 +461,7 @@ export interface SvelteKeyBlock extends BaseNode {
359
461
| SvelteProgram
360
462
| SvelteElement
361
463
| SvelteIfBlock
362
- | SvelteElseBlock
464
+ | SvelteElseBlockAlone
363
465
| SvelteEachBlock
364
466
| SvelteAwaitPendingBlock
365
467
| SvelteAwaitThenBlock
@@ -374,7 +476,7 @@ export interface SvelteHTMLComment extends BaseNode {
374
476
| SvelteProgram
375
477
| SvelteElement
376
478
| SvelteIfBlock
377
- | SvelteElseBlock
479
+ | SvelteElseBlockAlone
378
480
| SvelteEachBlock
379
481
| SvelteAwaitPendingBlock
380
482
| SvelteAwaitThenBlock
0 commit comments