@techsio/storefront-data
Version:
Medusa-first storefront data layer built on TanStack Query.
38 lines • 4.72 kB
TypeScript
import { type CacheConfig } from "../shared/cache-config";
import type { MutationOptions, SuspenseQueryOptions } from "../shared/hook-types";
import { type QueryKey, type QueryNamespace } from "../shared/query-keys";
import type { AuthQueryInput, AuthQueryKeys, AuthService, UseAuthResult, UseSuspenseAuthResult } from "./types";
export type CreateAuthHooksConfig<TCustomer, TLoginInput, TRegisterInput, TUpdateInput, TCreateCustomerInput = unknown, TLoginResult = unknown, TRegisterResult = unknown, TRequestAccountDeactivationResult = unknown, TConfirmAccountDeactivationInput = unknown, TConfirmAccountDeactivationResult = unknown> = {
service: AuthService<TCustomer, TLoginInput, TRegisterInput, TUpdateInput, TCreateCustomerInput, TLoginResult, TRegisterResult, TRequestAccountDeactivationResult, TConfirmAccountDeactivationInput, TConfirmAccountDeactivationResult>;
queryKeys?: AuthQueryKeys;
queryKeyNamespace?: QueryNamespace;
cacheConfig?: CacheConfig;
invalidateOnAuthChange?: {
/**
* Include default cross-domain keys (`customer`, `orders`).
* Enabled by default.
*/
includeDefaults?: boolean;
/** Additional key prefixes to invalidate on auth changes. */
invalidate?: readonly QueryKey[];
/** Additional key prefixes to remove when logging out. */
removeOnLogout?: readonly QueryKey[];
};
};
export type AuthMutationOptions<TData, TVariables, TContext = unknown> = MutationOptions<TData, TVariables, TContext>;
export declare function createAuthHooks<TCustomer, TLoginInput, TRegisterInput, TUpdateInput, TCreateCustomerInput = unknown, TLoginResult = unknown, TRegisterResult = unknown, TRequestAccountDeactivationResult = unknown, TConfirmAccountDeactivationInput = unknown, TConfirmAccountDeactivationResult = unknown>({ service, queryKeys, queryKeyNamespace, cacheConfig, invalidateOnAuthChange, }: CreateAuthHooksConfig<TCustomer, TLoginInput, TRegisterInput, TUpdateInput, TCreateCustomerInput, TLoginResult, TRegisterResult, TRequestAccountDeactivationResult, TConfirmAccountDeactivationInput, TConfirmAccountDeactivationResult>): {
useAuth: (options?: AuthQueryInput<TCustomer>) => UseAuthResult<TCustomer>;
useSuspenseAuth: (options?: {
queryOptions?: SuspenseQueryOptions<TCustomer | null>;
}) => UseSuspenseAuthResult<TCustomer>;
useLogin: <TContext = unknown>(options?: AuthMutationOptions<TLoginResult, TLoginInput, TContext>) => import("@tanstack/react-query").UseMutationResult<TLoginResult, unknown, TLoginInput, TContext>;
useRegister: <TContext = unknown>(options?: AuthMutationOptions<TRegisterResult, TRegisterInput, TContext>) => import("@tanstack/react-query").UseMutationResult<TRegisterResult, unknown, TRegisterInput, TContext>;
useCreateCustomer: <TContext = unknown>(options?: AuthMutationOptions<TCustomer, TCreateCustomerInput, TContext>) => import("@tanstack/react-query").UseMutationResult<TCustomer, unknown, TCreateCustomerInput, TContext>;
useRequestAccountDeactivation: <TContext = unknown>(options?: AuthMutationOptions<TRequestAccountDeactivationResult, void, TContext>) => import("@tanstack/react-query").UseMutationResult<TRequestAccountDeactivationResult, unknown, void, TContext>;
useConfirmAccountDeactivation: <TContext = unknown>(options?: AuthMutationOptions<TConfirmAccountDeactivationResult, TConfirmAccountDeactivationInput, TContext>) => import("@tanstack/react-query").UseMutationResult<TConfirmAccountDeactivationResult, unknown, TConfirmAccountDeactivationInput, TContext>;
useLogout: <TContext = unknown>(options?: AuthMutationOptions<void, void, TContext>) => import("@tanstack/react-query").UseMutationResult<void, unknown, void, TContext>;
useUpdateCustomer: <TContext = unknown>(options?: AuthMutationOptions<TCustomer, TUpdateInput, TContext>) => import("@tanstack/react-query").UseMutationResult<TCustomer, unknown, TUpdateInput, TContext>;
useRefreshAuth: <TContext = unknown>(options?: AuthMutationOptions<unknown, void, TContext>) => import("@tanstack/react-query").UseMutationResult<unknown, unknown, void, TContext>;
};
export type AuthHooks<TCustomer, TLoginInput, TRegisterInput, TUpdateInput, TCreateCustomerInput = unknown, TLoginResult = unknown, TRegisterResult = unknown, TRequestAccountDeactivationResult = unknown, TConfirmAccountDeactivationInput = unknown, TConfirmAccountDeactivationResult = unknown> = ReturnType<typeof createAuthHooks<TCustomer, TLoginInput, TRegisterInput, TUpdateInput, TCreateCustomerInput, TLoginResult, TRegisterResult, TRequestAccountDeactivationResult, TConfirmAccountDeactivationInput, TConfirmAccountDeactivationResult>>;
//# sourceMappingURL=hooks.d.ts.map