Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 10 additions & 7 deletions packages/sv/src/addons/better-auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -354,8 +354,8 @@ const addon: Addon<AddonOptions<BetterAuthOptions>, 'better-auth'> = defineAddon
? `
signInEmail: async (event) => {${d1AuthLine}
const formData = await event.request.formData();
const email = formData.get('email')?.toString() ?? '';
const password = formData.get('password')?.toString() ?? '';
const email = parseEntry(formData.get('email'));
const password = parseEntry(formData.get('password'));

try {
await auth.api.signInEmail({
Expand All @@ -376,9 +376,9 @@ const addon: Addon<AddonOptions<BetterAuthOptions>, 'better-auth'> = defineAddon
},
signUpEmail: async (event) => {${d1AuthLine}
const formData = await event.request.formData();
const email = formData.get('email')?.toString() ?? '';
const password = formData.get('password')?.toString() ?? '';
const name = formData.get('name')?.toString() ?? '';
const email = parseEntry(formData.get('email'));
const password = parseEntry(formData.get('password'));
const name = parseEntry(formData.get('name'));

try {
await auth.api.signUpEmail({
Expand All @@ -404,8 +404,8 @@ const addon: Addon<AddonOptions<BetterAuthOptions>, 'better-auth'> = defineAddon
? `
signInSocial: async (event) => {${d1AuthLine}
const formData = await event.request.formData();
const provider = formData.get('provider')?.toString() ?? 'github';
const callbackURL = formData.get('callbackURL')?.toString() ?? '/demo/better-auth';
const provider = parseEntry(formData.get('provider')) || 'github';
const callbackURL = parseEntry(formData.get('callbackURL')) || '/demo/better-auth';

const result = await auth.api.signInSocial({
body: {
Expand All @@ -430,6 +430,9 @@ const addon: Addon<AddonOptions<BetterAuthOptions>, 'better-auth'> = defineAddon
${!d1 ? `import { auth } from '${lib}/server/auth.${language}';` : ''}
${needsAPIError ? "import { APIError } from 'better-auth/api';" : ''}

const parseEntry = (input${ts(' : FormDataEntryValue | null')}): string =>
input instanceof File ? input.name : (input ?? '');

export const load${ts(': PageServerLoad')} = (event) => {
if (event.locals.user) {
return redirect(302, '/demo/better-auth');
Expand Down
4 changes: 3 additions & 1 deletion packages/sv/src/addons/eslint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export default defineAddon({
eslintConfigs.push(jsConfig);

if (typescript) {
const tsConfig = js.common.parseExpression('ts.configs.recommended');
const tsConfig = js.common.parseExpression('ts.configs.recommendedTypeChecked');
eslintConfigs.push(tsConfig);
}

Expand All @@ -83,8 +83,10 @@ export default defineAddon({
' see: https://typescript-eslint.io/troubleshooting/faqs/eslint/#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors'
});

const tsOptions = { projectService: { allowDefaultProject: ['*.js'] } };
const globalsConfig = js.object.create({
languageOptions: {
parserOptions: typescript ? tsOptions : undefined,
globals: globalsObjLiteral
},
rules: typescript ? rules : undefined
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ import type { PageServerLoad } from './$types';
import { auth } from '#lib/server/auth.ts';
import { APIError } from 'better-auth/api';

const parseEntry = (input : FormDataEntryValue | null): string =>
input instanceof File ? input.name : (input ?? '');

export const load: PageServerLoad = (event) => {
if (event.locals.user) {
return redirect(302, '/demo/better-auth');
Expand All @@ -14,8 +17,8 @@ export const load: PageServerLoad = (event) => {
export const actions: Actions = {
signInEmail: async (event) => {
const formData = await event.request.formData();
const email = formData.get('email')?.toString() ?? '';
const password = formData.get('password')?.toString() ?? '';
const email = parseEntry(formData.get('email'));
const password = parseEntry(formData.get('password'));

try {
await auth.api.signInEmail({
Expand All @@ -36,9 +39,9 @@ export const actions: Actions = {
},
signUpEmail: async (event) => {
const formData = await event.request.formData();
const email = formData.get('email')?.toString() ?? '';
const password = formData.get('password')?.toString() ?? '';
const name = formData.get('name')?.toString() ?? '';
const email = parseEntry(formData.get('email'));
const password = parseEntry(formData.get('password'));
const name = parseEntry(formData.get('name'));

try {
await auth.api.signUpEmail({
Expand All @@ -60,8 +63,8 @@ export const actions: Actions = {
},
signInSocial: async (event) => {
const formData = await event.request.formData();
const provider = formData.get('provider')?.toString() ?? 'github';
const callbackURL = formData.get('callbackURL')?.toString() ?? '/demo/better-auth';
const provider = parseEntry(formData.get('provider')) || 'github';
const callbackURL = parseEntry(formData.get('callbackURL')) || '/demo/better-auth';

const result = await auth.api.signInSocial({
body: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,15 @@ const gitignorePath = path.resolve(import.meta.dirname, '.gitignore');
export default defineConfig(
includeIgnoreFile(gitignorePath),
js.configs.recommended,
ts.configs.recommended,
ts.configs.recommendedTypeChecked,
svelte.configs.recommended,
prettier,
svelte.configs.prettier,
{
languageOptions: { globals: { ...globals.browser, ...globals.node } },
languageOptions: {
parserOptions: { projectService: { allowDefaultProject: ['*.js'] } },
globals: { ...globals.browser, ...globals.node }
},
rules: {
// typescript-eslint strongly recommend that you do not use the no-undef lint rule on TypeScript projects.
// see: https://typescript-eslint.io/troubleshooting/faqs/eslint/#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ import type { PageServerLoad } from './$types';
import { auth } from '#lib/server/auth.ts';
import { APIError } from 'better-auth/api';

const parseEntry = (input : FormDataEntryValue | null): string =>
input instanceof File ? input.name : (input ?? '');

export const load: PageServerLoad = (event) => {
if (event.locals.user) {
return redirect(302, '/demo/better-auth');
Expand All @@ -14,8 +17,8 @@ export const load: PageServerLoad = (event) => {
export const actions: Actions = {
signInEmail: async (event) => {
const formData = await event.request.formData();
const email = formData.get('email')?.toString() ?? '';
const password = formData.get('password')?.toString() ?? '';
const email = parseEntry(formData.get('email'));
const password = parseEntry(formData.get('password'));

try {
await auth.api.signInEmail({
Expand All @@ -36,9 +39,9 @@ export const actions: Actions = {
},
signUpEmail: async (event) => {
const formData = await event.request.formData();
const email = formData.get('email')?.toString() ?? '';
const password = formData.get('password')?.toString() ?? '';
const name = formData.get('name')?.toString() ?? '';
const email = parseEntry(formData.get('email'));
const password = parseEntry(formData.get('password'));
const name = parseEntry(formData.get('name'));

try {
await auth.api.signUpEmail({
Expand All @@ -60,8 +63,8 @@ export const actions: Actions = {
},
signInSocial: async (event) => {
const formData = await event.request.formData();
const provider = formData.get('provider')?.toString() ?? 'github';
const callbackURL = formData.get('callbackURL')?.toString() ?? '/demo/better-auth';
const provider = parseEntry(formData.get('provider')) || 'github';
const callbackURL = parseEntry(formData.get('callbackURL')) || '/demo/better-auth';

const result = await auth.api.signInSocial({
body: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,9 +105,9 @@
action="?/enter"
use:enhance={() => {
// prevent default callback from resetting the form
return ({ result, update }) => {
return async ({ result, update }) => {
shake = result.type === 'failure';
update({ reset: false });
await update({ reset: false });
};
}}
>
Expand Down
Loading