@codex-data/sdk 1.0.36 → 1.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/dist/resources/graphql.d.ts +69 -14
  2. package/dist/resources/graphql.d.ts.map +1 -1
  3. package/dist/resources/graphql.js +5 -2
  4. package/dist/resources/graphql.js.map +1 -1
  5. package/dist/sdk/Subscribe.js +5 -5
  6. package/dist/sdk/generated/gql.d.ts +24 -24
  7. package/dist/sdk/generated/gql.d.ts.map +1 -1
  8. package/dist/sdk/generated/gql.js +12 -12
  9. package/dist/sdk/generated/gql.js.map +1 -1
  10. package/dist/sdk/generated/graphql.d.ts +95 -14
  11. package/dist/sdk/generated/graphql.d.ts.map +1 -1
  12. package/dist/sdk/generated/graphql.js +17 -14
  13. package/dist/sdk/generated/graphql.js.map +1 -1
  14. package/package.json +2 -3
  15. package/dist/scripts/buildSdk.d.ts +0 -2
  16. package/dist/scripts/buildSdk.d.ts.map +0 -1
  17. package/dist/scripts/buildSdk.js +0 -135
  18. package/dist/scripts/buildSdk.js.map +0 -1
  19. package/dist/scripts/generateGraphql.d.ts +0 -31
  20. package/dist/scripts/generateGraphql.d.ts.map +0 -1
  21. package/dist/scripts/generateGraphql.js +0 -224
  22. package/dist/scripts/generateGraphql.js.map +0 -1
  23. package/dist/scripts/generateNetworkConfigs.d.ts +0 -2
  24. package/dist/scripts/generateNetworkConfigs.d.ts.map +0 -1
  25. package/dist/scripts/generateNetworkConfigs.js +0 -243
  26. package/dist/scripts/generateNetworkConfigs.js.map +0 -1
  27. package/src/index.ts +0 -2
  28. package/src/resources/.keep +0 -0
  29. package/src/resources/generated_mutations/BackfillWalletAggregates.graphql +0 -6
  30. package/src/resources/generated_mutations/CreateApiTokens.graphql +0 -9
  31. package/src/resources/generated_mutations/CreateWebhooks.graphql +0 -472
  32. package/src/resources/generated_mutations/DeleteApiToken.graphql +0 -3
  33. package/src/resources/generated_mutations/DeleteWebhooks.graphql +0 -5
  34. package/src/resources/generated_queries/ApiToken.graphql +0 -9
  35. package/src/resources/generated_queries/ApiTokens.graphql +0 -9
  36. package/src/resources/generated_queries/Balances.graphql +0 -97
  37. package/src/resources/generated_queries/Blocks.graphql +0 -7
  38. package/src/resources/generated_queries/ChartUrls.graphql +0 -7
  39. package/src/resources/generated_queries/DetailedWalletStats.graphql +0 -197
  40. package/src/resources/generated_queries/FilterExchanges.graphql +0 -43
  41. package/src/resources/generated_queries/FilterNftCollections.graphql +0 -569
  42. package/src/resources/generated_queries/FilterNftParallelAssets.graphql +0 -60
  43. package/src/resources/generated_queries/FilterNftPoolCollections.graphql +0 -71
  44. package/src/resources/generated_queries/FilterNftPools.graphql +0 -124
  45. package/src/resources/generated_queries/FilterPairs.graphql +0 -447
  46. package/src/resources/generated_queries/FilterTokenWallets.graphql +0 -144
  47. package/src/resources/generated_queries/FilterTokens.graphql +0 -570
  48. package/src/resources/generated_queries/FilterWallets.graphql +0 -57
  49. package/src/resources/generated_queries/GetBars.graphql +0 -232
  50. package/src/resources/generated_queries/GetCommunityNotes.graphql +0 -140
  51. package/src/resources/generated_queries/GetDetailedNftStats.graphql +0 -831
  52. package/src/resources/generated_queries/GetDetailedPairStats.graphql +0 -990
  53. package/src/resources/generated_queries/GetDetailedPairsStats.graphql +0 -974
  54. package/src/resources/generated_queries/GetEventLabels.graphql +0 -35
  55. package/src/resources/generated_queries/GetExchanges.graphql +0 -12
  56. package/src/resources/generated_queries/GetNetworkConfigs.graphql +0 -129
  57. package/src/resources/generated_queries/GetNetworkStats.graphql +0 -20
  58. package/src/resources/generated_queries/GetNetworkStatus.graphql +0 -8
  59. package/src/resources/generated_queries/GetNetworks.graphql +0 -7
  60. package/src/resources/generated_queries/GetNftAssets.graphql +0 -59
  61. package/src/resources/generated_queries/GetNftCollectionMetadata.graphql +0 -75
  62. package/src/resources/generated_queries/GetNftContracts.graphql +0 -39
  63. package/src/resources/generated_queries/GetNftEvents.graphql +0 -100
  64. package/src/resources/generated_queries/GetNftPool.graphql +0 -74
  65. package/src/resources/generated_queries/GetNftPoolCollection.graphql +0 -33
  66. package/src/resources/generated_queries/GetNftPoolCollectionsByExchange.graphql +0 -38
  67. package/src/resources/generated_queries/GetNftPoolEvents.graphql +0 -416
  68. package/src/resources/generated_queries/GetNftPoolStats.graphql +0 -40
  69. package/src/resources/generated_queries/GetNftPoolsByCollectionAndExchange.graphql +0 -89
  70. package/src/resources/generated_queries/GetNftPoolsByOwner.graphql +0 -89
  71. package/src/resources/generated_queries/GetParallelCardChanges.graphql +0 -57
  72. package/src/resources/generated_queries/GetPrimePoolAssets.graphql +0 -32
  73. package/src/resources/generated_queries/GetPrimePoolEvents.graphql +0 -156
  74. package/src/resources/generated_queries/GetPrimePools.graphql +0 -62
  75. package/src/resources/generated_queries/GetSymbol.graphql +0 -11
  76. package/src/resources/generated_queries/GetTokenBars.graphql +0 -121
  77. package/src/resources/generated_queries/GetTokenEvents.graphql +0 -102
  78. package/src/resources/generated_queries/GetTokenEventsForMaker.graphql +0 -102
  79. package/src/resources/generated_queries/GetTokenPrices.graphql +0 -8
  80. package/src/resources/generated_queries/GetWebhooks.graphql +0 -134
  81. package/src/resources/generated_queries/Holders.graphql +0 -100
  82. package/src/resources/generated_queries/LiquidityLocks.graphql +0 -32
  83. package/src/resources/generated_queries/LiquidityMetadata.graphql +0 -17
  84. package/src/resources/generated_queries/LiquidityMetadataByToken.graphql +0 -19
  85. package/src/resources/generated_queries/ListPairsForToken.graphql +0 -193
  86. package/src/resources/generated_queries/ListPairsWithMetadataForToken.graphql +0 -374
  87. package/src/resources/generated_queries/NftHolders.graphql +0 -12
  88. package/src/resources/generated_queries/PairMetadata.graphql +0 -234
  89. package/src/resources/generated_queries/PrimeHolders.graphql +0 -98
  90. package/src/resources/generated_queries/SearchNfts.graphql +0 -35
  91. package/src/resources/generated_queries/Token.graphql +0 -82
  92. package/src/resources/generated_queries/TokenLifecycleEvents.graphql +0 -34
  93. package/src/resources/generated_queries/TokenSparklines.graphql +0 -11
  94. package/src/resources/generated_queries/TokenTopTraders.graphql +0 -26
  95. package/src/resources/generated_queries/Tokens.graphql +0 -82
  96. package/src/resources/generated_queries/Top10HoldersPercent.graphql +0 -3
  97. package/src/resources/generated_queries/WalletAggregateBackfillState.graphql +0 -6
  98. package/src/resources/generated_queries/WalletChart.graphql +0 -20
  99. package/src/resources/generated_queries/WalletNftCollectionAssets.graphql +0 -11
  100. package/src/resources/generated_queries/WalletNftCollections.graphql +0 -10
  101. package/src/resources/generated_subscriptions/OnBalanceUpdated.graphql +0 -94
  102. package/src/resources/generated_subscriptions/OnBarsUpdated.graphql +0 -547
  103. package/src/resources/generated_subscriptions/OnDetailedStatsUpdated.graphql +0 -325
  104. package/src/resources/generated_subscriptions/OnEventLabelCreated.graphql +0 -22
  105. package/src/resources/generated_subscriptions/OnEventsCreated.graphql +0 -105
  106. package/src/resources/generated_subscriptions/OnEventsCreatedByMaker.graphql +0 -92
  107. package/src/resources/generated_subscriptions/OnHoldersUpdated.graphql +0 -100
  108. package/src/resources/generated_subscriptions/OnLatestPairUpdated.graphql +0 -42
  109. package/src/resources/generated_subscriptions/OnLatestTokens.graphql +0 -37
  110. package/src/resources/generated_subscriptions/OnLaunchpadTokenEvent.graphql +0 -97
  111. package/src/resources/generated_subscriptions/OnLaunchpadTokenEventBatch.graphql +0 -96
  112. package/src/resources/generated_subscriptions/OnNftAssetsCreated.graphql +0 -42
  113. package/src/resources/generated_subscriptions/OnNftEventsCreated.graphql +0 -82
  114. package/src/resources/generated_subscriptions/OnNftPoolEventsCreated.graphql +0 -412
  115. package/src/resources/generated_subscriptions/OnPairMetadataUpdated.graphql +0 -226
  116. package/src/resources/generated_subscriptions/OnPriceUpdated.graphql +0 -16
  117. package/src/resources/generated_subscriptions/OnPricesUpdated.graphql +0 -8
  118. package/src/resources/generated_subscriptions/OnTokenBarsUpdated.graphql +0 -545
  119. package/src/resources/generated_subscriptions/OnTokenEventsCreated.graphql +0 -92
  120. package/src/resources/generated_subscriptions/OnTokenLifecycleEventsCreated.graphql +0 -30
  121. package/src/resources/generated_subscriptions/OnUnconfirmedBarsUpdated.graphql +0 -115
  122. package/src/resources/generated_subscriptions/OnUnconfirmedEventsCreated.graphql +0 -50
  123. package/src/resources/generated_subscriptions/OnUnconfirmedEventsCreatedByMaker.graphql +0 -41
  124. package/src/resources/graphql.schema.json +0 -63375
  125. package/src/resources/graphql.ts +0 -10422
  126. package/src/resources/mutations_override/CreateWebhooks.graphql +0 -472
  127. package/src/resources/networkConfigs.json +0 -3726
  128. package/src/resources/queries_override/FilterTokenWallets.graphql +0 -144
  129. package/src/resources/queries_override/GetEventLabels.graphql +0 -35
  130. package/src/resources/queries_override/GetNetworkConfigs.graphql +0 -129
  131. package/src/resources/queries_override/GetWebhooks.graphql +0 -134
  132. package/src/resources/schema.graphql +0 -9916
  133. package/src/resources/subscriptions_override/OnEventLabelCreated.graphql +0 -22
  134. package/src/resources/subscriptions_override/OnLaunchpadTokenEventBatch.graphql +0 -96
  135. package/src/scripts/buildSdk.ts +0 -173
  136. package/src/scripts/generateGraphql.ts +0 -305
  137. package/src/scripts/generateNetworkConfigs.ts +0 -241
  138. package/src/sdk/Mutation.ts +0 -29
  139. package/src/sdk/Query.ts +0 -285
  140. package/src/sdk/Subscribe.ts +0 -465
  141. package/src/sdk/generated/fragment-masking.ts +0 -87
  142. package/src/sdk/generated/gql.ts +0 -610
  143. package/src/sdk/generated/graphql.ts +0 -11361
  144. package/src/sdk/generated/index.ts +0 -2
  145. package/src/sdk/graphql/GetPairEvents.graphql +0 -71
  146. package/src/sdk/index.test.ts +0 -454
  147. package/src/sdk/index.ts +0 -239
  148. package/src/sdk/invariant.ts +0 -34
