Skip to content

Commit

Permalink
Use ComponentType (#315)
Browse files Browse the repository at this point in the history
  • Loading branch information
laat authored Jan 9, 2024
1 parent 63138c7 commit 358b5f6
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 11 deletions.
12 changes: 6 additions & 6 deletions Router.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
///<reference types="svelte" />

import {SvelteComponent} from 'svelte'
import {SvelteComponent, ComponentType} from 'svelte'
import {Readable} from 'svelte/store'

/** Dictionary with route details passed to the pre-conditions functions, as well as the `routeLoading` and `conditionsFailed` events */
Expand All @@ -24,7 +24,7 @@ export interface RouteDetail {
/** Detail object for the `routeLoaded` event */
export interface RouteDetailLoaded extends RouteDetail {
/** Svelte component */
component: typeof SvelteComponent
component: ComponentType

/** Name of the Svelte component that was loaded (note: might be minified in production) */
name: string
Expand All @@ -34,7 +34,7 @@ export interface RouteDetailLoaded extends RouteDetail {
* This is a Svelte component loaded asynchronously.
* It's meant to be used with the `import()` function, such as `() => import('Foo.svelte')}`
*/
export type AsyncSvelteComponent = () => Promise<{default: typeof SvelteComponent}>
export type AsyncSvelteComponent = () => Promise<{default: ComponentType}>

/**
* Route pre-condition function. This is a callback that receives a RouteDetail object as argument containing information on the route that we're trying to load.
Expand All @@ -50,7 +50,7 @@ export type RoutePrecondition = (detail: RouteDetail) => (boolean | Promise<bool
/** Object returned by the `wrap` method */
export interface WrappedComponent {
/** Component to load (this is always asynchronous) */
component: typeof SvelteComponent
component: ComponentType

/** Route pre-conditions to validate */
conditions?: RoutePrecondition[]
Expand Down Expand Up @@ -152,8 +152,8 @@ export const params: Readable<Record<string, string> | undefined>
// Note: the above is implemented as writable but exported as readable because consumers should not modify the value

/** List of routes */
export type RouteDefinition = Record<string, typeof SvelteComponent | WrappedComponent> |
Map<string | RegExp, typeof SvelteComponent | WrappedComponent>
export type RouteDefinition = Record<string, ComponentType | WrappedComponent> |
Map<string | RegExp, ComponentType | WrappedComponent>

/** Generic interface for events from the router */
interface RouterEvent<T> {
Expand Down
10 changes: 5 additions & 5 deletions wrap.d.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import {SvelteComponent} from 'svelte'
import {ComponentType} from 'svelte'
import {AsyncSvelteComponent, RoutePrecondition, WrappedComponent} from './Router'

/** Options object for the call to `wrap` */
export interface WrapOptions {
/** Svelte component to load (this is incompatible with `asyncComponent`) */
component?: typeof SvelteComponent
/** Svelte component to load (this is incompatible with `asyncComponent`) */
component?: ComponentType

/** Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`) */
asyncComponent?: AsyncSvelteComponent

/** Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component */
loadingComponent?: typeof SvelteComponent
loadingComponent?: ComponentType

/** Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`) */
loadingParams?: object
Expand All @@ -32,7 +32,7 @@ export interface WrapOptions {
* 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)
* 3. Adding static props that are passed to the component
* 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)
*
*
* @param args Arguments object
* @returns Wrapped component
*/
Expand Down

0 comments on commit 358b5f6

Please sign in to comment.