@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.
Files changed (112) hide show
  1. package/.ls-lint.yml +8 -0
  2. package/.nvmrc +1 -0
  3. package/.prettierignore +0 -0
  4. package/.prettierrc.js +3 -0
  5. package/README.md +47 -0
  6. package/codegen.yml +11 -0
  7. package/dist/graphql/__generated__/gateway.d.ts +2073 -0
  8. package/dist/graphql/__generated__/gateway.js +747 -0
  9. package/dist/graphql/__generated__/gateway.js.map +1 -0
  10. package/dist/graphql/src/gateway/index.d.ts +2 -0
  11. package/dist/graphql/src/gateway/index.js +20 -0
  12. package/dist/graphql/src/gateway/index.js.map +1 -0
  13. package/dist/graphql/src/utils/extract-graphql-error-message.util.d.ts +1 -0
  14. package/dist/graphql/src/utils/extract-graphql-error-message.util.js +16 -0
  15. package/dist/graphql/src/utils/extract-graphql-error-message.util.js.map +1 -0
  16. package/dist/graphql/src/utils/index.d.ts +4 -0
  17. package/dist/graphql/src/utils/index.js +21 -0
  18. package/dist/graphql/src/utils/index.js.map +1 -0
  19. package/dist/graphql/src/utils/use-graphql-mutation.util.d.ts +15 -0
  20. package/dist/graphql/src/utils/use-graphql-mutation.util.js +37 -0
  21. package/dist/graphql/src/utils/use-graphql-mutation.util.js.map +1 -0
  22. package/dist/graphql/src/utils/use-infinite-query.util.d.ts +23 -0
  23. package/dist/graphql/src/utils/use-infinite-query.util.js +57 -0
  24. package/dist/graphql/src/utils/use-infinite-query.util.js.map +1 -0
  25. package/dist/graphql/src/utils/use.query.util.d.ts +13 -0
  26. package/dist/graphql/src/utils/use.query.util.js +19 -0
  27. package/dist/graphql/src/utils/use.query.util.js.map +1 -0
  28. package/dist/tsconfig.tsbuildinfo +1 -0
  29. package/dist/web-sdk/src/constants/graphql-base.constant.d.ts +1 -0
  30. package/dist/web-sdk/src/constants/graphql-base.constant.js +5 -0
  31. package/dist/web-sdk/src/constants/graphql-base.constant.js.map +1 -0
  32. package/dist/web-sdk/src/contexts/index.d.ts +12 -0
  33. package/dist/web-sdk/src/contexts/index.js +29 -0
  34. package/dist/web-sdk/src/contexts/index.js.map +1 -0
  35. package/dist/web-sdk/src/functions/init-sdk-client.function.d.ts +7 -0
  36. package/dist/web-sdk/src/functions/init-sdk-client.function.js +16 -0
  37. package/dist/web-sdk/src/functions/init-sdk-client.function.js.map +1 -0
  38. package/dist/web-sdk/src/functions/init-sdk.function.d.ts +6 -0
  39. package/dist/web-sdk/src/functions/init-sdk.function.js +23 -0
  40. package/dist/web-sdk/src/functions/init-sdk.function.js.map +1 -0
  41. package/dist/web-sdk/src/functions/safe-call.function.d.ts +9 -0
  42. package/dist/web-sdk/src/functions/safe-call.function.js +21 -0
  43. package/dist/web-sdk/src/functions/safe-call.function.js.map +1 -0
  44. package/dist/web-sdk/src/index.d.ts +8 -0
  45. package/dist/web-sdk/src/index.js +35 -0
  46. package/dist/web-sdk/src/index.js.map +1 -0
  47. package/dist/web-sdk/src/services/attributes.d.ts +8 -0
  48. package/dist/web-sdk/src/services/attributes.js +25 -0
  49. package/dist/web-sdk/src/services/attributes.js.map +1 -0
  50. package/dist/web-sdk/src/services/brands.d.ts +8 -0
  51. package/dist/web-sdk/src/services/brands.js +25 -0
  52. package/dist/web-sdk/src/services/brands.js.map +1 -0
  53. package/dist/web-sdk/src/services/categories.d.ts +8 -0
  54. package/dist/web-sdk/src/services/categories.js +25 -0
  55. package/dist/web-sdk/src/services/categories.js.map +1 -0
  56. package/dist/web-sdk/src/services/colors.d.ts +8 -0
  57. package/dist/web-sdk/src/services/colors.js +25 -0
  58. package/dist/web-sdk/src/services/colors.js.map +1 -0
  59. package/dist/web-sdk/src/services/customers.d.ts +10 -0
  60. package/dist/web-sdk/src/services/customers.js +33 -0
  61. package/dist/web-sdk/src/services/customers.js.map +1 -0
  62. package/dist/web-sdk/src/services/files.d.ts +8 -0
  63. package/dist/web-sdk/src/services/files.js +24 -0
  64. package/dist/web-sdk/src/services/files.js.map +1 -0
  65. package/dist/web-sdk/src/services/index.d.ts +9 -0
  66. package/dist/web-sdk/src/services/index.js +26 -0
  67. package/dist/web-sdk/src/services/index.js.map +1 -0
  68. package/dist/web-sdk/src/services/metrics.d.ts +7 -0
  69. package/dist/web-sdk/src/services/metrics.js +20 -0
  70. package/dist/web-sdk/src/services/metrics.js.map +1 -0
  71. package/dist/web-sdk/src/services/orders.d.ts +10 -0
  72. package/dist/web-sdk/src/services/orders.js +33 -0
  73. package/dist/web-sdk/src/services/orders.js.map +1 -0
  74. package/dist/web-sdk/src/services/products.d.ts +11 -0
  75. package/dist/web-sdk/src/services/products.js +36 -0
  76. package/dist/web-sdk/src/services/products.js.map +1 -0
  77. package/dist/web-sdk/src/services/sellers.d.ts +10 -0
  78. package/dist/web-sdk/src/services/sellers.js +33 -0
  79. package/dist/web-sdk/src/services/sellers.js.map +1 -0
  80. package/dist/web-sdk/src/typings/pagination.typing.d.ts +15 -0
  81. package/dist/web-sdk/src/typings/pagination.typing.js +3 -0
  82. package/dist/web-sdk/src/typings/pagination.typing.js.map +1 -0
  83. package/dist/web-sdk/src/typings/sdk.typing.d.ts +14 -0
  84. package/dist/web-sdk/src/typings/sdk.typing.js +3 -0
  85. package/dist/web-sdk/src/typings/sdk.typing.js.map +1 -0
  86. package/dist/web-sdk/src/utils/fetch-all-infinite.util.d.ts +5 -0
  87. package/dist/web-sdk/src/utils/fetch-all-infinite.util.js +24 -0
  88. package/dist/web-sdk/src/utils/fetch-all-infinite.util.js.map +1 -0
  89. package/package.json +20 -0
  90. package/src/constants/graphql-base.constant.ts +1 -0
  91. package/src/contexts/index.ts +33 -0
  92. package/src/functions/init-sdk-client.function.ts +19 -0
  93. package/src/functions/init-sdk.function.ts +26 -0
  94. package/src/functions/safe-call.function.ts +29 -0
  95. package/src/index.d.ts +0 -0
  96. package/src/index.ts +74 -0
  97. package/src/services/attributes.ts +42 -0
  98. package/src/services/brands.ts +41 -0
  99. package/src/services/categories.ts +41 -0
  100. package/src/services/colors.ts +41 -0
  101. package/src/services/customers.ts +60 -0
  102. package/src/services/files.ts +58 -0
  103. package/src/services/index.ts +9 -0
  104. package/src/services/metrics.ts +39 -0
  105. package/src/services/orders.ts +59 -0
  106. package/src/services/products.ts +65 -0
  107. package/src/services/sellers.ts +91 -0
  108. package/src/typings/pagination.typing.ts +18 -0
  109. package/src/typings/sdk.typing.ts +27 -0
  110. package/src/utils/fetch-all-infinite.util.ts +41 -0
  111. package/tsconfig.dev.json +32 -0
  112. 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,9 @@
1
+ export * from './products'
2
+ export * from './sellers'
3
+ export * from './colors'
4
+ export * from './files'
5
+ export * from './categories'
6
+ export * from './brands'
7
+ export * from './attributes'
8
+ export * from './customers'
9
+ export * from './orders'
@@ -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
+ }