1
0
mirror of https://github.com/pocket-id/pocket-id.git synced 2026-02-16 01:31:11 +00:00

refactor: upgrade to Zod v4 (#623)

This commit is contained in:
Elias Schneider
2025-06-08 15:44:59 +02:00
committed by GitHub
parent 9a4aab465a
commit 388a874922
18 changed files with 270 additions and 51 deletions

View File

@@ -11,7 +11,7 @@
import { cn } from '$lib/utils/style';
import { LucideChevronDown } from '@lucide/svelte';
import { slide } from 'svelte/transition';
import { z } from 'zod';
import { z } from 'zod/v4';
import FederatedIdentitiesInput from './federated-identities-input.svelte';
import OidcCallbackUrlInput from './oidc-callback-url-input.svelte';
@@ -50,17 +50,17 @@
credentials: z.object({
federatedIdentities: z.array(
z.object({
issuer: z.string().url(),
issuer: z.url(),
subject: z.string().optional(),
audience: z.string().optional(),
jwks: z.string().url().optional().or(z.literal(''))
jwks: z.url().optional().or(z.literal(''))
})
)
})
});
type FormSchema = typeof formSchema;
const { inputs, ...form } = createForm<FormSchema>(formSchema, client);
const { inputs, errors, ...form } = createForm<FormSchema>(formSchema, client);
async function onSubmit() {
const data = form.validate();
@@ -91,6 +91,15 @@
logo = null;
logoDataURL = null;
}
function getFederatedIdentityErrors(errors: z.ZodError<any> | undefined) {
return errors?.issues
.filter((e) => e.path[0] == 'credentials' && e.path[1] == 'federatedIdentities')
.map((e) => {
e.path.splice(0, 2);
return e;
});
}
</script>
<form onsubmit={preventDefault(onSubmit)}>
@@ -159,7 +168,7 @@
<FederatedIdentitiesInput
client={existingClient}
bind:federatedIdentities={$inputs.credentials.value.federatedIdentities}
bind:error={$inputs.credentials.error}
errors={getFederatedIdentityErrors($errors)}
/>
</div>
{/if}