Skip to content

Commit 9713bdc

Browse files
committed
Added namespace for status messages.
Fixes #261.
1 parent ba9cf04 commit 9713bdc

File tree

5 files changed

+20
-13
lines changed

5 files changed

+20
-13
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12+
- By declaring `namespace Superforms` with a `type Message` in `app.d.ts`, the [status messages](https://superforms.rocks/concepts/messages) will always be set to that type. ([#261](https://github.com/ciscoheat/sveltekit-superforms/issues/261))
1213
- Added `FormResult<T>`, which can be used in [onResult](https://superforms.rocks/concepts/events#onresult) to make the ActionResult strongly typed.
1314

1415
## [1.8.0]

src/app.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ declare global {
99
}
1010
// interface Platform {}
1111
}
12+
namespace Superforms {
13+
type Message = string;
14+
}
1215
}
1316

1417
export {};

src/lib/client/index.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -192,10 +192,10 @@ const defaultFormOptions = {
192192
};
193193

194194
// eslint-disable-next-line @typescript-eslint/no-explicit-any
195-
type SuperFormSnapshot<T extends AnyZodObject, M = any> = SuperValidated<
196-
T,
197-
M
198-
> & { tainted: TaintedFields<T> | undefined };
195+
type SuperFormSnapshot<
196+
T extends AnyZodObject,
197+
M = Superforms.Message extends never ? any : Superforms.Message
198+
> = SuperValidated<T, M> & { tainted: TaintedFields<T> | undefined };
199199

200200
export type TaintOption<T extends AnyZodObject = AnyZodObject> =
201201
| boolean
@@ -204,7 +204,10 @@ export type TaintOption<T extends AnyZodObject = AnyZodObject> =
204204
| { fields: FormPathLeaves<z.infer<T>> | FormPathLeaves<z.infer<T>>[] };
205205

206206
// eslint-disable-next-line @typescript-eslint/no-explicit-any
207-
export type SuperForm<T extends ZodValidation<AnyZodObject>, M = any> = {
207+
export type SuperForm<
208+
T extends ZodValidation<AnyZodObject>,
209+
M = Superforms.Message extends never ? any : Superforms.Message
210+
> = {
208211
form: {
209212
subscribe: Readable<z.infer<UnwrapEffects<T>>>['subscribe'];
210213
set(
@@ -286,7 +289,7 @@ function multipleFormIdError(id: string | undefined) {
286289
export function superForm<
287290
T extends ZodValidation<AnyZodObject> = ZodValidation<AnyZodObject>,
288291
// eslint-disable-next-line @typescript-eslint/no-explicit-any
289-
M = any
292+
M = Superforms.Message extends never ? any : Superforms.Message
290293
>(
291294
form: SuperValidated<T, M>,
292295
options: FormOptions<UnwrapEffects<T>, M> = {}

src/lib/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ export type InputConstraints<T extends AnyZodObject> = SuperStruct<
159159
export type SuperValidated<
160160
T extends ZodValidation<AnyZodObject>,
161161
// eslint-disable-next-line @typescript-eslint/no-explicit-any
162-
M = any
162+
M = Superforms.Message extends never ? any : Superforms.Message
163163
> = {
164164
valid: boolean;
165165
posted: boolean;

src/lib/superValidate.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,7 @@ export type SuperValidateOptions<T extends AnyZodObject = AnyZodObject> =
514514
export async function superValidate<
515515
T extends ZodValidation<AnyZodObject>,
516516
// eslint-disable-next-line @typescript-eslint/no-explicit-any
517-
M = any
517+
M = Superforms.Message extends never ? any : Superforms.Message
518518
>(
519519
schema: T,
520520
options?: SuperValidateOptions<UnwrapEffects<T>>
@@ -523,7 +523,7 @@ export async function superValidate<
523523
export async function superValidate<
524524
T extends ZodValidation<AnyZodObject>,
525525
// eslint-disable-next-line @typescript-eslint/no-explicit-any
526-
M = any
526+
M = Superforms.Message extends never ? any : Superforms.Message
527527
>(
528528
data:
529529
| RequestEvent
@@ -546,7 +546,7 @@ export async function superValidate<
546546
export async function superValidate<
547547
T extends ZodValidation<AnyZodObject>,
548548
// eslint-disable-next-line @typescript-eslint/no-explicit-any
549-
M = any
549+
M = Superforms.Message extends never ? any : Superforms.Message
550550
>(
551551
data: unknown,
552552
schema?: T | SuperValidateOptions<UnwrapEffects<T>>,
@@ -623,7 +623,7 @@ export async function superValidate<
623623
export function superValidateSync<
624624
T extends ZodValidation<AnyZodObject>,
625625
// eslint-disable-next-line @typescript-eslint/no-explicit-any
626-
M = any
626+
M = Superforms.Message extends never ? any : Superforms.Message
627627
>(
628628
schema: T,
629629
options?: SuperValidateOptions<UnwrapEffects<T>>
@@ -632,7 +632,7 @@ export function superValidateSync<
632632
export function superValidateSync<
633633
T extends ZodValidation<AnyZodObject>,
634634
// eslint-disable-next-line @typescript-eslint/no-explicit-any
635-
M = any
635+
M = Superforms.Message extends never ? any : Superforms.Message
636636
>(
637637
data:
638638
| FormData
@@ -653,7 +653,7 @@ export function superValidateSync<
653653
export function superValidateSync<
654654
T extends ZodValidation<AnyZodObject>,
655655
// eslint-disable-next-line @typescript-eslint/no-explicit-any
656-
M = any
656+
M = Superforms.Message extends never ? any : Superforms.Message
657657
>(
658658
data: unknown,
659659
schema?: T | SuperValidateOptions<UnwrapEffects<T>>,

0 commit comments

Comments
 (0)