1
1
/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-redundant-type-constituents */
2
- import type * as Svelte from 'svelte'
2
+ import type {
3
+ Component as ModernComponent ,
4
+ ComponentConstructorOptions as LegacyConstructorOptions ,
5
+ ComponentProps ,
6
+ mount ,
7
+ SvelteComponent as LegacyComponent ,
8
+ } from 'svelte'
3
9
4
- type IS_MODERN_SVELTE = Svelte . Component extends ( ...args : any [ ] ) => any
10
+ type IS_MODERN_SVELTE = ModernComponent extends ( ...args : any [ ] ) => any
5
11
? true
6
12
: false
7
13
8
14
/** A compiled, imported Svelte component. */
9
15
export type Component <
10
- P extends Record < string , any > ,
11
- E extends Record < string , any > ,
16
+ P extends Record < string , any > = any ,
17
+ E extends Record < string , any > = any ,
12
18
> = IS_MODERN_SVELTE extends true
13
- ? Svelte . Component < P , E > | Svelte . SvelteComponent < P >
14
- : Svelte . SvelteComponent < P >
19
+ ? ModernComponent < P , E > | LegacyComponent < P >
20
+ : LegacyComponent < P >
15
21
16
22
/**
17
23
* The type of an imported, compiled Svelte component.
@@ -24,17 +30,17 @@ export type ComponentType<C> = IS_MODERN_SVELTE extends true
24
30
: new ( ...args : any [ ] ) => C
25
31
26
32
/** The props of a component. */
27
- export type Props < C extends Component < any , any > > = Svelte . ComponentProps < C >
33
+ export type Props < C extends Component > = ComponentProps < C >
28
34
29
35
/**
30
36
* The exported fields of a component.
31
37
*
32
38
* In Svelte 5, this is the set of variables marked as `export`'d.
33
39
* In Svelte 4, this is simply the instance of the component class.
34
40
*/
35
- export type Exports < C > = C extends Svelte . SvelteComponent
41
+ export type Exports < C > = C extends LegacyComponent
36
42
? C
37
- : C extends Svelte . Component < any , infer E >
43
+ : C extends ModernComponent < any , infer E >
38
44
? E
39
45
: never
40
46
@@ -43,7 +49,6 @@ export type Exports<C> = C extends Svelte.SvelteComponent
43
49
*
44
50
* In Svelte 4, these are the options passed to the component constructor.
45
51
*/
46
- export type MountOptions < C extends Component < any , any > > =
47
- IS_MODERN_SVELTE extends true
48
- ? Parameters < typeof Svelte . mount < Props < C > , Exports < C > > > [ 1 ]
49
- : Svelte . ComponentConstructorOptions < Props < C > >
52
+ export type MountOptions < C extends Component > = IS_MODERN_SVELTE extends true
53
+ ? Parameters < typeof mount < Props < C > , Exports < C > > > [ 1 ]
54
+ : LegacyConstructorOptions < Props < C > >
0 commit comments