wgc
Version:
The official CLI tool to manage the GraphQL Federation Platform Cosmo
31 lines • 1.52 kB
JavaScript
import { compressionBrotli, compressionGzip, createConnectTransport } from '@connectrpc/connect-node';
import { createPromiseClient } from '@connectrpc/connect';
import { PlatformService } from '@wundergraph/cosmo-connect/dist/platform/v1/platform_connect';
import { NodeService } from '@wundergraph/cosmo-connect/dist/node/v1/node_connect';
import { HttpsProxyAgent } from 'https-proxy-agent';
export const CreateClient = (opts) => {
const transport = createConnectTransport({
// Requests will be made to <baseUrl>/<package>.<service>/method
baseUrl: opts.baseUrl,
// You have to tell the Node.js http API which HTTP version to use.
httpVersion: '1.1',
nodeOptions: {
...(opts.proxyUrl ? { agent: new HttpsProxyAgent(opts.proxyUrl) } : {}),
},
// Avoid compression for small requests
compressMinBytes: 1024,
acceptCompression: [compressionBrotli, compressionGzip],
// The default limit is the maximum supported value of ~4GiB
// We go with 32MiB to avoid allocating too much memory for large requests
writeMaxBytes: 32 * 1024 * 1024,
sendCompression: compressionBrotli,
// Interceptors apply to all calls running through this transport.
interceptors: [],
defaultTimeoutMs: 75000,
});
return {
platform: createPromiseClient(PlatformService, transport),
node: createPromiseClient(NodeService, transport),
};
};
//# sourceMappingURL=client.js.map