@shopify/shopify-api
Version:
Shopify API Library for Node - accelerate development with support for authentication, graphql proxy, webhooks
34 lines (31 loc) • 1.1 kB
JavaScript
import { InvalidSession, MissingRequiredArgument } from '../../error.mjs';
import { graphqlClientClass } from '../admin/graphql/client.mjs';
import '@shopify/admin-api-client';
import 'lossless-json';
import '../../types.mjs';
import 'compare-versions';
function graphqlProxy(config) {
return async ({ session, rawBody }) => {
if (!session.accessToken) {
throw new InvalidSession('Cannot proxy query. Session not authenticated.');
}
const GraphqlClient = graphqlClientClass({ config });
const client = new GraphqlClient({ session });
let query;
let variables;
if (typeof rawBody === 'string') {
query = rawBody;
}
else {
query = rawBody.query;
variables = rawBody.variables;
}
if (!query) {
throw new MissingRequiredArgument('Query missing.');
}
const response = await client.request(query, { variables });
return { body: response, headers: {} };
};
}
export { graphqlProxy };
//# sourceMappingURL=graphql_proxy.mjs.map