@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":";AAAA;;;;GAIG;;;;;;AAEH,iCAMc;
|
|
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
|
+
"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.
|
|
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
|
}
|