From 4c2695aa4d5e3a81b8e0572736f46cd40e1450e5 Mon Sep 17 00:00:00 2001 From: Ivan Hofer Date: Tue, 1 Mar 2022 08:28:04 +0100 Subject: [PATCH 1/6] differentiate between input and output params inside `Load` --- packages/kit/types/index.d.ts | 4 ++-- packages/kit/types/private.d.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/kit/types/index.d.ts b/packages/kit/types/index.d.ts index 1cc72dbf8528..cc79cb5e9176 100644 --- a/packages/kit/types/index.d.ts +++ b/packages/kit/types/index.d.ts @@ -110,8 +110,8 @@ export interface HandleError { (input: { error: Error & { frame?: string }; event: RequestEvent }): void; } -export interface Load, Props = Record> { - (input: LoadInput): MaybePromise>>; +export interface Load, InputProps = Record, OutputProps = Record> { + (input: LoadInput): MaybePromise>>; } export interface Page = Record> { diff --git a/packages/kit/types/private.d.ts b/packages/kit/types/private.d.ts index 5e07b7776e89..e71aa4a030ad 100644 --- a/packages/kit/types/private.d.ts +++ b/packages/kit/types/private.d.ts @@ -218,10 +218,10 @@ export type JSONValue = | JSONValue[] | JSONObject; -export interface LoadInput> { +export interface LoadInput, Props = Record> { url: URL; params: Params; - props: Record; + props: Props; fetch(info: RequestInfo, init?: RequestInit): Promise; session: App.Session; stuff: Partial; From d2556d150ce5dfcf6a07c0a56eac7d5ee98a8256 Mon Sep 17 00:00:00 2001 From: Ivan Hofer Date: Tue, 1 Mar 2022 08:45:01 +0100 Subject: [PATCH 2/6] add changeset --- .changeset/yellow-geese-tap.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/yellow-geese-tap.md diff --git a/.changeset/yellow-geese-tap.md b/.changeset/yellow-geese-tap.md new file mode 100644 index 000000000000..b347a4a07286 --- /dev/null +++ b/.changeset/yellow-geese-tap.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +allow providing `InputProps` type argument for `Load` From a586e26651326dbe1d17ab6b1b05267031c3e9d1 Mon Sep 17 00:00:00 2001 From: Ivan Hofer Date: Tue, 1 Mar 2022 18:15:57 +0100 Subject: [PATCH 3/6] run format --- packages/kit/types/index.d.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/kit/types/index.d.ts b/packages/kit/types/index.d.ts index cc79cb5e9176..5a3f5a1e0793 100644 --- a/packages/kit/types/index.d.ts +++ b/packages/kit/types/index.d.ts @@ -110,8 +110,14 @@ export interface HandleError { (input: { error: Error & { frame?: string }; event: RequestEvent }): void; } -export interface Load, InputProps = Record, OutputProps = Record> { - (input: LoadInput): MaybePromise>>; +export interface Load< + Params = Record, + InputProps = Record, + OutputProps = Record +> { + (input: LoadInput): MaybePromise< + Either> + >; } export interface Page = Record> { From 48be5e43edea6c608b2a02046511b4b59c4c5dd8 Mon Sep 17 00:00:00 2001 From: Hofer Ivan Date: Wed, 2 Mar 2022 20:54:33 +0100 Subject: [PATCH 4/6] update changelog message Co-authored-by: Rich Harris --- .changeset/yellow-geese-tap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/yellow-geese-tap.md b/.changeset/yellow-geese-tap.md index b347a4a07286..7f228cf8425e 100644 --- a/.changeset/yellow-geese-tap.md +++ b/.changeset/yellow-geese-tap.md @@ -2,4 +2,4 @@ '@sveltejs/kit': patch --- -allow providing `InputProps` type argument for `Load` +allow `InputProps` and `OutputProps` to be typed separately in `Load` From 0822efc27c0ea4defd91d58094e4116012df5011 Mon Sep 17 00:00:00 2001 From: Hofer Ivan Date: Wed, 2 Mar 2022 20:55:00 +0100 Subject: [PATCH 5/6] use `InputProps` as default value for `OutputProps` Co-authored-by: Rich Harris --- packages/kit/types/index.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/kit/types/index.d.ts b/packages/kit/types/index.d.ts index 14e1ee90a78a..310ea5ce8574 100644 --- a/packages/kit/types/index.d.ts +++ b/packages/kit/types/index.d.ts @@ -116,9 +116,9 @@ export interface HandleError { * Note that you can use [generated types](/docs/types#generated-types) instead of manually specifying the Params generic argument. */ export interface Load< - Params = Record, - InputProps = Record, - OutputProps = Record + Params extends Record = Record, + InputProps extends Record = Record, + OutputProps extends Record = InputProps > { (input: LoadInput): MaybePromise< Either> From 18d8baf33aec7a365e6c7ac6ef4544ec8456d135 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 2 Mar 2022 15:24:44 -0500 Subject: [PATCH 6/6] Update .changeset/yellow-geese-tap.md --- .changeset/yellow-geese-tap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/yellow-geese-tap.md b/.changeset/yellow-geese-tap.md index 7f228cf8425e..e8623fb4f4db 100644 --- a/.changeset/yellow-geese-tap.md +++ b/.changeset/yellow-geese-tap.md @@ -2,4 +2,4 @@ '@sveltejs/kit': patch --- -allow `InputProps` and `OutputProps` to be typed separately in `Load` +[breaking] allow `InputProps` and `OutputProps` to be typed separately in `Load`