@shopify/shopify-app-remix
Version:
Shopify Remix - to simplify the building of Shopify Apps with Remix
33 lines (27 loc) • 793 B
text/typescript
import {Session} from '@shopify/shopify-api';
import {AppDistribution, BasicParams} from '../types';
import refreshToken from './refresh-token';
// 5 minutes
export const WITHIN_MILLISECONDS_OF_EXPIRY = 5 * 60 * 1000;
export async function ensureOfflineTokenIsNotExpired(
session: Session,
params: BasicParams,
shop: string,
) {
const {config} = params;
if (
config.future?.expiringOfflineAccessTokens &&
session.isExpired(WITHIN_MILLISECONDS_OF_EXPIRY) &&
config.distribution !== AppDistribution.ShopifyAdmin &&
session.refreshToken
) {
const offlineSession = await refreshToken(
params,
shop,
session.refreshToken,
);
await config.sessionStorage!.storeSession(offlineSession);
return offlineSession;
}
return session;
}