better-auth
Version:
The most comprehensive authentication library for TypeScript.
42 lines (39 loc) • 1.07 kB
JavaScript
;
let isBuilding;
const toSvelteKitHandler = (auth) => {
return (event) => auth.handler(event.request);
};
const svelteKitHandler = async ({
auth,
event,
resolve
}) => {
if (isBuilding === void 0) {
const { building } = await import('$app/environment').catch((e) => {
}).then((m) => m || {});
isBuilding = building || false;
}
if (isBuilding) {
return resolve(event);
}
const { request, url } = event;
if (isAuthPath(url.toString(), auth.options)) {
return auth.handler(request);
}
return resolve(event);
};
function isAuthPath(url, options) {
const _url = new URL(url);
const baseURL = new URL(
`${options.baseURL || _url.origin}${options.basePath || "/api/auth"}`
);
if (_url.origin !== baseURL.origin) return false;
if (!_url.pathname.startsWith(
baseURL.pathname.endsWith("/") ? baseURL.pathname : `${baseURL.pathname}/`
))
return false;
return true;
}
exports.isAuthPath = isAuthPath;
exports.svelteKitHandler = svelteKitHandler;
exports.toSvelteKitHandler = toSvelteKitHandler;