@better-auth-ui/react 1.6.2 → 1.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks/auth/use-authenticate.d.ts +30 -6
- package/dist/hooks/auth/use-is-username-available.d.ts +12 -11
- package/dist/hooks/auth/use-is-username-available.js +8 -7
- package/dist/hooks/auth/use-request-password-reset.d.ts +11 -15
- package/dist/hooks/auth/use-request-password-reset.js +8 -7
- package/dist/hooks/auth/use-reset-password.d.ts +13 -29
- package/dist/hooks/auth/use-reset-password.js +8 -7
- package/dist/hooks/auth/use-send-verification-email.d.ts +10 -14
- package/dist/hooks/auth/use-send-verification-email.js +8 -7
- package/dist/hooks/auth/use-session.d.ts +30 -4
- package/dist/hooks/auth/use-session.js +11 -10
- package/dist/hooks/auth/use-sign-in-email.d.ts +11 -37
- package/dist/hooks/auth/use-sign-in-email.js +11 -12
- package/dist/hooks/auth/use-sign-in-magic-link.d.ts +14 -18
- package/dist/hooks/auth/use-sign-in-magic-link.js +8 -7
- package/dist/hooks/auth/use-sign-in-passkey.d.ts +10 -47
- package/dist/hooks/auth/use-sign-in-passkey.js +11 -12
- package/dist/hooks/auth/use-sign-in-social.d.ts +30 -59
- package/dist/hooks/auth/use-sign-in-social.js +8 -7
- package/dist/hooks/auth/use-sign-in-username.d.ts +12 -40
- package/dist/hooks/auth/use-sign-in-username.js +11 -12
- package/dist/hooks/auth/use-sign-out.d.ts +10 -10
- package/dist/hooks/auth/use-sign-out.js +10 -12
- package/dist/hooks/auth/use-sign-up-email.d.ts +18 -101
- package/dist/hooks/auth/use-sign-up-email.js +11 -12
- package/dist/hooks/auth/use-user.d.ts +7 -5
- package/dist/hooks/settings/use-account-info.d.ts +9 -9
- package/dist/hooks/settings/use-account-info.js +13 -16
- package/dist/hooks/settings/use-add-passkey.d.ts +8 -30
- package/dist/hooks/settings/use-add-passkey.js +10 -11
- package/dist/hooks/settings/use-change-email.d.ts +11 -14
- package/dist/hooks/settings/use-change-email.js +11 -12
- package/dist/hooks/settings/use-change-password.d.ts +11 -43
- package/dist/hooks/settings/use-change-password.js +8 -7
- package/dist/hooks/settings/use-delete-passkey.d.ts +10 -12
- package/dist/hooks/settings/use-delete-passkey.js +11 -12
- package/dist/hooks/settings/use-delete-user.d.ts +13 -30
- package/dist/hooks/settings/use-delete-user.js +8 -7
- package/dist/hooks/settings/use-link-social.d.ts +22 -25
- package/dist/hooks/settings/use-link-social.js +8 -7
- package/dist/hooks/settings/use-list-accounts.d.ts +8 -6
- package/dist/hooks/settings/use-list-accounts.js +10 -16
- package/dist/hooks/settings/use-list-device-sessions.d.ts +29 -6
- package/dist/hooks/settings/use-list-device-sessions.js +10 -16
- package/dist/hooks/settings/use-list-sessions.d.ts +8 -5
- package/dist/hooks/settings/use-list-sessions.js +10 -16
- package/dist/hooks/settings/use-list-user-passkeys.d.ts +8 -5
- package/dist/hooks/settings/use-list-user-passkeys.js +10 -16
- package/dist/hooks/settings/use-revoke-multi-session.d.ts +11 -11
- package/dist/hooks/settings/use-revoke-multi-session.js +11 -12
- package/dist/hooks/settings/use-revoke-session.d.ts +11 -11
- package/dist/hooks/settings/use-revoke-session.js +11 -12
- package/dist/hooks/settings/use-set-active-session.d.ts +12 -29
- package/dist/hooks/settings/use-set-active-session.js +12 -13
- package/dist/hooks/settings/use-unlink-account.d.ts +12 -12
- package/dist/hooks/settings/use-unlink-account.js +11 -12
- package/dist/hooks/settings/use-update-user.d.ts +1178 -4
- package/dist/hooks/settings/use-update-user.js +17 -18
- package/dist/hooks/use-auth-mutation.d.ts +12 -0
- package/dist/hooks/use-auth-mutation.js +11 -0
- package/dist/hooks/use-auth-query.d.ts +14 -0
- package/dist/hooks/use-auth-query.js +15 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +33 -33
- package/dist/mutations/auth/is-username-available-options.d.ts +19 -0
- package/dist/mutations/auth/is-username-available-options.js +7 -0
- package/dist/mutations/auth/request-password-reset-options.d.ts +15 -0
- package/dist/mutations/auth/request-password-reset-options.js +7 -0
- package/dist/mutations/auth/reset-password-options.d.ts +17 -0
- package/dist/mutations/auth/reset-password-options.js +7 -0
- package/dist/mutations/auth/send-verification-email-options.d.ts +15 -0
- package/dist/mutations/auth/send-verification-email-options.js +7 -0
- package/dist/mutations/auth/sign-in-email-options.d.ts +23 -0
- package/dist/mutations/auth/sign-in-email-options.js +11 -0
- package/dist/mutations/auth/sign-in-magic-link-options.d.ts +23 -0
- package/dist/mutations/auth/sign-in-magic-link-options.js +11 -0
- package/dist/mutations/auth/sign-in-passkey-options.d.ts +15 -0
- package/dist/mutations/auth/sign-in-passkey-options.js +11 -0
- package/dist/mutations/auth/sign-in-social-options.d.ts +61 -0
- package/dist/mutations/auth/sign-in-social-options.js +11 -0
- package/dist/mutations/auth/sign-in-username-options.d.ts +19 -0
- package/dist/mutations/auth/sign-in-username-options.js +11 -0
- package/dist/mutations/auth/sign-out-options.d.ts +12 -0
- package/dist/mutations/auth/sign-out-options.js +7 -0
- package/dist/mutations/auth/sign-up-email-options.d.ts +1180 -0
- package/dist/mutations/auth/sign-up-email-options.js +11 -0
- package/dist/mutations/auth-mutation-options.d.ts +25 -0
- package/dist/mutations/auth-mutation-options.js +19 -0
- package/dist/mutations/settings/add-passkey-options.d.ts +15 -0
- package/dist/mutations/settings/add-passkey-options.js +11 -0
- package/dist/mutations/settings/change-email-options.d.ts +15 -0
- package/dist/mutations/settings/change-email-options.js +7 -0
- package/dist/mutations/settings/change-password-options.d.ts +17 -0
- package/dist/mutations/settings/change-password-options.js +7 -0
- package/dist/mutations/settings/delete-passkey-options.d.ts +13 -0
- package/dist/mutations/settings/delete-passkey-options.js +11 -0
- package/dist/mutations/settings/delete-user-options.d.ts +20 -0
- package/dist/mutations/settings/delete-user-options.js +7 -0
- package/dist/mutations/settings/link-social-options.d.ts +39 -0
- package/dist/mutations/settings/link-social-options.js +7 -0
- package/dist/mutations/settings/revoke-multi-session-options.d.ts +13 -0
- package/dist/mutations/settings/revoke-multi-session-options.js +11 -0
- package/dist/mutations/settings/revoke-session-options.d.ts +13 -0
- package/dist/mutations/settings/revoke-session-options.js +7 -0
- package/dist/mutations/settings/set-active-session-options.d.ts +13 -0
- package/dist/mutations/settings/set-active-session-options.js +11 -0
- package/dist/mutations/settings/unlink-account-options.d.ts +15 -0
- package/dist/mutations/settings/unlink-account-options.js +7 -0
- package/dist/mutations/settings/update-user-options.d.ts +1182 -0
- package/dist/mutations/settings/update-user-options.js +7 -0
- package/dist/queries/auth/session-options.d.ts +110 -0
- package/dist/queries/auth/session-options.js +7 -0
- package/dist/queries/auth-query-options.d.ts +29 -0
- package/dist/queries/auth-query-options.js +17 -0
- package/dist/queries/settings/account-info-options.d.ts +32 -0
- package/dist/queries/settings/account-info-options.js +12 -0
- package/dist/queries/settings/list-accounts-options.d.ts +53 -0
- package/dist/queries/settings/list-accounts-options.js +12 -0
- package/dist/queries/settings/list-device-sessions-options.d.ts +99 -0
- package/dist/queries/settings/list-device-sessions-options.js +12 -0
- package/dist/queries/settings/list-sessions-options.d.ts +54 -0
- package/dist/queries/settings/list-sessions-options.js +12 -0
- package/dist/queries/settings/list-user-passkeys-options.d.ts +18 -0
- package/dist/queries/settings/list-user-passkeys-options.js +12 -0
- package/package.json +1 -1
- package/src/hooks/auth/use-authenticate.ts +7 -10
- package/src/hooks/auth/use-is-username-available.ts +17 -8
- package/src/hooks/auth/use-request-password-reset.ts +19 -8
- package/src/hooks/auth/use-reset-password.ts +19 -9
- package/src/hooks/auth/use-send-verification-email.ts +18 -8
- package/src/hooks/auth/use-session.ts +20 -16
- package/src/hooks/auth/use-sign-in-email.ts +23 -16
- package/src/hooks/auth/use-sign-in-magic-link.ts +18 -10
- package/src/hooks/auth/use-sign-in-passkey.ts +24 -18
- package/src/hooks/auth/use-sign-in-social.ts +18 -8
- package/src/hooks/auth/use-sign-in-username.ts +24 -18
- package/src/hooks/auth/use-sign-out.ts +18 -17
- package/src/hooks/auth/use-sign-up-email.ts +24 -18
- package/src/hooks/auth/use-user.ts +7 -8
- package/src/hooks/settings/use-account-info.ts +29 -20
- package/src/hooks/settings/use-add-passkey.ts +22 -17
- package/src/hooks/settings/use-change-email.ts +21 -17
- package/src/hooks/settings/use-change-password.ts +18 -8
- package/src/hooks/settings/use-delete-passkey.ts +21 -16
- package/src/hooks/settings/use-delete-user.ts +18 -8
- package/src/hooks/settings/use-link-social.ts +18 -8
- package/src/hooks/settings/use-list-accounts.ts +25 -15
- package/src/hooks/settings/use-list-device-sessions.ts +26 -21
- package/src/hooks/settings/use-list-sessions.ts +25 -14
- package/src/hooks/settings/use-list-user-passkeys.ts +25 -16
- package/src/hooks/settings/use-revoke-multi-session.ts +25 -16
- package/src/hooks/settings/use-revoke-session.ts +25 -16
- package/src/hooks/settings/use-set-active-session.ts +35 -24
- package/src/hooks/settings/use-unlink-account.ts +22 -15
- package/src/hooks/settings/use-update-user.ts +29 -22
- package/src/hooks/use-auth-mutation.ts +29 -0
- package/src/hooks/use-auth-query.ts +36 -0
- package/src/index.ts +2 -2
- package/src/mutations/auth/is-username-available-options.ts +18 -0
- package/src/mutations/auth/request-password-reset-options.ts +14 -0
- package/src/mutations/auth/reset-password-options.ts +14 -0
- package/src/mutations/auth/send-verification-email-options.ts +14 -0
- package/src/mutations/auth/sign-in-email-options.ts +19 -0
- package/src/mutations/auth/sign-in-magic-link-options.ts +15 -0
- package/src/mutations/auth/sign-in-passkey-options.ts +15 -0
- package/src/mutations/auth/sign-in-social-options.ts +19 -0
- package/src/mutations/auth/sign-in-username-options.ts +15 -0
- package/src/mutations/auth/sign-out-options.ts +11 -0
- package/src/mutations/auth/sign-up-email-options.ts +15 -0
- package/src/mutations/auth-mutation-options.ts +49 -0
- package/src/mutations/settings/add-passkey-options.ts +15 -0
- package/src/mutations/settings/change-email-options.ts +11 -0
- package/src/mutations/settings/change-password-options.ts +14 -0
- package/src/mutations/settings/delete-passkey-options.ts +15 -0
- package/src/mutations/settings/delete-user-options.ts +11 -0
- package/src/mutations/settings/link-social-options.ts +11 -0
- package/src/mutations/settings/revoke-multi-session-options.ts +15 -0
- package/src/mutations/settings/revoke-session-options.ts +14 -0
- package/src/mutations/settings/set-active-session-options.ts +15 -0
- package/src/mutations/settings/unlink-account-options.ts +14 -0
- package/src/mutations/settings/update-user-options.ts +15 -0
- package/src/queries/auth/session-options.ts +18 -0
- package/src/queries/auth-query-options.ts +34 -0
- package/src/queries/settings/account-info-options.ts +25 -0
- package/src/queries/settings/list-accounts-options.ts +26 -0
- package/src/queries/settings/list-device-sessions-options.ts +24 -0
- package/src/queries/settings/list-sessions-options.ts +23 -0
- package/src/queries/settings/list-user-passkeys-options.ts +23 -0
- package/dist/hooks/auth/use-auth-mutation.d.ts +0 -18
- package/dist/hooks/auth/use-auth-mutation.js +0 -13
- package/dist/hooks/auth/use-auth-query.d.ts +0 -24
- package/dist/hooks/auth/use-auth-query.js +0 -13
- package/src/hooks/auth/use-auth-mutation.ts +0 -56
- package/src/hooks/auth/use-auth-query.ts +0 -50
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { AuthClient } from "../../lib/auth-client"
|
|
2
|
+
import { authQueryOptions } from "../auth-query-options"
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Query options factory for a user's linked social accounts.
|
|
6
|
+
*
|
|
7
|
+
* Keyed per-user (enables offline account switching with a persister).
|
|
8
|
+
* `userId` is optional so the factory can build stable options before the
|
|
9
|
+
* active session resolves — the consumer swaps `queryFn` for `skipToken`
|
|
10
|
+
* until ready.
|
|
11
|
+
*
|
|
12
|
+
* @param authClient - The Better Auth client.
|
|
13
|
+
* @param userId - The current signed in user's ID.
|
|
14
|
+
* @param params - Parameters forwarded to `authClient.listAccounts`.
|
|
15
|
+
*/
|
|
16
|
+
export function listAccountsOptions(
|
|
17
|
+
authClient: AuthClient,
|
|
18
|
+
userId?: string,
|
|
19
|
+
params?: Parameters<AuthClient["listAccounts"]>[0]
|
|
20
|
+
) {
|
|
21
|
+
return authQueryOptions(
|
|
22
|
+
authClient.listAccounts,
|
|
23
|
+
["auth", "user", userId, "listAccounts"],
|
|
24
|
+
params
|
|
25
|
+
)
|
|
26
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AuthClient } from "../../lib/auth-client"
|
|
2
|
+
import { authQueryOptions } from "../auth-query-options"
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Query options factory for the current user's device sessions
|
|
6
|
+
* (multi-session account switcher).
|
|
7
|
+
*
|
|
8
|
+
* Keyed per-user (enables offline account switching with a persister).
|
|
9
|
+
*
|
|
10
|
+
* @param authClient - The Better Auth client.
|
|
11
|
+
* @param userId - The current signed in user's ID.
|
|
12
|
+
* @param params - Parameters forwarded to `authClient.multiSession.listDeviceSessions`.
|
|
13
|
+
*/
|
|
14
|
+
export function listDeviceSessionsOptions(
|
|
15
|
+
authClient: AuthClient,
|
|
16
|
+
userId?: string,
|
|
17
|
+
params?: Parameters<AuthClient["multiSession"]["listDeviceSessions"]>[0]
|
|
18
|
+
) {
|
|
19
|
+
return authQueryOptions(
|
|
20
|
+
authClient.multiSession.listDeviceSessions,
|
|
21
|
+
["auth", "user", userId, "listDeviceSessions"],
|
|
22
|
+
params
|
|
23
|
+
)
|
|
24
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { AuthClient } from "../../lib/auth-client"
|
|
2
|
+
import { authQueryOptions } from "../auth-query-options"
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Query options factory for the current user's active sessions.
|
|
6
|
+
*
|
|
7
|
+
* Keyed per-user (enables offline account switching with a persister).
|
|
8
|
+
*
|
|
9
|
+
* @param authClient - The Better Auth client.
|
|
10
|
+
* @param userId - The current signed in user's ID.
|
|
11
|
+
* @param params - Parameters forwarded to `authClient.listSessions`.
|
|
12
|
+
*/
|
|
13
|
+
export function listSessionsOptions(
|
|
14
|
+
authClient: AuthClient,
|
|
15
|
+
userId?: string,
|
|
16
|
+
params?: Parameters<AuthClient["listSessions"]>[0]
|
|
17
|
+
) {
|
|
18
|
+
return authQueryOptions(
|
|
19
|
+
authClient.listSessions,
|
|
20
|
+
["auth", "user", userId, "listSessions"],
|
|
21
|
+
params
|
|
22
|
+
)
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { AuthClient } from "../../lib/auth-client"
|
|
2
|
+
import { authQueryOptions } from "../auth-query-options"
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Query options factory for the current user's passkeys.
|
|
6
|
+
*
|
|
7
|
+
* Keyed per-user (enables offline account switching with a persister).
|
|
8
|
+
*
|
|
9
|
+
* @param authClient - The Better Auth client.
|
|
10
|
+
* @param userId - The current signed in user's ID.
|
|
11
|
+
* @param params - Parameters forwarded to `authClient.passkey.listUserPasskeys`.
|
|
12
|
+
*/
|
|
13
|
+
export function listUserPasskeysOptions(
|
|
14
|
+
authClient: AuthClient,
|
|
15
|
+
userId?: string,
|
|
16
|
+
params?: Parameters<AuthClient["passkey"]["listUserPasskeys"]>[0]
|
|
17
|
+
) {
|
|
18
|
+
return authQueryOptions(
|
|
19
|
+
authClient.passkey.listUserPasskeys,
|
|
20
|
+
["auth", "user", userId, "listUserPasskeys"],
|
|
21
|
+
params
|
|
22
|
+
)
|
|
23
|
+
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';
|
|
2
|
-
import { BetterFetchError } from 'better-auth/react';
|
|
3
|
-
type AuthFn = (...args: any) => Promise<any>;
|
|
4
|
-
type MutationParams<TFn extends AuthFn> = undefined extends Parameters<TFn>[0] ? // biome-ignore lint/suspicious/noConfusingVoidType: void is needed for mutations with optional params
|
|
5
|
-
void | Omit<NonNullable<Parameters<TFn>[0]>, "fetchOptions"> : Omit<Parameters<TFn>[0], "fetchOptions">;
|
|
6
|
-
type InferMutationData<TFn extends AuthFn> = TFn extends (...args: infer _A) => infer R ? Extract<Awaited<R>, {
|
|
7
|
-
error: null;
|
|
8
|
-
}> extends {
|
|
9
|
-
data: infer D;
|
|
10
|
-
} ? D : Awaited<R> : Awaited<ReturnType<TFn>>;
|
|
11
|
-
export type UseAuthMutationOptions<TFn extends AuthFn> = Omit<UseMutationOptions<InferMutationData<TFn>, BetterFetchError, MutationParams<TFn>>, "mutationFn">;
|
|
12
|
-
export type UseAuthMutationResult<TFn extends AuthFn> = UseMutationResult<InferMutationData<TFn>, BetterFetchError, MutationParams<TFn>>;
|
|
13
|
-
type UseAuthMutationProps<TFn extends AuthFn> = {
|
|
14
|
-
authFn: TFn;
|
|
15
|
-
options?: UseAuthMutationOptions<TFn>;
|
|
16
|
-
};
|
|
17
|
-
export declare function useAuthMutation<TFn extends AuthFn>({ authFn, options }: UseAuthMutationProps<TFn>): UseAuthMutationResult<TFn>;
|
|
18
|
-
export {};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { useMutation as e } from "@tanstack/react-query";
|
|
2
|
-
//#region src/hooks/auth/use-auth-mutation.ts
|
|
3
|
-
function t({ authFn: t, options: n }) {
|
|
4
|
-
return e({
|
|
5
|
-
mutationFn: (e) => t({
|
|
6
|
-
...e,
|
|
7
|
-
fetchOptions: { throw: !0 }
|
|
8
|
-
}),
|
|
9
|
-
...n
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
//#endregion
|
|
13
|
-
export { t as useAuthMutation };
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
|
|
2
|
-
import { BetterFetchError, BetterFetchOption } from 'better-auth/react';
|
|
3
|
-
type BetterFetchFn = (options: {
|
|
4
|
-
fetchOptions?: BetterFetchOption;
|
|
5
|
-
}) => Promise<{
|
|
6
|
-
data: unknown;
|
|
7
|
-
}>;
|
|
8
|
-
type InferData<TFn> = TFn extends (options: {
|
|
9
|
-
fetchOptions?: BetterFetchOption;
|
|
10
|
-
}) => Promise<{
|
|
11
|
-
data: infer TData;
|
|
12
|
-
}> ? TData : never;
|
|
13
|
-
type OmitFetchOptions<T> = {
|
|
14
|
-
[K in keyof T as K extends "fetchOptions" ? never : K]: T[K];
|
|
15
|
-
};
|
|
16
|
-
export type UseAuthQueryOptions<TFn extends BetterFetchFn> = Omit<UseQueryOptions<InferData<TFn>, BetterFetchError>, "queryFn">;
|
|
17
|
-
export type UseAuthQueryResult<TFn extends BetterFetchFn> = UseQueryResult<InferData<TFn>, BetterFetchError>;
|
|
18
|
-
type UseAuthQueryProps<TFn extends BetterFetchFn> = {
|
|
19
|
-
authFn: TFn;
|
|
20
|
-
params?: OmitFetchOptions<Parameters<TFn>[0]>;
|
|
21
|
-
options: UseAuthQueryOptions<TFn>;
|
|
22
|
-
};
|
|
23
|
-
export declare function useAuthQuery<TFn extends BetterFetchFn>({ authFn, params, options }: UseAuthQueryProps<TFn>): UseQueryResult<import('@tanstack/react-query').NoInfer<InferData<TFn>>, BetterFetchError>;
|
|
24
|
-
export {};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { useQuery as e } from "@tanstack/react-query";
|
|
2
|
-
//#region src/hooks/auth/use-auth-query.ts
|
|
3
|
-
function t({ authFn: t, params: n, options: r }) {
|
|
4
|
-
return e({
|
|
5
|
-
queryFn: async () => await t({
|
|
6
|
-
...n,
|
|
7
|
-
fetchOptions: { throw: !0 }
|
|
8
|
-
}),
|
|
9
|
-
...r
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
//#endregion
|
|
13
|
-
export { t as useAuthQuery };
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type UseMutationOptions,
|
|
3
|
-
type UseMutationResult,
|
|
4
|
-
useMutation
|
|
5
|
-
} from "@tanstack/react-query"
|
|
6
|
-
import type { BetterFetchError } from "better-auth/react"
|
|
7
|
-
|
|
8
|
-
// biome-ignore lint/suspicious/noExplicitAny: any
|
|
9
|
-
type AuthFn = (...args: any) => Promise<any>
|
|
10
|
-
|
|
11
|
-
type MutationParams<TFn extends AuthFn> = undefined extends Parameters<TFn>[0]
|
|
12
|
-
? // biome-ignore lint/suspicious/noConfusingVoidType: void is needed for mutations with optional params
|
|
13
|
-
void | Omit<NonNullable<Parameters<TFn>[0]>, "fetchOptions">
|
|
14
|
-
: Omit<Parameters<TFn>[0], "fetchOptions">
|
|
15
|
-
|
|
16
|
-
type InferMutationData<TFn extends AuthFn> = TFn extends (
|
|
17
|
-
...args: infer _A
|
|
18
|
-
) => infer R
|
|
19
|
-
? Extract<Awaited<R>, { error: null }> extends { data: infer D }
|
|
20
|
-
? D
|
|
21
|
-
: Awaited<R>
|
|
22
|
-
: Awaited<ReturnType<TFn>>
|
|
23
|
-
|
|
24
|
-
export type UseAuthMutationOptions<TFn extends AuthFn> = Omit<
|
|
25
|
-
UseMutationOptions<
|
|
26
|
-
InferMutationData<TFn>,
|
|
27
|
-
BetterFetchError,
|
|
28
|
-
MutationParams<TFn>
|
|
29
|
-
>,
|
|
30
|
-
"mutationFn"
|
|
31
|
-
>
|
|
32
|
-
|
|
33
|
-
export type UseAuthMutationResult<TFn extends AuthFn> = UseMutationResult<
|
|
34
|
-
InferMutationData<TFn>,
|
|
35
|
-
BetterFetchError,
|
|
36
|
-
MutationParams<TFn>
|
|
37
|
-
>
|
|
38
|
-
|
|
39
|
-
type UseAuthMutationProps<TFn extends AuthFn> = {
|
|
40
|
-
authFn: TFn
|
|
41
|
-
options?: UseAuthMutationOptions<TFn>
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export function useAuthMutation<TFn extends AuthFn>({
|
|
45
|
-
authFn,
|
|
46
|
-
options
|
|
47
|
-
}: UseAuthMutationProps<TFn>): UseAuthMutationResult<TFn> {
|
|
48
|
-
return useMutation({
|
|
49
|
-
mutationFn: (params) =>
|
|
50
|
-
authFn({
|
|
51
|
-
...params,
|
|
52
|
-
fetchOptions: { throw: true }
|
|
53
|
-
}),
|
|
54
|
-
...options
|
|
55
|
-
})
|
|
56
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type UseQueryOptions,
|
|
3
|
-
type UseQueryResult,
|
|
4
|
-
useQuery
|
|
5
|
-
} from "@tanstack/react-query"
|
|
6
|
-
import type { BetterFetchError, BetterFetchOption } from "better-auth/react"
|
|
7
|
-
|
|
8
|
-
type BetterFetchFn = (options: {
|
|
9
|
-
fetchOptions?: BetterFetchOption
|
|
10
|
-
}) => Promise<{ data: unknown }>
|
|
11
|
-
|
|
12
|
-
type InferData<TFn> = TFn extends (options: {
|
|
13
|
-
fetchOptions?: BetterFetchOption
|
|
14
|
-
}) => Promise<{ data: infer TData }>
|
|
15
|
-
? TData
|
|
16
|
-
: never
|
|
17
|
-
|
|
18
|
-
type OmitFetchOptions<T> = {
|
|
19
|
-
[K in keyof T as K extends "fetchOptions" ? never : K]: T[K]
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export type UseAuthQueryOptions<TFn extends BetterFetchFn> = Omit<
|
|
23
|
-
UseQueryOptions<InferData<TFn>, BetterFetchError>,
|
|
24
|
-
"queryFn"
|
|
25
|
-
>
|
|
26
|
-
|
|
27
|
-
export type UseAuthQueryResult<TFn extends BetterFetchFn> = UseQueryResult<
|
|
28
|
-
InferData<TFn>,
|
|
29
|
-
BetterFetchError
|
|
30
|
-
>
|
|
31
|
-
|
|
32
|
-
type UseAuthQueryProps<TFn extends BetterFetchFn> = {
|
|
33
|
-
authFn: TFn
|
|
34
|
-
params?: OmitFetchOptions<Parameters<TFn>[0]>
|
|
35
|
-
options: UseAuthQueryOptions<TFn>
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export function useAuthQuery<TFn extends BetterFetchFn>({
|
|
39
|
-
authFn,
|
|
40
|
-
params,
|
|
41
|
-
options
|
|
42
|
-
}: UseAuthQueryProps<TFn>) {
|
|
43
|
-
return useQuery<InferData<TFn>, BetterFetchError>({
|
|
44
|
-
queryFn: async () => {
|
|
45
|
-
const result = await authFn({ ...params, fetchOptions: { throw: true } })
|
|
46
|
-
return result as InferData<TFn>
|
|
47
|
-
},
|
|
48
|
-
...options
|
|
49
|
-
})
|
|
50
|
-
}
|