Newer
Older
import { redirect } from '@sveltejs/kit';
export function isRedirectPathValid(path: string, origin: string): boolean {
try {
const url = new URL(path, origin);
return url.origin == origin;
} catch (e) {
return false;
}
}
export function safeRedirect(path: string | null | undefined, origin: string) {
if (!path || !isRedirectPathValid(path, origin)) path = '/';
return redirect(302, path);
}
export function safeRedirectAuto(url: URL) {
return safeRedirect(url.searchParams.get('redirect'), url.origin);
}
export function validateEmail(email: unknown): email is string {
return (
typeof email === 'string' &&
email.length >= 3 &&
email.length <= 255 &&
/^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$/.test(email)
);
}
export function validateUsername(username: unknown): username is string {
return typeof username === 'string' && username.length >= 3 && username.length <= 31;
}
export function validatePassword(password: unknown): password is string {
return typeof password === 'string' && password.length >= 8 && password.length <= 255;
}