@txo/service-graphql-react 2.3.134 → 2.4.1

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/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [2.4.1](https://github.com/technology-studio/service-graphql-react/compare/v2.4.0...v2.4.1) (2024-02-26)
2
+
3
+
4
+ ### Bug fixes
5
+
6
+ * rename `fetchMoreWithError` to `fetchMore` ([#655](https://github.com/technology-studio/service-graphql-react/issues/655)) ([09942cf](https://github.com/technology-studio/service-graphql-react/commit/09942cf05e078d63192f8d15d0d56c23061bdd25))
7
+
8
+ ## [2.4.0](https://github.com/technology-studio/service-graphql-react/compare/v2.3.134...v2.4.0) (2024-02-26)
9
+
10
+
11
+ ### Features
12
+
13
+ * add `fetchMoreWithError` function in `useServiceQuery` ([#654](https://github.com/technology-studio/service-graphql-react/issues/654)) ([29c054c](https://github.com/technology-studio/service-graphql-react/commit/29c054c04939b771516e5c2a143e43e1ab5036fc))
14
+
1
15
  ## [2.3.134](https://github.com/technology-studio/service-graphql-react/compare/v2.3.133...v2.3.134) (2024-02-22)
2
16
 
3
17
 
@@ -9,6 +9,7 @@ import type { CallAttributes, ServiceProp } from '@txo/service-prop';
9
9
  export type QueryServiceProp<ATTRIBUTES extends OperationVariables, DATA, MAPPED_DATA, CALL_ATTRIBUTES extends CallAttributes<ATTRIBUTES>> = Omit<ServiceProp<ATTRIBUTES, MAPPED_DATA, CALL_ATTRIBUTES>, 'call' | 'clear' | 'options' | 'clearException'> & {
10
10
  query: QueryResult<DATA, ATTRIBUTES>;
11
11
  promiselessRefetch: (variables?: Partial<ATTRIBUTES>) => void;
12
+ fetchMore: QueryResult<DATA, ATTRIBUTES>['fetchMore'];
12
13
  };
13
14
  type QueryOptions<DATA, ATTRIBUTES extends OperationVariables, DATA_PATH extends string> = {
14
15
  options?: QueryHookOptions<DATA, ATTRIBUTES>;
@@ -66,13 +66,28 @@ const useServiceQuery = (queryDocument, options) => {
66
66
  const promiselessRefetch = (0, react_1.useCallback)((...args) => {
67
67
  (0, PromiseHelper_1.asyncToCallback)(memoizedQuery.refetch(...args));
68
68
  }, [memoizedQuery]);
69
+ const fetchMore = (0, react_1.useCallback)(async (...args) => (await memoizedQuery.fetchMore(...args).catch((error) => {
70
+ const operationName = (0, OperationHelper_1.getName)(queryDocument);
71
+ const errorList = service_graphql_1.configManager.config.errorResponseTranslator(error, {
72
+ context,
73
+ operationName,
74
+ });
75
+ const exception = new service_prop_1.ServiceErrorException({
76
+ serviceErrorList: errorList,
77
+ serviceName: operationName,
78
+ context,
79
+ });
80
+ addServiceErrorException(exception);
81
+ throw error;
82
+ })), [addServiceErrorException, context, memoizedQuery, queryDocument]);
69
83
  return (0, react_1.useMemo)(() => ({
70
84
  query: memoizedQuery,
71
85
  data: (0, lodash_get_1.default)(memoizedQuery.data, dataPath),
72
86
  fetching: memoizedQuery.loading,
73
87
  promiselessRefetch,
88
+ fetchMore,
74
89
  exception,
75
- }), [memoizedQuery, dataPath, promiselessRefetch, exception]);
90
+ }), [memoizedQuery, dataPath, promiselessRefetch, fetchMore, exception]);
76
91
  };
77
92
  exports.useServiceQuery = useServiceQuery;
78
93
  //# sourceMappingURL=UseServiceQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UseServiceQuery.js","sourceRoot":"","sources":["../../src/Hooks/UseServiceQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UseServiceQuery.js","sourceRoot":"","sources":["../../src/Hooks/UseServiceQuery.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@txo/service-graphql-react",
3
- "version": "2.3.134",
3
+ "version": "2.4.1",
4
4
  "description": "Technology Studio - Service graphql react",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -64,7 +64,7 @@
64
64
  "@types/lodash.get": "^4.4.9",
65
65
  "@types/lodash.set": "^4.3.9",
66
66
  "@types/node-fetch": "^2.6.11",
67
- "@types/react": "^18.2.57",
67
+ "@types/react": "^18.2.58",
68
68
  "concurrently": "^8.2.2",
69
69
  "eslint-config-txo-typescript-react": "^2.0.40",
70
70
  "graphql": "^16.8.1",
@@ -17,6 +17,7 @@ import type {
17
17
  TypedDocumentNode,
18
18
  QueryResult,
19
19
  OperationVariables,
20
+ ApolloError,
20
21
  } from '@apollo/client'
21
22
  import {
22
23
  useQuery,
@@ -51,6 +52,7 @@ export type QueryServiceProp<ATTRIBUTES extends OperationVariables, DATA, MAPPED
51
52
  & {
52
53
  query: QueryResult<DATA, ATTRIBUTES>,
53
54
  promiselessRefetch: (variables?: Partial<ATTRIBUTES>) => void,
55
+ fetchMore: QueryResult<DATA, ATTRIBUTES>['fetchMore'],
54
56
  }
55
57
 
56
58
  type QueryOptions<DATA, ATTRIBUTES extends OperationVariables, DATA_PATH extends string> = {
@@ -70,10 +72,10 @@ const isServiceErrorListEqual = (a: ServiceError[], b: ServiceError[]): boolean
70
72
 
71
73
  // TODO: find a better way to parse type of dataPath (from attribute)
72
74
  export const useServiceQuery = <
73
- ATTRIBUTES extends Record<string, unknown>,
74
- DATA,
75
- CALL_ATTRIBUTES extends CallAttributes<ATTRIBUTES>,
76
- DATA_PATH extends string
75
+ ATTRIBUTES extends Record<string, unknown>,
76
+ DATA,
77
+ CALL_ATTRIBUTES extends CallAttributes<ATTRIBUTES>,
78
+ DATA_PATH extends string
77
79
  >(
78
80
  queryDocument: TypedDocumentNode<DATA, ATTRIBUTES>,
79
81
  options: QueryOptions<DATA, ATTRIBUTES, DATA_PATH>,
@@ -125,11 +127,29 @@ DATA_PATH extends string
125
127
  asyncToCallback(memoizedQuery.refetch(...args))
126
128
  }, [memoizedQuery])
127
129
 
130
+ const fetchMore: QueryResult<DATA>['fetchMore'] = useCallback(async (...args) => (
131
+ await memoizedQuery.fetchMore(...args).catch((error: ApolloError) => {
132
+ const operationName = getName(queryDocument)
133
+ const errorList = configManager.config.errorResponseTranslator(error, {
134
+ context,
135
+ operationName,
136
+ })
137
+ const exception = new ServiceErrorException({
138
+ serviceErrorList: errorList,
139
+ serviceName: operationName,
140
+ context,
141
+ })
142
+ addServiceErrorException(exception)
143
+ throw error
144
+ })
145
+ ), [addServiceErrorException, context, memoizedQuery, queryDocument])
146
+
128
147
  return useMemo(() => ({
129
148
  query: memoizedQuery,
130
149
  data: get(memoizedQuery.data, dataPath) as Get<DATA, DATA_PATH> | null,
131
150
  fetching: memoizedQuery.loading,
132
151
  promiselessRefetch,
152
+ fetchMore,
133
153
  exception,
134
- }), [memoizedQuery, dataPath, promiselessRefetch, exception])
154
+ }), [memoizedQuery, dataPath, promiselessRefetch, fetchMore, exception])
135
155
  }