chore: Fix types errors

This commit is contained in:
Alessandro Casazza 2021-07-09 20:27:37 +02:00
parent d47908def5
commit 4adba68c4c
No known key found for this signature in database
GPG Key ID: 3AF41B06C6495D3D
3 changed files with 35 additions and 29 deletions

View File

@ -1,5 +1,5 @@
import type { CommerceAPI, CommerceAPIConfig } from '@commerce/api'
import type { RequestInit } from '@vercel/fetch'
import type { RequestInit, Response, Fetch } from '@vercel/fetch'
import { getCommerceApi as commerceApi } from '@commerce/api'
import createFetcher from './utils/fetch-api'
@ -12,15 +12,17 @@ import getAllProducts from './operations/get-all-products'
import getProduct from './operations/get-product'
import { getToken } from './utils/get-token'
import fetch from './utils/fetch'
export interface CommercelayerConfig extends CommerceAPIConfig {
export interface CommercelayerConfig extends Omit<CommerceAPIConfig, 'fetch'> {
apiClientId: string
apiFetch<T>(
apiToken: string
apiFetch(
query: string,
endpoint: string,
fetchOptions?: RequestInit,
user?: UserCredentials
): Promise<T>
): Promise<{ data: any; res: Response }>
}
export type UserCredentials = {
@ -51,22 +53,21 @@ if (!MARKET_SCOPE) {
}
export async function getAccessToken(user?: UserCredentials) {
const token = await getToken({
return await getToken({
clientId: CLIENT_ID,
endpoint: ENDPOINT,
scope: MARKET_SCOPE,
user,
})
return token
}
export interface CommercelayerConfig extends CommerceAPIConfig {}
const config: CommercelayerConfig = {
commerceUrl: ENDPOINT,
apiClientId: CLIENT_ID,
cartCookie: '',
customerCookie: '',
cartCookieMaxAge: 2592000,
apiToken: '',
apiFetch: createFetcher(() => getCommerceApi().getConfig()),
}

View File

@ -3,7 +3,8 @@ import { FetcherError } from '@commerce/utils/errors'
import { CommercelayerConfig, getAccessToken, UserCredentials } from '../index'
import fetch from './fetch'
const fetchApi = <T>(getConfig: () => CommercelayerConfig) =>
const fetchApi =
(getConfig: () => CommercelayerConfig) =>
async (
query: string,
endpoint: string,
@ -12,7 +13,7 @@ const fetchApi = <T>(getConfig: () => CommercelayerConfig) =>
) => {
const config = getConfig()
const getToken = await getAccessToken(user)
const token = getToken.accessToken
const token = getToken?.accessToken
const res = await fetch(config.commerceUrl + endpoint, {
...fetchOptions,
method: 'POST',
@ -22,7 +23,7 @@ const fetchApi = <T>(getConfig: () => CommercelayerConfig) =>
Authorization: `Bearer ${token}`,
},
body: JSON.stringify({
query
query,
}),
})

View File

@ -1,36 +1,40 @@
import Cookies from "js-cookie";
import { getSalesChannelToken } from "@commercelayer/js-auth";
import Cookies from 'js-cookie'
import { getSalesChannelToken } from '@commercelayer/js-auth'
type GetTokenObj = {
clientId?: string;
endpoint?: string;
scope?: string;
user?: any;
};
clientId?: string
endpoint?: string
scope?: string
user?: any
}
export async function getToken({
clientId,
endpoint,
scope = "market:all",
user
scope = 'market:all',
user,
}: GetTokenObj) {
let token = "" as any;
const getCookieToken = Cookies.get("clAccessToken");
const getCookieToken = Cookies.get('clAccessToken')
if (!getCookieToken && clientId && endpoint) {
const auth = await getSalesChannelToken(
{
clientId,
endpoint,
scope
scope,
},
user
);
token = auth?.accessToken;
Cookies.set("clAccessToken", auth?.accessToken as string, {
)
Cookies.set('clAccessToken', auth?.accessToken as string, {
// @ts-ignore
expires: auth?.expires
});
return auth ? { accessToken: auth.accessToken, customerId: auth.data.owner_id, ...auth.data } : null
expires: auth?.expires,
})
return auth
? {
accessToken: auth.accessToken,
customerId: auth.data.owner_id,
...auth.data,
}
: null
}
return getCookieToken || "";
return { accessToken: getCookieToken }
}