@shopify/shopify-app-remix
Version:
Shopify Remix - to simplify the building of Shopify Apps with Remix
33 lines (26 loc) • 735 B
text/typescript
import {Session} from '@shopify/shopify-api';
import {BasicParams} from '../../types';
import type {StorefrontContext} from '.';
export function storefrontClientFactory({
params,
session,
}: {
params: BasicParams;
session: Session;
}): StorefrontContext {
const {api} = params;
return {
graphql: async (query, options = {}) => {
const client = new api.clients.Storefront({
session,
apiVersion: options.apiVersion,
});
const apiResponse = await client.request(query, {
variables: options?.variables,
retries: options?.tries ? options.tries - 1 : 0,
headers: options?.headers,
});
return new Response(JSON.stringify(apiResponse));
},
};
}