@codex-data/sdk 0.5.7
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.
- package/README.md +104 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/resources/graphql.d.ts +7438 -0
- package/dist/resources/graphql.d.ts.map +1 -0
- package/dist/resources/graphql.js +1314 -0
- package/dist/resources/graphql.js.map +1 -0
- package/dist/resources/graphql.schema.json +50830 -0
- package/dist/resources/graphql.ts +7976 -0
- package/dist/resources/schema.graphql +10393 -0
- package/dist/sdk/Mutation.d.ts +14 -0
- package/dist/sdk/Mutation.d.ts.map +1 -0
- package/dist/sdk/Mutation.js +22 -0
- package/dist/sdk/Mutation.js.map +1 -0
- package/dist/sdk/Query.d.ts +22 -0
- package/dist/sdk/Query.d.ts.map +1 -0
- package/dist/sdk/Query.js +35 -0
- package/dist/sdk/Query.js.map +1 -0
- package/dist/sdk/Query.test.d.ts +2 -0
- package/dist/sdk/Query.test.d.ts.map +1 -0
- package/dist/sdk/Query.test.js +50 -0
- package/dist/sdk/Query.test.js.map +1 -0
- package/dist/sdk/Subscribe.d.ts +17 -0
- package/dist/sdk/Subscribe.d.ts.map +1 -0
- package/dist/sdk/Subscribe.js +28 -0
- package/dist/sdk/Subscribe.js.map +1 -0
- package/dist/sdk/generated/fragment-masking.d.ts +16 -0
- package/dist/sdk/generated/fragment-masking.d.ts.map +1 -0
- package/dist/sdk/generated/fragment-masking.js +23 -0
- package/dist/sdk/generated/fragment-masking.js.map +1 -0
- package/dist/sdk/generated/gql.d.ts +243 -0
- package/dist/sdk/generated/gql.d.ts.map +1 -0
- package/dist/sdk/generated/gql.js +70 -0
- package/dist/sdk/generated/gql.js.map +1 -0
- package/dist/sdk/generated/graphql.d.ts +11765 -0
- package/dist/sdk/generated/graphql.d.ts.map +1 -0
- package/dist/sdk/generated/graphql.js +1338 -0
- package/dist/sdk/generated/graphql.js.map +1 -0
- package/dist/sdk/generated/index.d.ts +3 -0
- package/dist/sdk/generated/index.d.ts.map +1 -0
- package/dist/sdk/generated/index.js +19 -0
- package/dist/sdk/generated/index.js.map +1 -0
- package/dist/sdk/index.d.ts +23 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +76 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/index.test.d.ts +2 -0
- package/dist/sdk/index.test.d.ts.map +1 -0
- package/dist/sdk/index.test.js +78 -0
- package/dist/sdk/index.test.js.map +1 -0
- package/dist/sdk/invariant.d.ts +2 -0
- package/dist/sdk/invariant.d.ts.map +1 -0
- package/dist/sdk/invariant.js +31 -0
- package/dist/sdk/invariant.js.map +1 -0
- package/package.json +60 -0
- package/src/index.ts +2 -0
- package/src/resources/.keep +0 -0
- package/src/resources/graphql.schema.json +50830 -0
- package/src/resources/graphql.ts +7976 -0
- package/src/resources/schema.graphql +10393 -0
- package/src/sdk/Mutation.ts +15 -0
- package/src/sdk/Query.test.ts +40 -0
- package/src/sdk/Query.ts +65 -0
- package/src/sdk/Subscribe.ts +61 -0
- package/src/sdk/generated/fragment-masking.ts +66 -0
- package/src/sdk/generated/gql.ts +157 -0
- package/src/sdk/generated/graphql.ts +8215 -0
- package/src/sdk/generated/index.ts +2 -0
- package/src/sdk/graphql/CreateWebhooks.graphql +1145 -0
- package/src/sdk/graphql/DeleteWebhooks.graphql +5 -0
- package/src/sdk/graphql/FilterExchanges.graphql +23 -0
- package/src/sdk/graphql/FilterPairs.graphql +124 -0
- package/src/sdk/graphql/FilterTokens.graphql +129 -0
- package/src/sdk/graphql/GetBars.graphql +32 -0
- package/src/sdk/graphql/GetDetailedPairStats.graphql +941 -0
- package/src/sdk/graphql/GetNetworkStatus.graphql +7 -0
- package/src/sdk/graphql/GetNetworks.graphql +6 -0
- package/src/sdk/graphql/GetPairEvents.graphql +28 -0
- package/src/sdk/graphql/GetPrice.graphql +9 -0
- package/src/sdk/graphql/GetSparklines.graphql +10 -0
- package/src/sdk/graphql/GetSymbol.graphql +11 -0
- package/src/sdk/graphql/GetTokens.graphql +14 -0
- package/src/sdk/graphql/GetWebhooks.graphql +168 -0
- package/src/sdk/graphql/ListPairsForToken.graphql +105 -0
- package/src/sdk/graphql/ListTopTokens.graphql +48 -0
- package/src/sdk/graphql/OnBarsUpdated.graphql +183 -0
- package/src/sdk/graphql/OnDetailedStatsUpdated.graphql +324 -0
- package/src/sdk/graphql/OnEventsCreated.graphql +62 -0
- package/src/sdk/graphql/OnNftAssetsCreated.graphql +29 -0
- package/src/sdk/graphql/OnNftEventsCreated.graphql +83 -0
- package/src/sdk/graphql/OnPairMetadataUpdated.graphql +55 -0
- package/src/sdk/graphql/OnPriceUpdated.graphql +9 -0
- package/src/sdk/index.test.ts +78 -0
- package/src/sdk/index.ts +100 -0
- package/src/sdk/invariant.ts +34 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DeleteWebhooksInput } from "../resources/graphql";
|
|
2
|
+
import {
|
|
3
|
+
CreateWebhooksDocument,
|
|
4
|
+
CreateWebhooksInput,
|
|
5
|
+
DeleteWebhooksDocument,
|
|
6
|
+
} from "./generated/graphql";
|
|
7
|
+
import { Codex } from "./index";
|
|
8
|
+
|
|
9
|
+
export class Mutation {
|
|
10
|
+
constructor(private sdk: Codex) {}
|
|
11
|
+
createWebhooks = async (vars: { input: CreateWebhooksInput }) =>
|
|
12
|
+
this.sdk.mutation(CreateWebhooksDocument, vars);
|
|
13
|
+
deleteWebhooks = async (vars: { input: DeleteWebhooksInput }) =>
|
|
14
|
+
this.sdk.mutation(DeleteWebhooksDocument, vars);
|
|
15
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Event } from "../resources/graphql";
|
|
2
|
+
import { Codex } from "./index";
|
|
3
|
+
|
|
4
|
+
describe("Query", () => {
|
|
5
|
+
const sdk = new Codex("dummy-key");
|
|
6
|
+
|
|
7
|
+
it("should set up queries", async () => {
|
|
8
|
+
jest.spyOn(sdk, "query").mockResolvedValue({
|
|
9
|
+
pairEvents: {
|
|
10
|
+
items: [
|
|
11
|
+
{
|
|
12
|
+
address: "0x1234",
|
|
13
|
+
},
|
|
14
|
+
] as Event[],
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
const res = await sdk.queries.pairEvents({
|
|
18
|
+
query: { address: "0x1234", networkId: 1 },
|
|
19
|
+
});
|
|
20
|
+
expect(res.pairEvents?.items?.[0]?.address).toEqual("0x1234");
|
|
21
|
+
expect(sdk.queries).toBeDefined();
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it("should have a pairEvents query", async () => {
|
|
25
|
+
jest.spyOn(sdk, "query").mockResolvedValue({
|
|
26
|
+
pairEvents: {
|
|
27
|
+
items: [
|
|
28
|
+
{
|
|
29
|
+
address: "0x1234",
|
|
30
|
+
},
|
|
31
|
+
] as Event[],
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
const res = await sdk.queries.pairEvents({
|
|
35
|
+
query: { address: "0x1234", networkId: 1 },
|
|
36
|
+
});
|
|
37
|
+
expect(res.pairEvents?.items?.[0]?.address).toEqual("0x1234");
|
|
38
|
+
expect(sdk.queries).toBeDefined();
|
|
39
|
+
});
|
|
40
|
+
});
|
package/src/sdk/Query.ts
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FilterExchangesDocument,
|
|
3
|
+
FilterExchangesQueryVariables,
|
|
4
|
+
FilterPairsDocument,
|
|
5
|
+
FilterPairsQueryVariables,
|
|
6
|
+
FilterTokensDocument,
|
|
7
|
+
FilterTokensQueryVariables,
|
|
8
|
+
GetBarsDocument,
|
|
9
|
+
GetDetailedPairStatsDocument,
|
|
10
|
+
GetNetworksDocument,
|
|
11
|
+
GetNetworkStatusDocument,
|
|
12
|
+
GetSparklinesDocument,
|
|
13
|
+
GetSparklinesQueryVariables,
|
|
14
|
+
GetSymbolDocument,
|
|
15
|
+
GetSymbolQueryVariables,
|
|
16
|
+
GetTokenPriceDocument,
|
|
17
|
+
GetTokensDocument,
|
|
18
|
+
GetWebhooksDocument,
|
|
19
|
+
ListPairsForTokenDocument,
|
|
20
|
+
ListPairsForTokenQueryVariables,
|
|
21
|
+
ListTopTokensDocument,
|
|
22
|
+
PairEventsDocument,
|
|
23
|
+
PairEventsQueryVariables,
|
|
24
|
+
QueryGetBarsArgs,
|
|
25
|
+
QueryGetDetailedPairStatsArgs,
|
|
26
|
+
QueryGetNetworkStatusArgs,
|
|
27
|
+
QueryGetTokenPricesArgs,
|
|
28
|
+
QueryGetWebhooksArgs,
|
|
29
|
+
QueryListTopTokensArgs,
|
|
30
|
+
QueryTokenArgs,
|
|
31
|
+
} from "./generated/graphql";
|
|
32
|
+
import { Codex } from "./index";
|
|
33
|
+
|
|
34
|
+
export class Query {
|
|
35
|
+
constructor(private sdk: Codex) {}
|
|
36
|
+
pairEvents = async (vars: PairEventsQueryVariables) =>
|
|
37
|
+
this.sdk.query(PairEventsDocument, vars);
|
|
38
|
+
sparklines = async (vars: GetSparklinesQueryVariables) =>
|
|
39
|
+
this.sdk.query(GetSparklinesDocument, vars);
|
|
40
|
+
token = async (vars: QueryTokenArgs) =>
|
|
41
|
+
this.sdk.query(GetTokensDocument, vars);
|
|
42
|
+
price = async (vars: QueryGetTokenPricesArgs) =>
|
|
43
|
+
this.sdk.query(GetTokenPriceDocument, vars);
|
|
44
|
+
detailedPairStats = async (vars: QueryGetDetailedPairStatsArgs) =>
|
|
45
|
+
this.sdk.query(GetDetailedPairStatsDocument, vars);
|
|
46
|
+
bars = async (vars: QueryGetBarsArgs) =>
|
|
47
|
+
this.sdk.query(GetBarsDocument, vars);
|
|
48
|
+
topTokens = async (vars: QueryListTopTokensArgs) =>
|
|
49
|
+
this.sdk.query(ListTopTokensDocument, vars);
|
|
50
|
+
filterTokens = async (vars: FilterTokensQueryVariables) =>
|
|
51
|
+
this.sdk.query(FilterTokensDocument, vars);
|
|
52
|
+
filterPairs = async (vars: FilterPairsQueryVariables) =>
|
|
53
|
+
this.sdk.query(FilterPairsDocument, vars);
|
|
54
|
+
listPairsForToken = async (vars: ListPairsForTokenQueryVariables) =>
|
|
55
|
+
this.sdk.query(ListPairsForTokenDocument, vars);
|
|
56
|
+
filterExchanges = async (vars: FilterExchangesQueryVariables) =>
|
|
57
|
+
this.sdk.query(FilterExchangesDocument, vars);
|
|
58
|
+
symbol = async (vars: GetSymbolQueryVariables) =>
|
|
59
|
+
this.sdk.query(GetSymbolDocument, vars);
|
|
60
|
+
networks = async () => this.sdk.query(GetNetworksDocument);
|
|
61
|
+
networkStatus = async (vars: QueryGetNetworkStatusArgs) =>
|
|
62
|
+
this.sdk.query(GetNetworkStatusDocument, vars);
|
|
63
|
+
getWebhooks = async (vars: QueryGetWebhooksArgs) =>
|
|
64
|
+
this.sdk.query(GetWebhooksDocument, vars);
|
|
65
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { ExecutionResult, print } from "graphql";
|
|
2
|
+
import { Sink } from "graphql-ws";
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
SubscriptionOnDetailedStatsUpdatedArgs,
|
|
6
|
+
SubscriptionOnNftAssetsCreatedArgs,
|
|
7
|
+
SubscriptionOnNftEventsCreatedArgs,
|
|
8
|
+
} from "../resources/graphql";
|
|
9
|
+
import {
|
|
10
|
+
OnBarsUpdatedDocument,
|
|
11
|
+
OnBarsUpdatedSubscription,
|
|
12
|
+
OnDetailedStatsUpdatedDocument,
|
|
13
|
+
OnDetailedStatsUpdatedSubscription,
|
|
14
|
+
OnEventsCreatedDocument,
|
|
15
|
+
OnEventsCreatedSubscription,
|
|
16
|
+
OnNftAssetsCreatedDocument,
|
|
17
|
+
OnNftAssetsCreatedSubscription,
|
|
18
|
+
OnNftEventsCreatedDocument,
|
|
19
|
+
OnNftEventsCreatedSubscription,
|
|
20
|
+
OnPairMetadataUpdatedDocument,
|
|
21
|
+
OnPairMetadataUpdatedSubscription,
|
|
22
|
+
OnPriceUpdatedDocument,
|
|
23
|
+
OnPriceUpdatedSubscription,
|
|
24
|
+
SubscriptionOnBarsUpdatedArgs,
|
|
25
|
+
SubscriptionOnEventsCreatedArgs,
|
|
26
|
+
SubscriptionOnPairMetadataUpdatedArgs,
|
|
27
|
+
SubscriptionOnPriceUpdatedArgs,
|
|
28
|
+
} from "./generated/graphql";
|
|
29
|
+
import { Codex } from "./index";
|
|
30
|
+
|
|
31
|
+
export class Subscribe {
|
|
32
|
+
constructor(private sdk: Codex) {}
|
|
33
|
+
tokenPrices = async (
|
|
34
|
+
vars: SubscriptionOnPriceUpdatedArgs,
|
|
35
|
+
sink: Sink<ExecutionResult<OnPriceUpdatedSubscription>>,
|
|
36
|
+
) => this.sdk.subscribe(print(OnPriceUpdatedDocument), vars, sink);
|
|
37
|
+
tokenEvents = async (
|
|
38
|
+
vars: SubscriptionOnEventsCreatedArgs,
|
|
39
|
+
sink: Sink<ExecutionResult<OnEventsCreatedSubscription>>,
|
|
40
|
+
) => this.sdk.subscribe(print(OnEventsCreatedDocument), vars, sink);
|
|
41
|
+
bars = async (
|
|
42
|
+
vars: SubscriptionOnBarsUpdatedArgs,
|
|
43
|
+
sink: Sink<ExecutionResult<OnBarsUpdatedSubscription>>,
|
|
44
|
+
) => this.sdk.subscribe(print(OnBarsUpdatedDocument), vars, sink);
|
|
45
|
+
detailedPairStats = async (
|
|
46
|
+
vars: SubscriptionOnDetailedStatsUpdatedArgs,
|
|
47
|
+
sink: Sink<ExecutionResult<OnDetailedStatsUpdatedSubscription>>,
|
|
48
|
+
) => this.sdk.subscribe(print(OnDetailedStatsUpdatedDocument), vars, sink);
|
|
49
|
+
pairMetadata = async (
|
|
50
|
+
vars: SubscriptionOnPairMetadataUpdatedArgs,
|
|
51
|
+
sink: Sink<ExecutionResult<OnPairMetadataUpdatedSubscription>>,
|
|
52
|
+
) => this.sdk.subscribe(print(OnPairMetadataUpdatedDocument), vars, sink);
|
|
53
|
+
nftAssets = async (
|
|
54
|
+
vars: SubscriptionOnNftAssetsCreatedArgs,
|
|
55
|
+
sink: Sink<ExecutionResult<OnNftAssetsCreatedSubscription>>,
|
|
56
|
+
) => this.sdk.subscribe(print(OnNftAssetsCreatedDocument), vars, sink);
|
|
57
|
+
nftEvents = async (
|
|
58
|
+
vars: SubscriptionOnNftEventsCreatedArgs,
|
|
59
|
+
sink: Sink<ExecutionResult<OnNftEventsCreatedSubscription>>,
|
|
60
|
+
) => this.sdk.subscribe(print(OnNftEventsCreatedDocument), vars, sink);
|
|
61
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ResultOf, DocumentTypeDecoration, TypedDocumentNode } from '@graphql-typed-document-node/core';
|
|
2
|
+
import { FragmentDefinitionNode } from 'graphql';
|
|
3
|
+
import { Incremental } from './graphql';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
export type FragmentType<TDocumentType extends DocumentTypeDecoration<any, any>> = TDocumentType extends DocumentTypeDecoration<
|
|
7
|
+
infer TType,
|
|
8
|
+
any
|
|
9
|
+
>
|
|
10
|
+
? [TType] extends [{ ' $fragmentName'?: infer TKey }]
|
|
11
|
+
? TKey extends string
|
|
12
|
+
? { ' $fragmentRefs'?: { [key in TKey]: TType } }
|
|
13
|
+
: never
|
|
14
|
+
: never
|
|
15
|
+
: never;
|
|
16
|
+
|
|
17
|
+
// return non-nullable if `fragmentType` is non-nullable
|
|
18
|
+
export function useFragment<TType>(
|
|
19
|
+
_documentNode: DocumentTypeDecoration<TType, any>,
|
|
20
|
+
fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>
|
|
21
|
+
): TType;
|
|
22
|
+
// return nullable if `fragmentType` is nullable
|
|
23
|
+
export function useFragment<TType>(
|
|
24
|
+
_documentNode: DocumentTypeDecoration<TType, any>,
|
|
25
|
+
fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | null | undefined
|
|
26
|
+
): TType | null | undefined;
|
|
27
|
+
// return array of non-nullable if `fragmentType` is array of non-nullable
|
|
28
|
+
export function useFragment<TType>(
|
|
29
|
+
_documentNode: DocumentTypeDecoration<TType, any>,
|
|
30
|
+
fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>
|
|
31
|
+
): ReadonlyArray<TType>;
|
|
32
|
+
// return array of nullable if `fragmentType` is array of nullable
|
|
33
|
+
export function useFragment<TType>(
|
|
34
|
+
_documentNode: DocumentTypeDecoration<TType, any>,
|
|
35
|
+
fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>> | null | undefined
|
|
36
|
+
): ReadonlyArray<TType> | null | undefined;
|
|
37
|
+
export function useFragment<TType>(
|
|
38
|
+
_documentNode: DocumentTypeDecoration<TType, any>,
|
|
39
|
+
fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>> | null | undefined
|
|
40
|
+
): TType | ReadonlyArray<TType> | null | undefined {
|
|
41
|
+
return fragmentType as any;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
export function makeFragmentData<
|
|
46
|
+
F extends DocumentTypeDecoration<any, any>,
|
|
47
|
+
FT extends ResultOf<F>
|
|
48
|
+
>(data: FT, _fragment: F): FragmentType<F> {
|
|
49
|
+
return data as FragmentType<F>;
|
|
50
|
+
}
|
|
51
|
+
export function isFragmentReady<TQuery, TFrag>(
|
|
52
|
+
queryNode: DocumentTypeDecoration<TQuery, any>,
|
|
53
|
+
fragmentNode: TypedDocumentNode<TFrag>,
|
|
54
|
+
data: FragmentType<TypedDocumentNode<Incremental<TFrag>, any>> | null | undefined
|
|
55
|
+
): data is FragmentType<typeof fragmentNode> {
|
|
56
|
+
const deferredFields = (queryNode as { __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> } }).__meta__
|
|
57
|
+
?.deferredFields;
|
|
58
|
+
|
|
59
|
+
if (!deferredFields) return true;
|
|
60
|
+
|
|
61
|
+
const fragDef = fragmentNode.definitions[0] as FragmentDefinitionNode | undefined;
|
|
62
|
+
const fragName = fragDef?.name?.value;
|
|
63
|
+
|
|
64
|
+
const fields = (fragName && deferredFields[fragName]) || [];
|
|
65
|
+
return fields.length > 0 && fields.every(field => data && field in data);
|
|
66
|
+
}
|