@dokamerce/web-sdk 0.9.0
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/.ls-lint.yml +8 -0
- package/.nvmrc +1 -0
- package/.prettierignore +0 -0
- package/.prettierrc.js +3 -0
- package/README.md +47 -0
- package/codegen.yml +11 -0
- package/dist/graphql/__generated__/gateway.d.ts +2073 -0
- package/dist/graphql/__generated__/gateway.js +747 -0
- package/dist/graphql/__generated__/gateway.js.map +1 -0
- package/dist/graphql/src/gateway/index.d.ts +2 -0
- package/dist/graphql/src/gateway/index.js +20 -0
- package/dist/graphql/src/gateway/index.js.map +1 -0
- package/dist/graphql/src/utils/extract-graphql-error-message.util.d.ts +1 -0
- package/dist/graphql/src/utils/extract-graphql-error-message.util.js +16 -0
- package/dist/graphql/src/utils/extract-graphql-error-message.util.js.map +1 -0
- package/dist/graphql/src/utils/index.d.ts +4 -0
- package/dist/graphql/src/utils/index.js +21 -0
- package/dist/graphql/src/utils/index.js.map +1 -0
- package/dist/graphql/src/utils/use-graphql-mutation.util.d.ts +15 -0
- package/dist/graphql/src/utils/use-graphql-mutation.util.js +37 -0
- package/dist/graphql/src/utils/use-graphql-mutation.util.js.map +1 -0
- package/dist/graphql/src/utils/use-infinite-query.util.d.ts +23 -0
- package/dist/graphql/src/utils/use-infinite-query.util.js +57 -0
- package/dist/graphql/src/utils/use-infinite-query.util.js.map +1 -0
- package/dist/graphql/src/utils/use.query.util.d.ts +13 -0
- package/dist/graphql/src/utils/use.query.util.js +19 -0
- package/dist/graphql/src/utils/use.query.util.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/web-sdk/src/constants/graphql-base.constant.d.ts +1 -0
- package/dist/web-sdk/src/constants/graphql-base.constant.js +5 -0
- package/dist/web-sdk/src/constants/graphql-base.constant.js.map +1 -0
- package/dist/web-sdk/src/contexts/index.d.ts +12 -0
- package/dist/web-sdk/src/contexts/index.js +29 -0
- package/dist/web-sdk/src/contexts/index.js.map +1 -0
- package/dist/web-sdk/src/functions/init-sdk-client.function.d.ts +7 -0
- package/dist/web-sdk/src/functions/init-sdk-client.function.js +16 -0
- package/dist/web-sdk/src/functions/init-sdk-client.function.js.map +1 -0
- package/dist/web-sdk/src/functions/init-sdk.function.d.ts +6 -0
- package/dist/web-sdk/src/functions/init-sdk.function.js +23 -0
- package/dist/web-sdk/src/functions/init-sdk.function.js.map +1 -0
- package/dist/web-sdk/src/functions/safe-call.function.d.ts +9 -0
- package/dist/web-sdk/src/functions/safe-call.function.js +21 -0
- package/dist/web-sdk/src/functions/safe-call.function.js.map +1 -0
- package/dist/web-sdk/src/index.d.ts +8 -0
- package/dist/web-sdk/src/index.js +35 -0
- package/dist/web-sdk/src/index.js.map +1 -0
- package/dist/web-sdk/src/services/attributes.d.ts +8 -0
- package/dist/web-sdk/src/services/attributes.js +25 -0
- package/dist/web-sdk/src/services/attributes.js.map +1 -0
- package/dist/web-sdk/src/services/brands.d.ts +8 -0
- package/dist/web-sdk/src/services/brands.js +25 -0
- package/dist/web-sdk/src/services/brands.js.map +1 -0
- package/dist/web-sdk/src/services/categories.d.ts +8 -0
- package/dist/web-sdk/src/services/categories.js +25 -0
- package/dist/web-sdk/src/services/categories.js.map +1 -0
- package/dist/web-sdk/src/services/colors.d.ts +8 -0
- package/dist/web-sdk/src/services/colors.js +25 -0
- package/dist/web-sdk/src/services/colors.js.map +1 -0
- package/dist/web-sdk/src/services/customers.d.ts +10 -0
- package/dist/web-sdk/src/services/customers.js +33 -0
- package/dist/web-sdk/src/services/customers.js.map +1 -0
- package/dist/web-sdk/src/services/files.d.ts +8 -0
- package/dist/web-sdk/src/services/files.js +24 -0
- package/dist/web-sdk/src/services/files.js.map +1 -0
- package/dist/web-sdk/src/services/index.d.ts +9 -0
- package/dist/web-sdk/src/services/index.js +26 -0
- package/dist/web-sdk/src/services/index.js.map +1 -0
- package/dist/web-sdk/src/services/metrics.d.ts +7 -0
- package/dist/web-sdk/src/services/metrics.js +20 -0
- package/dist/web-sdk/src/services/metrics.js.map +1 -0
- package/dist/web-sdk/src/services/orders.d.ts +10 -0
- package/dist/web-sdk/src/services/orders.js +33 -0
- package/dist/web-sdk/src/services/orders.js.map +1 -0
- package/dist/web-sdk/src/services/products.d.ts +11 -0
- package/dist/web-sdk/src/services/products.js +36 -0
- package/dist/web-sdk/src/services/products.js.map +1 -0
- package/dist/web-sdk/src/services/sellers.d.ts +10 -0
- package/dist/web-sdk/src/services/sellers.js +33 -0
- package/dist/web-sdk/src/services/sellers.js.map +1 -0
- package/dist/web-sdk/src/typings/pagination.typing.d.ts +15 -0
- package/dist/web-sdk/src/typings/pagination.typing.js +3 -0
- package/dist/web-sdk/src/typings/pagination.typing.js.map +1 -0
- package/dist/web-sdk/src/typings/sdk.typing.d.ts +14 -0
- package/dist/web-sdk/src/typings/sdk.typing.js +3 -0
- package/dist/web-sdk/src/typings/sdk.typing.js.map +1 -0
- package/dist/web-sdk/src/utils/fetch-all-infinite.util.d.ts +5 -0
- package/dist/web-sdk/src/utils/fetch-all-infinite.util.js +24 -0
- package/dist/web-sdk/src/utils/fetch-all-infinite.util.js.map +1 -0
- package/package.json +20 -0
- package/src/constants/graphql-base.constant.ts +1 -0
- package/src/contexts/index.ts +33 -0
- package/src/functions/init-sdk-client.function.ts +19 -0
- package/src/functions/init-sdk.function.ts +26 -0
- package/src/functions/safe-call.function.ts +29 -0
- package/src/index.d.ts +0 -0
- package/src/index.ts +74 -0
- package/src/services/attributes.ts +42 -0
- package/src/services/brands.ts +41 -0
- package/src/services/categories.ts +41 -0
- package/src/services/colors.ts +41 -0
- package/src/services/customers.ts +60 -0
- package/src/services/files.ts +58 -0
- package/src/services/index.ts +9 -0
- package/src/services/metrics.ts +39 -0
- package/src/services/orders.ts +59 -0
- package/src/services/products.ts +65 -0
- package/src/services/sellers.ts +91 -0
- package/src/typings/pagination.typing.ts +18 -0
- package/src/typings/sdk.typing.ts +27 -0
- package/src/utils/fetch-all-infinite.util.ts +41 -0
- package/tsconfig.dev.json +32 -0
- package/tsconfig.json +37 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { setSdkClient } from "../contexts";
|
|
2
|
+
import { GraphQLClient } from "graphql-request";
|
|
3
|
+
|
|
4
|
+
interface InitSdkClientArgs {
|
|
5
|
+
base: string;
|
|
6
|
+
realm: string;
|
|
7
|
+
key: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function initSdkClient({ base, realm, key }: InitSdkClientArgs) {
|
|
11
|
+
const client = new GraphQLClient(`${base}`, {
|
|
12
|
+
headers: {
|
|
13
|
+
"x-realm-key": realm,
|
|
14
|
+
"x-api-token": key,
|
|
15
|
+
"x-origin": "sdk",
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
setSdkClient(client);
|
|
19
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { getSdkStatus, setSdkStatus } from "../contexts";
|
|
2
|
+
import { initSdkClient } from "./init-sdk-client.function";
|
|
3
|
+
import { GRAPHQL_BASE_URL } from "../constants/graphql-base.constant";
|
|
4
|
+
|
|
5
|
+
interface InitSdkArgs {
|
|
6
|
+
realm: string;
|
|
7
|
+
key: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function initSdk({ realm, key }: InitSdkArgs) {
|
|
11
|
+
try {
|
|
12
|
+
if (getSdkStatus() !== "unknown") return;
|
|
13
|
+
setSdkStatus("initializing");
|
|
14
|
+
|
|
15
|
+
initSdkClient({
|
|
16
|
+
base: GRAPHQL_BASE_URL,
|
|
17
|
+
key,
|
|
18
|
+
realm,
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
setSdkStatus("ready");
|
|
22
|
+
|
|
23
|
+
} catch (error) {
|
|
24
|
+
setSdkStatus("fails");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type SDKError = {
|
|
2
|
+
code: string;
|
|
3
|
+
message: string;
|
|
4
|
+
details?: any;
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
export async function safeCall<T>({
|
|
8
|
+
fn,
|
|
9
|
+
onError,
|
|
10
|
+
}: {
|
|
11
|
+
fn: () => Promise<T> | T;
|
|
12
|
+
onError?: (error: SDKError) => void;
|
|
13
|
+
}): Promise<T | null> {
|
|
14
|
+
try {
|
|
15
|
+
return await fn();
|
|
16
|
+
} catch (err: unknown) {
|
|
17
|
+
// Normalize the error to SDKError
|
|
18
|
+
const sdkError: SDKError = {
|
|
19
|
+
code: (err as any)?.code || "UNKNOWN_ERROR",
|
|
20
|
+
message: (err as any)?.message || String(err),
|
|
21
|
+
details: (err as any)?.details,
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
if (onError) onError(sdkError);
|
|
25
|
+
else console.error("SDK Error:", sdkError);
|
|
26
|
+
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
}
|
package/src/index.d.ts
ADDED
|
File without changes
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dokamerce SDK Factory
|
|
3
|
+
*
|
|
4
|
+
* TODOs:
|
|
5
|
+
* [ ] Logger: implement structured logging for all SDK operations
|
|
6
|
+
* [ ] Cache Layer: add caching for queries (LRU / Redis / in-memory)
|
|
7
|
+
* [ ] Pagination & Helpers: add helpers for paginated & infinite queries
|
|
8
|
+
* [ ] Batch Requests: support batching multiple requests in a single call
|
|
9
|
+
* [ ] Subscriptions (Realtime): implement realtime updates via WebSockets / GraphQL subscriptions
|
|
10
|
+
* [ ] Docs & Examples: write usage documentation and code examples
|
|
11
|
+
* [ ] Testing & Mocking: add unit tests, integration tests, and mocks for SDK
|
|
12
|
+
* [ ] Rate Limiting / Retry: implement retry with exponential backoff on errors
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { initSdk } from "./functions/init-sdk.function";
|
|
16
|
+
import { safeCall, SDKError } from "./functions/safe-call.function";
|
|
17
|
+
// import { ShopSDK } from "./typings/sdk.typing";
|
|
18
|
+
import { createProductsSdk } from "./services/products";
|
|
19
|
+
import { getSdkClient } from "./contexts";
|
|
20
|
+
import { createSellersSdk, createColorsSdk, createFileUploadSdk, createCategoriesSdk, createBrandsSdk, createAttributesSdk, createCustomersSdk, createOrdersSdk } from "./services";
|
|
21
|
+
import { createMetricsSdk } from "./services/metrics";
|
|
22
|
+
import { DokamerceSDK } from "./typings/sdk.typing";
|
|
23
|
+
|
|
24
|
+
export type SDKOptions = {
|
|
25
|
+
realm: string;
|
|
26
|
+
key: string;
|
|
27
|
+
onError?: (error: SDKError) => void;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Creates a Dokamerce SDK instance.
|
|
32
|
+
*
|
|
33
|
+
* Current Status:
|
|
34
|
+
* ✅ Initialization with realm/key via initSdk
|
|
35
|
+
* ✅ Safe error handling with safeCall
|
|
36
|
+
* ⚠️ Client retrieval uses getSdkClient (may need refactor for backend safety)
|
|
37
|
+
* ✅ Products SDK attached
|
|
38
|
+
*
|
|
39
|
+
* TODO Improvements:
|
|
40
|
+
* - Ensure backend safety by creating per-instance GraphQLClient instead of relying on global context
|
|
41
|
+
* - Wrap all SDK methods with safeCall automatically
|
|
42
|
+
*/
|
|
43
|
+
export function createInstance(options: SDKOptions): DokamerceSDK {
|
|
44
|
+
// 1️⃣ Initialize SDK safely
|
|
45
|
+
safeCall({
|
|
46
|
+
fn: () =>
|
|
47
|
+
initSdk({
|
|
48
|
+
realm: options.realm,
|
|
49
|
+
key: options.key,
|
|
50
|
+
}),
|
|
51
|
+
onError: options.onError,
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// 2️⃣ Retrieve GraphQL client (currently from global context)
|
|
55
|
+
const client = getSdkClient();
|
|
56
|
+
|
|
57
|
+
if (!client) {
|
|
58
|
+
throw new Error("Failed to initialize client");
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// 3️⃣ Return SDK instance
|
|
62
|
+
return {
|
|
63
|
+
products: createProductsSdk(client),
|
|
64
|
+
sellers: createSellersSdk(client),
|
|
65
|
+
colors: createColorsSdk(client),
|
|
66
|
+
files: createFileUploadSdk(client),
|
|
67
|
+
categories: createCategoriesSdk(client),
|
|
68
|
+
brands: createBrandsSdk(client),
|
|
69
|
+
attributes: createAttributesSdk(client),
|
|
70
|
+
customers: createCustomersSdk(client),
|
|
71
|
+
orders: createOrdersSdk(client),
|
|
72
|
+
metrics: createMetricsSdk(client),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { GraphQLClient } from "graphql-request";
|
|
2
|
+
import {
|
|
3
|
+
PaginatedAttributesDocument,
|
|
4
|
+
PaginatedAttributesQuery,
|
|
5
|
+
PaginatedAttributesQueryVariables,
|
|
6
|
+
InfiniteAttributesDocument,
|
|
7
|
+
InfiniteAttributesQuery,
|
|
8
|
+
InfiniteAttributesQueryVariables,
|
|
9
|
+
} from "@dokamerce/graphql";
|
|
10
|
+
import { fetchAllInfinite, InfiniteListSdk } from "@/utils/fetch-all-infinite.util";
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
export interface AttributesSdk {
|
|
14
|
+
// Paginated queries
|
|
15
|
+
paginated: (variables?: PaginatedAttributesQueryVariables) => Promise<PaginatedAttributesQuery>;
|
|
16
|
+
// Infinite queries
|
|
17
|
+
infinite: (variables: InfiniteAttributesQueryVariables) => Promise<InfiniteAttributesQuery>;
|
|
18
|
+
all: (variables: InfiniteAttributesQueryVariables) => Promise<InfiniteAttributesQuery["infiniteAttributes"]["edges"][number]["node"][]>;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function createAttributesSdk(client: GraphQLClient): AttributesSdk {
|
|
22
|
+
|
|
23
|
+
const paginated = {
|
|
24
|
+
paginated(variables: PaginatedAttributesQueryVariables = {}) {
|
|
25
|
+
return client.request<PaginatedAttributesQuery>(PaginatedAttributesDocument, variables);
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const infinite = {
|
|
30
|
+
infinite(variables: InfiniteAttributesQueryVariables) {
|
|
31
|
+
return client.request<InfiniteAttributesQuery>(InfiniteAttributesDocument, variables);
|
|
32
|
+
},
|
|
33
|
+
all(variables: InfiniteAttributesQueryVariables) {
|
|
34
|
+
const sdk: InfiniteListSdk<InfiniteAttributesQuery, InfiniteAttributesQueryVariables> = {
|
|
35
|
+
listInfinite: (v) => client.request<InfiniteAttributesQuery>(InfiniteAttributesDocument, v),
|
|
36
|
+
};
|
|
37
|
+
return fetchAllInfinite(sdk, variables, (res) => res.infiniteAttributes);
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
return { ...paginated, ...infinite };
|
|
42
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { GraphQLClient } from "graphql-request";
|
|
2
|
+
import {
|
|
3
|
+
PaginatedBrandsDocument,
|
|
4
|
+
PaginatedBrandsQuery,
|
|
5
|
+
PaginatedBrandsQueryVariables,
|
|
6
|
+
InfiniteBrandsDocument,
|
|
7
|
+
InfiniteBrandsQuery,
|
|
8
|
+
InfiniteBrandsQueryVariables,
|
|
9
|
+
} from "@dokamerce/graphql";
|
|
10
|
+
import { fetchAllInfinite, InfiniteListSdk } from "@/utils/fetch-all-infinite.util";
|
|
11
|
+
|
|
12
|
+
export interface BrandsSdk {
|
|
13
|
+
// Paginated queries
|
|
14
|
+
paginated: (variables?: PaginatedBrandsQueryVariables) => Promise<PaginatedBrandsQuery>;
|
|
15
|
+
// Infinite queries
|
|
16
|
+
infinite: (variables: InfiniteBrandsQueryVariables) => Promise<InfiniteBrandsQuery>;
|
|
17
|
+
all: (variables: InfiniteBrandsQueryVariables) => Promise<InfiniteBrandsQuery["infiniteBrands"]["edges"][number]["node"][]>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function createBrandsSdk(client: GraphQLClient): BrandsSdk {
|
|
21
|
+
|
|
22
|
+
const paginated = {
|
|
23
|
+
paginated(variables: PaginatedBrandsQueryVariables = {}) {
|
|
24
|
+
return client.request<PaginatedBrandsQuery>(PaginatedBrandsDocument, variables);
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const infinite = {
|
|
29
|
+
infinite(variables: InfiniteBrandsQueryVariables) {
|
|
30
|
+
return client.request<InfiniteBrandsQuery>(InfiniteBrandsDocument, variables);
|
|
31
|
+
},
|
|
32
|
+
all(variables: InfiniteBrandsQueryVariables) {
|
|
33
|
+
const sdk: InfiniteListSdk<InfiniteBrandsQuery, InfiniteBrandsQueryVariables> = {
|
|
34
|
+
listInfinite: (v) => client.request<InfiniteBrandsQuery>(InfiniteBrandsDocument, v),
|
|
35
|
+
};
|
|
36
|
+
return fetchAllInfinite(sdk, variables, (res) => res.infiniteBrands);
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
return { ...paginated, ...infinite };
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { GraphQLClient } from "graphql-request";
|
|
2
|
+
import {
|
|
3
|
+
PaginatedCategoriesDocument,
|
|
4
|
+
PaginatedCategoriesQuery,
|
|
5
|
+
PaginatedCategoriesQueryVariables,
|
|
6
|
+
InfiniteCategoriesDocument,
|
|
7
|
+
InfiniteCategoriesQuery,
|
|
8
|
+
InfiniteCategoriesQueryVariables,
|
|
9
|
+
} from "@dokamerce/graphql";
|
|
10
|
+
import { fetchAllInfinite, InfiniteListSdk } from "@/utils/fetch-all-infinite.util";
|
|
11
|
+
|
|
12
|
+
export interface CategoriesSdk {
|
|
13
|
+
// Paginated queries
|
|
14
|
+
paginated: (variables?: PaginatedCategoriesQueryVariables) => Promise<PaginatedCategoriesQuery>;
|
|
15
|
+
// Infinite queries
|
|
16
|
+
infinite: (variables: InfiniteCategoriesQueryVariables) => Promise<InfiniteCategoriesQuery>;
|
|
17
|
+
all: (variables: InfiniteCategoriesQueryVariables) => Promise<InfiniteCategoriesQuery["infiniteCategories"]["edges"][number]["node"][]>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function createCategoriesSdk(client: GraphQLClient): CategoriesSdk {
|
|
21
|
+
|
|
22
|
+
const paginated = {
|
|
23
|
+
paginated(variables: PaginatedCategoriesQueryVariables = {}) {
|
|
24
|
+
return client.request<PaginatedCategoriesQuery>(PaginatedCategoriesDocument, variables);
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const infinite = {
|
|
29
|
+
infinite(variables: InfiniteCategoriesQueryVariables) {
|
|
30
|
+
return client.request<InfiniteCategoriesQuery>(InfiniteCategoriesDocument, variables);
|
|
31
|
+
},
|
|
32
|
+
all(variables: InfiniteCategoriesQueryVariables) {
|
|
33
|
+
const sdk: InfiniteListSdk<InfiniteCategoriesQuery, InfiniteCategoriesQueryVariables> = {
|
|
34
|
+
listInfinite: (v) => client.request<InfiniteCategoriesQuery>(InfiniteCategoriesDocument, v),
|
|
35
|
+
};
|
|
36
|
+
return fetchAllInfinite(sdk, variables, (res) => res.infiniteCategories);
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
return { ...paginated, ...infinite };
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { GraphQLClient } from "graphql-request";
|
|
2
|
+
import {
|
|
3
|
+
PaginatedColorsDocument,
|
|
4
|
+
PaginatedColorsQuery,
|
|
5
|
+
PaginatedColorsQueryVariables,
|
|
6
|
+
InfiniteColorsDocument,
|
|
7
|
+
InfiniteColorsQuery,
|
|
8
|
+
InfiniteColorsQueryVariables,
|
|
9
|
+
} from "@dokamerce/graphql";
|
|
10
|
+
import { fetchAllInfinite, InfiniteListSdk } from "@/utils/fetch-all-infinite.util";
|
|
11
|
+
|
|
12
|
+
export interface ColorsSdk {
|
|
13
|
+
// Paginated queries
|
|
14
|
+
paginated: (variables?: PaginatedColorsQueryVariables) => Promise<PaginatedColorsQuery>;
|
|
15
|
+
// Infinite queries
|
|
16
|
+
infinite: (variables: InfiniteColorsQueryVariables) => Promise<InfiniteColorsQuery>;
|
|
17
|
+
all: (variables: InfiniteColorsQueryVariables) => Promise<InfiniteColorsQuery["infiniteColors"]["edges"][number]["node"][]>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function createColorsSdk(client: GraphQLClient): ColorsSdk {
|
|
21
|
+
|
|
22
|
+
const paginated = {
|
|
23
|
+
paginated(variables: PaginatedColorsQueryVariables = {}) {
|
|
24
|
+
return client.request<PaginatedColorsQuery>(PaginatedColorsDocument, variables);
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const infinite = {
|
|
29
|
+
infinite(variables: InfiniteColorsQueryVariables) {
|
|
30
|
+
return client.request<InfiniteColorsQuery>(InfiniteColorsDocument, variables);
|
|
31
|
+
},
|
|
32
|
+
all(variables: InfiniteColorsQueryVariables) {
|
|
33
|
+
const sdk: InfiniteListSdk<InfiniteColorsQuery, InfiniteColorsQueryVariables> = {
|
|
34
|
+
listInfinite: (v) => client.request<InfiniteColorsQuery>(InfiniteColorsDocument, v),
|
|
35
|
+
};
|
|
36
|
+
return fetchAllInfinite(sdk, variables, (res) => res.infiniteColors);
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
return { ...paginated, ...infinite };
|
|
41
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { GraphQLClient } from "graphql-request";
|
|
2
|
+
import {
|
|
3
|
+
CreateCustomerDocument,
|
|
4
|
+
CreateCustomerMutation,
|
|
5
|
+
CreateCustomerMutationVariables,
|
|
6
|
+
UpdateCustomerDocument,
|
|
7
|
+
UpdateCustomerMutation,
|
|
8
|
+
UpdateCustomerMutationVariables,
|
|
9
|
+
PaginatedCustomersDocument,
|
|
10
|
+
PaginatedCustomersQuery,
|
|
11
|
+
PaginatedCustomersQueryVariables,
|
|
12
|
+
InfiniteCustomersDocument,
|
|
13
|
+
InfiniteCustomersQuery,
|
|
14
|
+
InfiniteCustomersQueryVariables,
|
|
15
|
+
} from "@dokamerce/graphql";
|
|
16
|
+
import { fetchAllInfinite, InfiniteListSdk } from "@/utils/fetch-all-infinite.util";
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
export interface CustomersSdk {
|
|
20
|
+
// Mutations
|
|
21
|
+
create: (variables: CreateCustomerMutationVariables) => Promise<CreateCustomerMutation>;
|
|
22
|
+
update: (variables: UpdateCustomerMutationVariables) => Promise<UpdateCustomerMutation>;
|
|
23
|
+
// Paginated queries
|
|
24
|
+
paginated: (variables?: PaginatedCustomersQueryVariables) => Promise<PaginatedCustomersQuery>;
|
|
25
|
+
// Infinite queries
|
|
26
|
+
infinite: (variables: InfiniteCustomersQueryVariables) => Promise<InfiniteCustomersQuery>;
|
|
27
|
+
all: (variables: InfiniteCustomersQueryVariables) => Promise<InfiniteCustomersQuery["infiniteCustomers"]["edges"][number]["node"][]>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
export function createCustomersSdk(client: GraphQLClient): CustomersSdk {
|
|
32
|
+
const mutations = {
|
|
33
|
+
create(variables: CreateCustomerMutationVariables) {
|
|
34
|
+
return client.request<CreateCustomerMutation>(CreateCustomerDocument, variables);
|
|
35
|
+
},
|
|
36
|
+
update(variables: UpdateCustomerMutationVariables) {
|
|
37
|
+
return client.request<UpdateCustomerMutation>(UpdateCustomerDocument, variables);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const paginated = {
|
|
42
|
+
paginated(variables: PaginatedCustomersQueryVariables = {}) {
|
|
43
|
+
return client.request<PaginatedCustomersQuery>(PaginatedCustomersDocument, variables);
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
const infinite = {
|
|
48
|
+
infinite(variables: InfiniteCustomersQueryVariables) {
|
|
49
|
+
return client.request<InfiniteCustomersQuery>(InfiniteCustomersDocument, variables);
|
|
50
|
+
},
|
|
51
|
+
all(variables: InfiniteCustomersQueryVariables) {
|
|
52
|
+
const sdk: InfiniteListSdk<InfiniteCustomersQuery, InfiniteCustomersQueryVariables> = {
|
|
53
|
+
listInfinite: (v) => client.request<InfiniteCustomersQuery>(InfiniteCustomersDocument, v),
|
|
54
|
+
};
|
|
55
|
+
return fetchAllInfinite(sdk, variables, (res) => res.infiniteCustomers);
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
return { ...mutations, ...paginated, ...infinite };
|
|
60
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { GraphQLClient } from "graphql-request";
|
|
2
|
+
import {
|
|
3
|
+
InitiateFileUploadDocument,
|
|
4
|
+
InitiateFileUploadMutation,
|
|
5
|
+
InitiateFileUploadMutationVariables,
|
|
6
|
+
CompleteFileUploadDocument,
|
|
7
|
+
CompleteFileUploadMutation,
|
|
8
|
+
CompleteFileUploadMutationVariables,
|
|
9
|
+
FileDocument,
|
|
10
|
+
FileQuery,
|
|
11
|
+
FileQueryVariables,
|
|
12
|
+
} from "@dokamerce/graphql";
|
|
13
|
+
|
|
14
|
+
export interface FileUploadSdk {
|
|
15
|
+
// Mutations
|
|
16
|
+
initiate: (
|
|
17
|
+
variables: InitiateFileUploadMutationVariables
|
|
18
|
+
) => Promise<InitiateFileUploadMutation>;
|
|
19
|
+
|
|
20
|
+
complete: (
|
|
21
|
+
variables: CompleteFileUploadMutationVariables
|
|
22
|
+
) => Promise<CompleteFileUploadMutation>;
|
|
23
|
+
|
|
24
|
+
// Queries
|
|
25
|
+
file: (
|
|
26
|
+
variables: FileQueryVariables
|
|
27
|
+
) => Promise<FileQuery>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
export function createFileUploadSdk(client: GraphQLClient): FileUploadSdk {
|
|
32
|
+
const mutations = {
|
|
33
|
+
initiate(variables: InitiateFileUploadMutationVariables) {
|
|
34
|
+
return client.request<InitiateFileUploadMutation>(
|
|
35
|
+
InitiateFileUploadDocument,
|
|
36
|
+
variables
|
|
37
|
+
);
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
complete(variables: CompleteFileUploadMutationVariables) {
|
|
41
|
+
return client.request<CompleteFileUploadMutation>(
|
|
42
|
+
CompleteFileUploadDocument,
|
|
43
|
+
variables
|
|
44
|
+
);
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const queries = {
|
|
49
|
+
file(variables: FileQueryVariables) {
|
|
50
|
+
return client.request<FileQuery>(FileDocument, variables);
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
return {
|
|
55
|
+
...mutations,
|
|
56
|
+
...queries,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { GraphQLClient } from "graphql-request";
|
|
2
|
+
import {
|
|
3
|
+
// PaginatedMetricsDocument,
|
|
4
|
+
// PaginatedMetricsQuery,
|
|
5
|
+
// PaginatedMetricsQueryVariables,
|
|
6
|
+
InfiniteMetricsDocument,
|
|
7
|
+
InfiniteMetricsQuery,
|
|
8
|
+
InfiniteMetricsQueryVariables,
|
|
9
|
+
} from "@dokamerce/graphql";
|
|
10
|
+
import { fetchAllInfinite, InfiniteListSdk } from "@/utils/fetch-all-infinite.util";
|
|
11
|
+
|
|
12
|
+
export interface MetricsSdk {
|
|
13
|
+
// Infinite queries
|
|
14
|
+
infinite: (variables: InfiniteMetricsQueryVariables) => Promise<InfiniteMetricsQuery>;
|
|
15
|
+
all: (variables: InfiniteMetricsQueryVariables) => Promise<InfiniteMetricsQuery["infiniteMetrics"]["edges"][number]["node"][]>;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function createMetricsSdk(client: GraphQLClient): MetricsSdk {
|
|
19
|
+
|
|
20
|
+
// const paginated = {
|
|
21
|
+
// list(variables: PaginatedMetricsQueryVariables = {}) {
|
|
22
|
+
// return client.request<PaginatedMetricsQuery>(PaginatedMetricsDocument, variables);
|
|
23
|
+
// },
|
|
24
|
+
// };
|
|
25
|
+
|
|
26
|
+
const infinite = {
|
|
27
|
+
infinite(variables: InfiniteMetricsQueryVariables) {
|
|
28
|
+
return client.request<InfiniteMetricsQuery>(InfiniteMetricsDocument, variables);
|
|
29
|
+
},
|
|
30
|
+
all(variables: InfiniteMetricsQueryVariables) {
|
|
31
|
+
const sdk: InfiniteListSdk<InfiniteMetricsQuery, InfiniteMetricsQueryVariables> = {
|
|
32
|
+
listInfinite: (v) => client.request<InfiniteMetricsQuery>(InfiniteMetricsDocument, v),
|
|
33
|
+
};
|
|
34
|
+
return fetchAllInfinite(sdk, variables, (res) => res.infiniteMetrics);
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
return { ...infinite };
|
|
39
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { GraphQLClient } from "graphql-request";
|
|
2
|
+
import {
|
|
3
|
+
CreateOrderDocument,
|
|
4
|
+
CreateOrderMutation,
|
|
5
|
+
CreateOrderMutationVariables,
|
|
6
|
+
UpdateOrderDocument,
|
|
7
|
+
UpdateOrderMutation,
|
|
8
|
+
UpdateOrderMutationVariables,
|
|
9
|
+
PaginatedOrdersDocument,
|
|
10
|
+
PaginatedOrdersQuery,
|
|
11
|
+
PaginatedOrdersQueryVariables,
|
|
12
|
+
InfiniteOrdersDocument,
|
|
13
|
+
InfiniteOrdersQuery,
|
|
14
|
+
InfiniteOrdersQueryVariables,
|
|
15
|
+
} from "@dokamerce/graphql";
|
|
16
|
+
import { fetchAllInfinite, InfiniteListSdk } from "@/utils/fetch-all-infinite.util";
|
|
17
|
+
|
|
18
|
+
export interface OrdersSdk {
|
|
19
|
+
// Mutations
|
|
20
|
+
create: (variables: CreateOrderMutationVariables) => Promise<CreateOrderMutation>;
|
|
21
|
+
update: (variables: UpdateOrderMutationVariables) => Promise<UpdateOrderMutation>;
|
|
22
|
+
// Paginated queries
|
|
23
|
+
paginated: (variables?: PaginatedOrdersQueryVariables) => Promise<PaginatedOrdersQuery>;
|
|
24
|
+
// Infinite queries
|
|
25
|
+
infinite: (variables: InfiniteOrdersQueryVariables) => Promise<InfiniteOrdersQuery>;
|
|
26
|
+
all: (variables: InfiniteOrdersQueryVariables) => Promise<InfiniteOrdersQuery["infiniteOrders"]["edges"][number]["node"][]>;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
export function createOrdersSdk(client: GraphQLClient): OrdersSdk {
|
|
31
|
+
const mutations = {
|
|
32
|
+
create(variables: CreateOrderMutationVariables) {
|
|
33
|
+
return client.request<CreateOrderMutation>(CreateOrderDocument, variables);
|
|
34
|
+
},
|
|
35
|
+
update(variables: UpdateOrderMutationVariables) {
|
|
36
|
+
return client.request<UpdateOrderMutation>(UpdateOrderDocument, variables);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const paginated = {
|
|
41
|
+
paginated(variables: PaginatedOrdersQueryVariables = {}) {
|
|
42
|
+
return client.request<PaginatedOrdersQuery>(PaginatedOrdersDocument, variables);
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const infinite = {
|
|
47
|
+
infinite(variables: InfiniteOrdersQueryVariables) {
|
|
48
|
+
return client.request<InfiniteOrdersQuery>(InfiniteOrdersDocument, variables);
|
|
49
|
+
},
|
|
50
|
+
all(variables: InfiniteOrdersQueryVariables) {
|
|
51
|
+
const sdk: InfiniteListSdk<InfiniteOrdersQuery, InfiniteOrdersQueryVariables> = {
|
|
52
|
+
listInfinite: (v) => client.request<InfiniteOrdersQuery>(InfiniteOrdersDocument, v),
|
|
53
|
+
};
|
|
54
|
+
return fetchAllInfinite(sdk, variables, (res) => res.infiniteOrders);
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
return { ...mutations, ...paginated, ...infinite };
|
|
59
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { GraphQLClient } from "graphql-request";
|
|
2
|
+
import {
|
|
3
|
+
CreateProductDocument,
|
|
4
|
+
CreateProductMutation,
|
|
5
|
+
CreateProductMutationVariables,
|
|
6
|
+
UpdateProductDocument,
|
|
7
|
+
UpdateProductMutation,
|
|
8
|
+
UpdateProductMutationVariables,
|
|
9
|
+
DeleteProductDocument,
|
|
10
|
+
DeleteProductMutation,
|
|
11
|
+
DeleteProductMutationVariables,
|
|
12
|
+
PaginatedProductsDocument,
|
|
13
|
+
PaginatedProductsQuery,
|
|
14
|
+
PaginatedProductsQueryVariables,
|
|
15
|
+
InfiniteProductsDocument,
|
|
16
|
+
InfiniteProductsQuery,
|
|
17
|
+
InfiniteProductsQueryVariables,
|
|
18
|
+
} from "@dokamerce/graphql";
|
|
19
|
+
import { fetchAllInfinite, InfiniteListSdk } from "@/utils/fetch-all-infinite.util";
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
export interface ProductsSdk {
|
|
23
|
+
// Mutations
|
|
24
|
+
create: (variables: CreateProductMutationVariables) => Promise<CreateProductMutation>; update: (variables: UpdateProductMutationVariables) => Promise<UpdateProductMutation>;
|
|
25
|
+
delete: (variables: DeleteProductMutationVariables) => Promise<DeleteProductMutation>;
|
|
26
|
+
// Paginated queries
|
|
27
|
+
paginated: (variables?: PaginatedProductsQueryVariables) => Promise<PaginatedProductsQuery>;
|
|
28
|
+
// Infinite queries
|
|
29
|
+
infinite: (variables: InfiniteProductsQueryVariables) => Promise<InfiniteProductsQuery>;
|
|
30
|
+
all: (variables: InfiniteProductsQueryVariables) => Promise<InfiniteProductsQuery["infiniteProducts"]["edges"][number]["node"][]>;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function createProductsSdk(client: GraphQLClient) : ProductsSdk {
|
|
34
|
+
const mutations = {
|
|
35
|
+
create(variables: CreateProductMutationVariables) {
|
|
36
|
+
return client.request<CreateProductMutation>(CreateProductDocument, variables);
|
|
37
|
+
},
|
|
38
|
+
update(variables: UpdateProductMutationVariables) {
|
|
39
|
+
return client.request<UpdateProductMutation>(UpdateProductDocument, variables);
|
|
40
|
+
},
|
|
41
|
+
delete(variables: DeleteProductMutationVariables) {
|
|
42
|
+
return client.request<DeleteProductMutation>(DeleteProductDocument, variables);
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const paginated = {
|
|
47
|
+
paginated(variables: PaginatedProductsQueryVariables = {}) {
|
|
48
|
+
return client.request<PaginatedProductsQuery>(PaginatedProductsDocument, variables);
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const infinite = {
|
|
53
|
+
infinite(variables: InfiniteProductsQueryVariables) {
|
|
54
|
+
return client.request<InfiniteProductsQuery>(InfiniteProductsDocument, variables);
|
|
55
|
+
},
|
|
56
|
+
all(variables: InfiniteProductsQueryVariables) {
|
|
57
|
+
const sdk: InfiniteListSdk<InfiniteProductsQuery, InfiniteProductsQueryVariables> = {
|
|
58
|
+
listInfinite: (v) => client.request<InfiniteProductsQuery>(InfiniteProductsDocument, v),
|
|
59
|
+
};
|
|
60
|
+
return fetchAllInfinite(sdk, variables, (res) => res.infiniteProducts);
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
return { ...mutations, ...paginated, ...infinite };
|
|
65
|
+
}
|