@@ -1,2 +0,0 @@
1
- export * from "./fragment-masking";
2
- export * from "./gql";
@@ -1,71 +0,0 @@
1
- query PairEvents($cursor: String, $limit: Int, $direction: RankingDirection, $query: EventsQueryInput!) {
2
- pairEvents: getTokenEvents(
3
- query: $query,
4
- cursor: $cursor,
5
- limit: $limit,
6
- direction: $direction
7
- ) {
8
- cursor
9
- items {
10
- address
11
- baseTokenPrice
12
- blockHash
13
- blockNumber
14
- eventDisplayType
15
- eventType
16
- id
17
- liquidityToken
18
- maker
19
- networkId
20
- quoteToken
21
- token0PoolValueUsd
22
- token0SwapValueUsd
23
- timestamp
24
- token0ValueBase
25
- token1PoolValueUsd
26
- token1SwapValueUsd
27
- token1ValueBase
28
- transactionHash
29
- transactionIndex
30
- logIndex
31
- data {
32
- __typename
33
- ... on BurnEventData {
34
- amount0
35
- amount1
36
- amount0Shifted
37
- amount1Shifted
38
- type
39
- }
40
- ... on MintEventData {
41
- amount0
42
- amount1
43
- amount0Shifted
44
- amount1Shifted
45
- type
46
- }
47
- ... on PoolBalanceChangedEventData {
48
- amount0
49
- amount1
50
- amount0Shifted
51
- amount1Shifted
52
- type
53
- }
54
- ... on SwapEventData {
55
- amount0In
56
- amount0Out
57
- amount1In
58
- amount1Out
59
- amount0
60
- amount1
61
- amountNonLiquidityToken
62
- priceUsd
63
- priceUsdTotal
64
- priceBaseToken
65
- priceBaseTokenTotal
66
- type
67
- }
68
- }
69
- }
70
- }
71
- }
@@ -1,454 +0,0 @@
1
- import { DocumentNode } from "graphql";
2
-
3
- import { ApiConfig, Codex } from "./index";
4
-
5
- const getNetworksDocument = {
6
- kind: "Document",
7
- definitions: [
8
- {
9
- kind: "OperationDefinition",
10
- operation: "query",
11
- name: { kind: "Name", value: "Networks" },
12
- selectionSet: {
13
- kind: "SelectionSet",
14
- selections: [
15
- {
16
- kind: "Field",
17
- name: { kind: "Name", value: "getNetworks" },
18
- selectionSet: {
19
- kind: "SelectionSet",
20
- selections: [
21
- { kind: "Field", name: { kind: "Name", value: "id" } },
22
- { kind: "Field", name: { kind: "Name", value: "name" } },
23
- ],
24
- },
25
- },
26
- ],
27
- },
28
- },
29
- ],
30
- } as unknown as DocumentNode;
31
-
32
- const getNetworksString = `query GetNetworks { getNetworks { id } }`;
33
- const subscribePriceUpdatedString = `subscription onPriceUpdated($address: String!, $networkId: Int!) { onPriceUpdated(address: $address, networkId: $networkId) { address networkId priceUsd timestamp } }`;
34
-
35
- describe("Codex", () => {
36
- let sdk: Codex;
37
-
38
- beforeEach(() => {
39
- sdk = new Codex("dummy-key");
40
- });
41
-
42
- describe("constructor", () => {
43
- it("should initialize with default config when no apiConfig provided", () => {
44
- const sdkInstance = new Codex("test-key");
45
- expect(sdkInstance).toBeInstanceOf(Codex);
46
- expect(sdkInstance.queries).toBeDefined();
47
- expect(sdkInstance.mutations).toBeDefined();
48
- expect(sdkInstance.subscriptions).toBeDefined();
49
- });
50
-
51
- it("should throw error when apiKey is not provided", () => {
52
- expect(() => new Codex("")).toThrow("apiKey must be defined");
53
- expect(() => new Codex(null as any)).toThrow("apiKey must be defined");
54
- expect(() => new Codex(undefined as any)).toThrow(
55
- "apiKey must be defined",
56
- );
57
- });
58
-
59
- it("should initialize with custom apiConfig", () => {
60
- const customConfig: Partial<ApiConfig> = {
61
- apiUrl: "https://custom.api.com/graphql",
62
- apiRealtimeUrl: "wss://custom.api.com/graphql",
63
- headers: { "Custom-Header": "value" },
64
- wsHeaders: { "WS-Header": "ws-value" },
65
- ws: false,
66
- };
67
-
68
- const sdkInstance = new Codex("test-key", customConfig);
69
- expect(sdkInstance).toBeInstanceOf(Codex);
70
- });
71
-
72
- it("should merge custom config with default config", () => {
73
- const customConfig: Partial<ApiConfig> = {
74
- headers: { "Custom-Header": "value" },
75
- ws: false,
76
- };
77
-
78
- // Mock the createGraphQLClient and createWebsocketClient to verify they're called with merged config
79
- const createGraphQLClientSpy = jest.spyOn(
80
- Codex.prototype as any,
81
- "createGraphQLClient",
82
- );
83
- const createWebsocketClientSpy = jest.spyOn(
84
- Codex.prototype as any,
85
- "createWebsocketClient",
86
- );
87
-
88
- new Codex("test-key", customConfig);
89
-
90
- // Verify the merged config was used
91
- expect(createGraphQLClientSpy).toHaveBeenCalledWith(
92
- expect.objectContaining({
93
- apiUrl: "https://graph.codex.io/graphql", // default
94
- apiRealtimeUrl: "wss://graph.codex.io/graphql", // default
95
- headers: { "Custom-Header": "value" }, // custom
96
- ws: false, // custom
97
- }),
98
- );
99
-
100
- createGraphQLClientSpy.mockRestore();
101
- createWebsocketClientSpy.mockRestore();
102
- });
103
- });
104
-
105
- describe("updateConfig", () => {
106
- it("should update configuration and recreate clients", () => {
107
- const disposeSpy = jest.spyOn(sdk, "dispose");
108
- const createGraphQLClientSpy = jest.spyOn(
109
- sdk as any,
110
- "createGraphQLClient",
111
- );
112
- const createWebsocketClientSpy = jest.spyOn(
113
- sdk as any,
114
- "createWebsocketClient",
115
- );
116
-
117
- const newConfig: Partial<ApiConfig> = {
118
- apiUrl: "https://new-api.com/graphql",
119
- headers: { "New-Header": "new-value" },
120
- };
121
-
122
- sdk.updateConfig(newConfig);
123
-
124
- expect(disposeSpy).toHaveBeenCalled();
125
- expect(createGraphQLClientSpy).toHaveBeenCalled();
126
- expect(createWebsocketClientSpy).toHaveBeenCalled();
127
-
128
- disposeSpy.mockRestore();
129
- createGraphQLClientSpy.mockRestore();
130
- createWebsocketClientSpy.mockRestore();
131
- });
132
-
133
- it("should merge new config with existing config", () => {
134
- const initialConfig: Partial<ApiConfig> = {
135
- headers: { "Initial-Header": "initial-value" },
136
- ws: true,
137
- };
138
-
139
- const sdkWithConfig = new Codex("test-key", initialConfig);
140
- const parseConfigSpy = jest.spyOn(sdkWithConfig as any, "parseConfig");
141
-
142
- const updateConfig: Partial<ApiConfig> = {
143
- headers: { "Updated-Header": "updated-value" },
144
- apiUrl: "https://updated-api.com/graphql",
145
- };
146
-
147
- sdkWithConfig.updateConfig(updateConfig);
148
-
149
- // Verify parseConfig was called with merged configuration
150
- expect(parseConfigSpy).toHaveBeenCalledWith(
151
- expect.objectContaining({
152
- headers: { "Updated-Header": "updated-value" },
153
- apiUrl: "https://updated-api.com/graphql",
154
- ws: true, // from initial config
155
- }),
156
- );
157
-
158
- parseConfigSpy.mockRestore();
159
- });
160
-
161
- it("should dispose existing websocket connection before creating new one", () => {
162
- // Mock wsClient
163
- const mockDispose = jest.fn();
164
- (sdk as any).wsClient = { dispose: mockDispose };
165
-
166
- const disposeSpy = jest.spyOn(sdk, "dispose");
167
-
168
- sdk.updateConfig({ headers: { "New-Header": "value" } });
169
-
170
- expect(disposeSpy).toHaveBeenCalled();
171
- disposeSpy.mockRestore();
172
- });
173
- });
174
-
175
- describe("getRequestHeaders", () => {
176
- it("should return static headers when no dynamic headers are configured", async () => {
177
- const staticHeaders = { "Static-Header": "static-value" };
178
- const sdkWithHeaders = new Codex("test-key", { headers: staticHeaders });
179
-
180
- const headers = await (sdkWithHeaders as any).getRequestHeaders();
181
-
182
- expect(headers).toEqual(staticHeaders);
183
- });
184
-
185
- it("should return dynamic headers when applyHeaders is configured", async () => {
186
- const dynamicHeaders = { "Dynamic-Header": "dynamic-value" };
187
- const applyHeaders = jest.fn().mockResolvedValue(dynamicHeaders);
188
-
189
- const sdkWithDynamicHeaders = new Codex("test-key", { applyHeaders });
190
-
191
- const headers = await (sdkWithDynamicHeaders as any).getRequestHeaders();
192
-
193
- expect(applyHeaders).toHaveBeenCalled();
194
- expect(headers).toEqual(dynamicHeaders);
195
- });
196
-
197
- it("should merge static and dynamic headers with dynamic taking precedence", async () => {
198
- const staticHeaders = { "Header-1": "static", "Header-2": "static" };
199
- const dynamicHeaders = { "Header-2": "dynamic", "Header-3": "dynamic" };
200
- const applyHeaders = jest.fn().mockResolvedValue(dynamicHeaders);
201
-
202
- const sdkWithBothHeaders = new Codex("test-key", {
203
- headers: staticHeaders,
204
- applyHeaders,
205
- });
206
-
207
- const headers = await (sdkWithBothHeaders as any).getRequestHeaders();
208
-
209
- expect(headers).toEqual({
210
- "Header-1": "static",
211
- "Header-2": "dynamic", // dynamic overrides static
212
- "Header-3": "dynamic",
213
- });
214
- });
215
-
216
- it("should handle applyHeaders returning undefined", async () => {
217
- const staticHeaders = { "Static-Header": "static-value" };
218
- const applyHeaders = jest.fn().mockResolvedValue(undefined);
219
-
220
- const sdkWithUndefinedDynamic = new Codex("test-key", {
221
- headers: staticHeaders,
222
- applyHeaders,
223
- });
224
-
225
- const headers = await (
226
- sdkWithUndefinedDynamic as any
227
- ).getRequestHeaders();
228
-
229
- expect(headers).toEqual(staticHeaders);
230
- });
231
- });
232
-
233
- describe("fetch override", () => {
234
- it("should use the fetch override", async () => {
235
- const fetchMock = jest.fn((input, init) => {
236
- console.log("fetchMock", input, init);
237
- return Promise.resolve(
238
- new Response(
239
- JSON.stringify({
240
- data: { getNetworks: [] },
241
- }),
242
- {
243
- status: 200,
244
- headers: new Headers({
245
- "Content-Type": "application/json",
246
- }),
247
- },
248
- ),
249
- );
250
- });
251
-
252
- const sdkWithFetch = new Codex("test-key", { fetch: fetchMock });
253
- await sdkWithFetch.query(getNetworksDocument, {});
254
- expect(fetchMock).toHaveBeenCalled();
255
- });
256
- });
257
-
258
- describe("dispose", () => {
259
- it("should dispose websocket client when it exists", async () => {
260
- const mockDispose = jest.fn();
261
- (sdk as any).wsClient = { dispose: mockDispose };
262
-
263
- await sdk.dispose();
264
-
265
- expect(mockDispose).toHaveBeenCalled();
266
- });
267
-
268
- it("should not throw error when websocket client is undefined", async () => {
269
- (sdk as any).wsClient = undefined;
270
-
271
- await expect(sdk.dispose()).resolves.not.toThrow();
272
- });
273
- });
274
-
275
- describe("websocket configuration", () => {
276
- it("should create websocket client when ws is true (default)", () => {
277
- const createWebsocketClientSpy = jest.spyOn(
278
- Codex.prototype as any,
279
- "createWebsocketClient",
280
- );
281
-
282
- new Codex("test-key");
283
-
284
- expect(createWebsocketClientSpy).toHaveBeenCalledWith(
285
- expect.objectContaining({ ws: true }),
286
- );
287
-
288
- createWebsocketClientSpy.mockRestore();
289
- });
290
-
291
- it("should not create websocket client when ws is false", () => {
292
- const createWebsocketClientSpy = jest.spyOn(
293
- Codex.prototype as any,
294
- "createWebsocketClient",
295
- );
296
-
297
- new Codex("test-key", { ws: false });
298
-
299
- expect(createWebsocketClientSpy).toHaveBeenCalledWith(
300
- expect.objectContaining({ ws: false }),
301
- );
302
-
303
- createWebsocketClientSpy.mockRestore();
304
- });
305
-
306
- it("should throw error when trying to subscribe without websocket enabled", () => {
307
- const sdkWithoutWs = new Codex("test-key", { ws: false });
308
-
309
- expect(() => {
310
- sdkWithoutWs.subscribe(
311
- subscribePriceUpdatedString,
312
- { address: "0xtoken", networkId: 1 },
313
- { next: jest.fn(), error: jest.fn(), complete: jest.fn() },
314
- );
315
- }).toThrow("Websocket is not enabled in the config");
316
- });
317
- });
318
-
319
- describe("query", () => {
320
- it("should send a fetch request with the correct params", async () => {
321
- const fetchSpy = jest
322
- .spyOn(sdk["client"], "request")
323
- .mockResolvedValue({} as unknown);
324
-
325
- await sdk.query(getNetworksDocument, {});
326
-
327
- expect(fetchSpy).toHaveBeenCalledWith(getNetworksDocument, {}, {});
328
- });
329
-
330
- it("should include request headers in the request", async () => {
331
- const mockHeaders = { "Test-Header": "test-value" };
332
- const getRequestHeadersSpy = jest
333
- .spyOn(sdk as any, "getRequestHeaders")
334
- .mockResolvedValue(mockHeaders);
335
- const fetchSpy = jest
336
- .spyOn(sdk["client"], "request")
337
- .mockResolvedValue({} as unknown);
338
-
339
- await sdk.query(getNetworksDocument, {});
340
-
341
- expect(getRequestHeadersSpy).toHaveBeenCalled();
342
- expect(fetchSpy).toHaveBeenCalledWith(
343
- getNetworksDocument,
344
- {},
345
- mockHeaders,
346
- );
347
-
348
- getRequestHeadersSpy.mockRestore();
349
- });
350
- });
351
-
352
- describe("mutation", () => {
353
- it("should send a request with the correct params", async () => {
354
- const fetchSpy = jest
355
- .spyOn(sdk["client"], "request")
356
- .mockResolvedValue({} as unknown);
357
-
358
- await sdk.mutation(getNetworksDocument, {});
359
-
360
- expect(fetchSpy).toHaveBeenCalledWith(getNetworksDocument, {}, {});
361
- });
362
-
363
- it("should include request headers in the request", async () => {
364
- const mockHeaders = { "Test-Header": "test-value" };
365
- const getRequestHeadersSpy = jest
366
- .spyOn(sdk as any, "getRequestHeaders")
367
- .mockResolvedValue(mockHeaders);
368
- const fetchSpy = jest
369
- .spyOn(sdk["client"], "request")
370
- .mockResolvedValue({} as unknown);
371
-
372
- await sdk.mutation(getNetworksDocument, {});
373
-
374
- expect(getRequestHeadersSpy).toHaveBeenCalled();
375
- expect(fetchSpy).toHaveBeenCalledWith(
376
- getNetworksDocument,
377
- {},
378
- mockHeaders,
379
- );
380
-
381
- getRequestHeadersSpy.mockRestore();
382
- });
383
- });
384
-
385
- describe("send", () => {
386
- it("should return the results of the query", async () => {
387
- const fetchSpy = jest
388
- .spyOn(sdk["client"], "request")
389
- .mockResolvedValue({} as unknown);
390
-
391
- await sdk.send(getNetworksString, {});
392
-
393
- expect(fetchSpy).toHaveBeenCalledWith(getNetworksString, {}, {});
394
- });
395
-
396
- it("should include request headers in the request", async () => {
397
- const mockHeaders = { "Test-Header": "test-value" };
398
- const getRequestHeadersSpy = jest
399
- .spyOn(sdk as any, "getRequestHeaders")
400
- .mockResolvedValue(mockHeaders);
401
- const fetchSpy = jest
402
- .spyOn(sdk["client"], "request")
403
- .mockResolvedValue({} as unknown);
404
-
405
- await sdk.send(getNetworksString, {});
406
-
407
- expect(getRequestHeadersSpy).toHaveBeenCalled();
408
- expect(fetchSpy).toHaveBeenCalledWith(getNetworksString, {}, mockHeaders);
409
-
410
- getRequestHeadersSpy.mockRestore();
411
- });
412
- });
413
-
414
- describe("subscribe", () => {
415
- it("should return a cleanup function", () => {
416
- const next = jest.fn();
417
- const error = jest.fn();
418
- const complete = jest.fn();
419
- const sink = { next, error, complete };
420
-
421
- jest.spyOn(sdk["wsClient"] as any, "subscribe").mockReturnValue(() => {});
422
-
423
- const cleanup = sdk.subscribe(
424
- subscribePriceUpdatedString,
425
- { address: "0xtoken", networkId: 1 },
426
- sink,
427
- );
428
-
429
- expect(typeof cleanup).toBe("function");
430
- });
431
-
432
- it("should call wsClient.subscribe with correct parameters", () => {
433
- const next = jest.fn();
434
- const error = jest.fn();
435
- const complete = jest.fn();
436
- const sink = { next, error, complete };
437
- const variables = { address: "0xtoken", networkId: 1 };
438
-
439
- const subscribeSpy = jest
440
- .spyOn(sdk["wsClient"] as any, "subscribe")
441
- .mockReturnValue(() => {});
442
-
443
- sdk.subscribe(subscribePriceUpdatedString, variables, sink);
444
-
445
- expect(subscribeSpy).toHaveBeenCalledWith(
446
- {
447
- query: subscribePriceUpdatedString,
448
- variables,
449
- },
450
- sink,
451
- );
452
- });
453
- });
454
- });