UNPKG

@shopify/shopify-api

Version:

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

48 lines (45 loc) 1.61 kB
import { BillingError } from '../error.mjs'; import { graphqlClientClass } from '../clients/admin/graphql/client.mjs'; import '@shopify/admin-api-client'; import 'lossless-json'; import '../types.mjs'; import 'compare-versions'; import { APP_SUBSCRIPTION_FRAGMENT } from './types.mjs'; import { convertLineItems } from './utils.mjs'; const SUBSCRIPTION_QUERY = ` ${APP_SUBSCRIPTION_FRAGMENT} query appSubscription { currentAppInstallation { activeSubscriptions { ...AppSubscriptionFragment } } } `; function subscriptions(config) { return async function ({ session, }) { if (!config.future?.unstable_managedPricingSupport && !config.billing) { throw new BillingError({ message: 'Attempted to look for purchases without billing configs', errorData: [], }); } const GraphqlClient = graphqlClientClass({ config }); const client = new GraphqlClient({ session }); const response = await client.request(SUBSCRIPTION_QUERY); if (!response.data?.currentAppInstallation?.activeSubscriptions) { return { activeSubscriptions: [] }; } const activeSubscriptions = response.data.currentAppInstallation.activeSubscriptions; activeSubscriptions.forEach((subscription) => { if (subscription.lineItems) { subscription.lineItems = convertLineItems(subscription.lineItems); } }); return { activeSubscriptions, }; }; } export { subscriptions }; //# sourceMappingURL=subscriptions.mjs.map