UNPKG

@shopify/shopify-api

Version:

Shopify API Library for Node - accelerate development with support for authentication, graphql proxy, webhooks

42 lines (39 loc) 1.55 kB
import { throwFailedRequest } from '../../clients/common.mjs'; import { DataType } from '../../clients/types.mjs'; import { fetchRequestFactory } from '../../utils/fetch-request.mjs'; import { sanitizeShop } from '../../utils/shop-validator.mjs'; import { createSession } from './create-session.mjs'; const RefreshTokenGrantType = 'refresh_token'; function refreshToken(config) { return async ({ shop, refreshToken }) => { const body = { client_id: config.apiKey, client_secret: config.apiSecretKey, refresh_token: refreshToken, grant_type: RefreshTokenGrantType, }; const cleanShop = sanitizeShop(config)(shop, true); const postResponse = await fetchRequestFactory(config)(`https://${cleanShop}/admin/oauth/access_token`, { method: 'POST', body: JSON.stringify(body), headers: { 'Content-Type': DataType.JSON, Accept: DataType.JSON, }, }); if (!postResponse.ok) { throwFailedRequest(await postResponse.json(), false, postResponse); } return { session: createSession({ accessTokenResponse: await postResponse.json(), shop: cleanShop, // We need to keep this as an empty string as our template DB schemas have this required state: '', config, }), }; }; } export { refreshToken }; //# sourceMappingURL=refresh-token.mjs.map