nuxt-graphql-client
Version:
[](https://nuxt-graphql-client.web.app)
22 lines (21 loc) • 879 B
JavaScript
import { GraphQLClient } from "graphql-request";
import { defineNitroPlugin } from "#internal/nitro";
import GqlNitro from "#gql-nitro";
export default defineNitroPlugin(() => {
const GqlConfig = GqlNitro.config;
for (const [client, conf] of Object.entries(GqlConfig)) {
const serverHeaders = typeof conf?.headers?.serverOnly === "object" && conf?.headers?.serverOnly || void 0;
if (conf?.headers?.serverOnly) {
delete conf.headers.serverOnly;
}
const tokenName = conf.token.name;
const tokenType = conf.token.type;
const authToken = !tokenType ? conf?.token?.value : `${tokenType} ${conf?.token?.value}`;
const headers = {
...conf?.headers,
...serverHeaders,
...conf?.token?.value && { [tokenName]: authToken }
};
GqlNitro.clients[client] = new GraphQLClient(conf.host, { headers, ...conf.fetchOptions });
}
});