@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,91 @@
1
+ import { GraphQLClient } from "graphql-request";
2
+ import {
3
+ CreateSellerDocument,
4
+ CreateSellerMutation,
5
+ CreateSellerMutationVariables,
6
+ UpdateSellerDocument,
7
+ UpdateSellerMutation,
8
+ UpdateSellerMutationVariables,
9
+ PaginatedSellersDocument,
10
+ PaginatedSellersQuery,
11
+ PaginatedSellersQueryVariables,
12
+ InfiniteSellersDocument,
13
+ InfiniteSellersQuery,
14
+ InfiniteSellersQueryVariables,
15
+ } from "@dokamerce/graphql";
16
+ import {
17
+ fetchAllInfinite,
18
+ InfiniteListSdk,
19
+ } from "@/utils/fetch-all-infinite.util";
20
+
21
+ export interface SellersSdk {
22
+ // Mutations
23
+ create: (
24
+ variables: CreateSellerMutationVariables,
25
+ ) => Promise<CreateSellerMutation>;
26
+ update: (
27
+ variables: UpdateSellerMutationVariables,
28
+ ) => Promise<UpdateSellerMutation>;
29
+ // Paginated queries
30
+ paginated: (
31
+ variables?: PaginatedSellersQueryVariables,
32
+ ) => Promise<PaginatedSellersQuery>;
33
+ // Infinite queries
34
+ infinite: (
35
+ variables: InfiniteSellersQueryVariables,
36
+ ) => Promise<InfiniteSellersQuery>;
37
+ all: (
38
+ variables: InfiniteSellersQueryVariables,
39
+ ) => Promise<InfiniteSellersQuery["infiniteSellers"]["edges"][number]["node"][]>;
40
+ }
41
+
42
+ export function createSellersSdk(client: GraphQLClient): SellersSdk {
43
+ const mutations = {
44
+ create(variables: CreateSellerMutationVariables) {
45
+ return client.request<CreateSellerMutation>(
46
+ CreateSellerDocument,
47
+ variables,
48
+ );
49
+ },
50
+ update(variables: UpdateSellerMutationVariables) {
51
+ return client.request<UpdateSellerMutation>(
52
+ UpdateSellerDocument,
53
+ variables,
54
+ );
55
+ },
56
+ };
57
+
58
+ const paginated = {
59
+ paginated(variables: PaginatedSellersQueryVariables = {}) {
60
+ return client.request<PaginatedSellersQuery>(
61
+ PaginatedSellersDocument,
62
+ variables,
63
+ );
64
+ },
65
+ };
66
+
67
+ const infinite = {
68
+ infinite(variables: InfiniteSellersQueryVariables) {
69
+ return client.request<InfiniteSellersQuery>(
70
+ InfiniteSellersDocument,
71
+ variables,
72
+ );
73
+ },
74
+ all(variables: InfiniteSellersQueryVariables) {
75
+ const sdk: InfiniteListSdk<
76
+ InfiniteSellersQuery,
77
+ InfiniteSellersQueryVariables
78
+ > = {
79
+ listInfinite: (v) =>
80
+ client.request<InfiniteSellersQuery>(InfiniteSellersDocument, v),
81
+ };
82
+ return fetchAllInfinite<
83
+ InfiniteSellersQuery["infiniteSellers"]["edges"][number]["node"],
84
+ InfiniteSellersQuery,
85
+ InfiniteSellersQueryVariables
86
+ >(sdk, variables, (res) => res.infiniteSellers);
87
+ },
88
+ };
89
+
90
+ return { ...mutations, ...paginated, ...infinite };
91
+ }
@@ -0,0 +1,18 @@
1
+ export type PageInfo = {
2
+ hasNextPage: boolean;
3
+ endCursor?: string | null;
4
+ };
5
+
6
+ export type Edge<T> = {
7
+ node: T;
8
+ cursor?: string;
9
+ };
10
+
11
+ export type Connection<T> = {
12
+ edges?: Edge<T>[] | null;
13
+ pageInfo?: PageInfo | null;
14
+ };
15
+
16
+ export type CursorVariables = {
17
+ after?: string | null;
18
+ };
@@ -0,0 +1,27 @@
1
+ // import { SDKError } from "./functions/safe-call.function";
2
+
3
+ import {
4
+ AttributesSdk,
5
+ BrandsSdk,
6
+ CategoriesSdk,
7
+ ColorsSdk,
8
+ CustomersSdk,
9
+ FileUploadSdk,
10
+ OrdersSdk,
11
+ ProductsSdk,
12
+ SellersSdk,
13
+ } from "@/services";
14
+ import { MetricsSdk } from "@/services/metrics";
15
+
16
+ export interface DokamerceSDK {
17
+ products: ProductsSdk;
18
+ attributes: AttributesSdk;
19
+ brands: BrandsSdk;
20
+ categories: CategoriesSdk;
21
+ colors: ColorsSdk;
22
+ customers: CustomersSdk;
23
+ metrics: MetricsSdk;
24
+ files: FileUploadSdk;
25
+ orders: OrdersSdk;
26
+ sellers: SellersSdk;
27
+ }
@@ -0,0 +1,41 @@
1
+ import { Connection, CursorVariables } from "../typings/pagination.typing";
2
+
3
+ export interface InfiniteListSdk<TResponse, TVariables> {
4
+ listInfinite(variables: TVariables): Promise<TResponse>;
5
+ }
6
+
7
+ /**
8
+ * Generic helper to fetch all nodes from a cursor-based infinite connection
9
+ */
10
+ export async function fetchAllInfinite<
11
+ TNode,
12
+ TResponse,
13
+ TVariables extends (CursorVariables)
14
+ >(
15
+ sdk: InfiniteListSdk<TResponse, TVariables>,
16
+ variables: TVariables,
17
+ selectConnection: (response: TResponse) => Connection<TNode> | null | undefined
18
+ ): Promise<TNode[]> {
19
+ let after = variables.after;
20
+ const items: TNode[] = [];
21
+
22
+ while (true) {
23
+ const res = await sdk.listInfinite({
24
+ ...variables,
25
+ after,
26
+ });
27
+
28
+ const connection = selectConnection(res);
29
+ if (!connection) break;
30
+
31
+ const edges = connection.edges ?? [];
32
+ items.push(...edges.map((e) => e.node));
33
+
34
+ const pageInfo = connection.pageInfo;
35
+ if (!pageInfo?.hasNextPage) break;
36
+
37
+ after = pageInfo.endCursor;
38
+ }
39
+
40
+ return items;
41
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "module": "commonjs",
5
+ "declaration": true,
6
+ "removeComments": true,
7
+ "emitDecoratorMetadata": true,
8
+ "experimentalDecorators": true,
9
+ "allowSyntheticDefaultImports": true,
10
+ "target": "ES2023",
11
+ "sourceMap": true,
12
+ "outDir": "./dist",
13
+ "incremental": true,
14
+ "skipLibCheck": true,
15
+ "strict": true,
16
+ "strictFunctionTypes": true,
17
+ "strictNullChecks": true,
18
+ "strictBindCallApply": true,
19
+ "strictPropertyInitialization": true,
20
+ "noImplicitThis": true,
21
+ "noImplicitAny": true,
22
+ "alwaysStrict": true,
23
+ "noUnusedLocals": true,
24
+ "noUnusedParameters": true,
25
+ "noImplicitReturns": true,
26
+ "noFallthroughCasesInSwitch": true,
27
+ "forceConsistentCasingInFileNames": false,
28
+ "resolveJsonModule": true,
29
+ "types": ["expect-more-jest", "jest", "node"],
30
+ "baseUrl": "./"
31
+ }
32
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "compilerOptions": {
3
+ "module": "commonjs",
4
+ "declaration": true,
5
+ "removeComments": true,
6
+ "emitDecoratorMetadata": true,
7
+ "experimentalDecorators": true,
8
+ "allowSyntheticDefaultImports": true,
9
+ "target": "ES2023",
10
+ "sourceMap": true,
11
+ "outDir": "./dist",
12
+ "incremental": true,
13
+ "skipLibCheck": true,
14
+ "strict": true,
15
+ "strictFunctionTypes": true,
16
+ "strictNullChecks": true,
17
+ "strictBindCallApply": true,
18
+ "strictPropertyInitialization": true,
19
+ "noImplicitThis": true,
20
+ "noImplicitAny": true,
21
+ "alwaysStrict": true,
22
+ "noUnusedLocals": true,
23
+ "noUnusedParameters": true,
24
+ "noImplicitReturns": true,
25
+ "noFallthroughCasesInSwitch": true,
26
+ "forceConsistentCasingInFileNames": false,
27
+ "resolveJsonModule": true,
28
+ "types": ["expect-more-jest", "jest", "node"],
29
+ "baseUrl": "./",
30
+ "paths": {
31
+ "@dokamerce/common": ["../common/src"],
32
+ "@/*": ["./src/*"],
33
+ "@dokamerce/graphql": ["../graphql/src/gateway"],
34
+ }
35
+ },
36
+ "exclude": ["../../packages/graphql/__generated__/**/*.ts"]
37
+ }