diff --git a/packages/graphql-zeus-core/TreeToTS/functions/generated.ts b/packages/graphql-zeus-core/TreeToTS/functions/generated.ts index c46f258..cfbc575 100644 --- a/packages/graphql-zeus-core/TreeToTS/functions/generated.ts +++ b/packages/graphql-zeus-core/TreeToTS/functions/generated.ts @@ -1,3 +1,5 @@ +import type { Environment } from '@/Models'; + export default `const handleFetchResponse = (response: Response): Promise => { if (!response.ok) { return new Promise((_, reject) => { @@ -799,13 +801,15 @@ export const $ = (name: N return (START_VAR_NAME + name + GRAPHQL_TYPE_SEPARATOR + graphqlType) as unknown as Variable; };`; -export const subscriptionFunctions = { +export const subscriptionFunctions = (env: Environment) => ({ 'graphql-ws': `import { createClient, type Sink } from 'graphql-ws'; // keep export const apiSubscription = (options: chainOptions) => { const client = createClient({ url: String(options[0]), - connectionParams: Object.fromEntries(new Headers(options[1]?.headers).entries()), + connectionParams: Object.fromEntries(new Headers(options[1]?.headers).entries()),${ + env === 'node' ? '\n webSocketImpl: WebSocket,' : '' + } }); const ws = new Proxy( @@ -889,4 +893,4 @@ export const apiSubscription = (options: chainOptions) => { throw new Error('No websockets implemented'); } };`, -}; +}); diff --git a/packages/graphql-zeus-core/TreeToTS/index.ts b/packages/graphql-zeus-core/TreeToTS/index.ts index 663cd0e..25dcea4 100644 --- a/packages/graphql-zeus-core/TreeToTS/index.ts +++ b/packages/graphql-zeus-core/TreeToTS/index.ts @@ -110,7 +110,7 @@ export class TreeToTS { }';`.concat( env === 'node' ? ` -import fetch, { Response } from 'node-fetch'; +import fetch, {${subscriptions === 'graphql-ws' ? ' Headers,' : ''} Response } from 'node-fetch'; import WebSocket from 'ws';` : ``, ), @@ -120,7 +120,7 @@ import WebSocket from 'ws';` .concat('\n') .concat(headers ? `export const HEADERS = ${JSON.stringify(headers)}` : '\n\nexport const HEADERS = {}') .concat('\n') - .concat(subscriptionFunctions[subscriptions]) + .concat(subscriptionFunctions(env)[subscriptions]) .concat('\n') .concat(typescriptFunctions) .concat('\n')