UNPKG

@konkonam/nuxt-shopify

Version:

Easily integrate shopify with nuxt 3 and 4 🚀

32 lines (31 loc) • 1.16 kB
import { createAdminApiClient } from "@shopify/admin-api-client"; import { createConsola } from "consola"; import { useNitroApp } from "nitropack/runtime"; import useErrors from "./useErrors.js"; import { useRuntimeConfig } from "#imports"; export function useAdmin() { const { _shopify } = useRuntimeConfig(); if (!_shopify?.clients.admin) { throw new Error("Could not create admin client"); } const { skipCodegen: _skipCodegen, sandbox: _sandbox, documents: _documents, ...options } = _shopify.clients.admin; if (_shopify.logger) { options.logger = createConsola(_shopify.logger).withTag("shopify").trace; } const nitroApp = useNitroApp(); nitroApp.hooks.callHook("admin:client:configure", { options }); const { request, ...rest } = createAdminApiClient(options); const wrappedRequest = async (...params) => { const response = await request(...params); if (response.errors) useErrors(nitroApp, response.errors, _shopify.errors?.throw ?? false); return response; }; const client = { request: wrappedRequest, ...rest }; nitroApp.hooks.callHook("admin:client:create", { client }); return client; }