mirror of
https://github.com/vercel/commerce.git
synced 2025-06-19 21:51:21 +00:00
39 lines
895 B
TypeScript
39 lines
895 B
TypeScript
import { FetcherOptions } from '@commerce/utils/types'
|
|
import { CreateToken, Mutation, MutationTokenCreateArgs } from '../schema'
|
|
import { setToken, setCSRFToken } from './customer-token'
|
|
import * as mutation from './mutations'
|
|
import throwUserErrors from './throw-user-errors'
|
|
|
|
const handleLogin = (data: CreateToken) => {
|
|
throwUserErrors(data?.errors)
|
|
|
|
const token = data?.token
|
|
|
|
if (token) {
|
|
setToken(token)
|
|
setCSRFToken(token)
|
|
}
|
|
|
|
return token
|
|
}
|
|
|
|
export const handleAutomaticLogin = async (
|
|
fetch: <T = any, B = Body>(options: FetcherOptions<B>) => Promise<T>,
|
|
input: MutationTokenCreateArgs
|
|
) => {
|
|
try {
|
|
const { tokenCreate } = await fetch<
|
|
Mutation,
|
|
MutationTokenCreateArgs
|
|
>({
|
|
query: mutation.sessionCreate,
|
|
variables: { ...input },
|
|
})
|
|
handleLogin(tokenCreate!)
|
|
} catch (error) {
|
|
//
|
|
}
|
|
}
|
|
|
|
export default handleLogin
|