@txo/service-graphql-react 2.2.7 → 2.3.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.3.1](https://github.com/technology-studio/service-graphql-react/compare/v2.3.0...v2.3.1) (2022-11-28)
2
+
3
+
4
+ ### Bug fixes
5
+
6
+ * **deps:** update dependency type-fest to ^3.3.0 ([205d5fa](https://github.com/technology-studio/service-graphql-react/commit/205d5fa81abbd35467d78754f6aadd4db4b5f10f))
7
+
8
+ ## [2.3.0](https://github.com/technology-studio/service-graphql-react/compare/v2.2.7...v2.3.0) (2022-11-21)
9
+
10
+
11
+ ### Features
12
+
13
+ * add promiselessRefetch with promise helpers ([#53](https://github.com/technology-studio/service-graphql-react/issues/53)) ([059662f](https://github.com/technology-studio/service-graphql-react/commit/059662f9d2afce6a5401f848303d294658839864))
14
+
1
15
  ## [2.2.7](https://github.com/technology-studio/service-graphql-react/compare/v2.2.6...v2.2.7) (2022-11-05)
2
16
 
3
17
 
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @Author: Erik Slovak <erik.slovak@technologystudio.sk>
3
+ * @Date: 2022-06-08T09:06:94+02:00
4
+ * @Copyright: Technology Studio
5
+ **/
6
+ export type ResultlessPromise = {
7
+ finally: (callback: () => void) => ResultlessPromise;
8
+ };
9
+ export declare const suppressResults: (promise: Promise<unknown>) => ResultlessPromise;
10
+ export declare const suppressErrors: <DATA>(promise: Promise<DATA>, thenCallback: (data: DATA) => void) => void;
11
+ export declare const asyncToCallback: (promise: Promise<unknown>) => void;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * @Author: Erik Slovak <erik.slovak@technologystudio.sk>
4
+ * @Date: 2022-06-08T09:06:94+02:00
5
+ * @Copyright: Technology Studio
6
+ **/
7
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
+ return new (P || (P = Promise))(function (resolve, reject) {
10
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
14
+ });
15
+ };
16
+ var __generator = (this && this.__generator) || function (thisArg, body) {
17
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
18
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
19
+ function verb(n) { return function (v) { return step([n, v]); }; }
20
+ function step(op) {
21
+ if (f) throw new TypeError("Generator is already executing.");
22
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
23
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
24
+ if (y = 0, t) op = [op[0] & 2, t.value];
25
+ switch (op[0]) {
26
+ case 0: case 1: t = op; break;
27
+ case 4: _.label++; return { value: op[1], done: false };
28
+ case 5: _.label++; y = op[1]; op = [0]; continue;
29
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
30
+ default:
31
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
32
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
33
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
34
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
35
+ if (t[2]) _.ops.pop();
36
+ _.trys.pop(); continue;
37
+ }
38
+ op = body.call(thisArg, _);
39
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
40
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
41
+ }
42
+ };
43
+ exports.__esModule = true;
44
+ exports.asyncToCallback = exports.suppressErrors = exports.suppressResults = void 0;
45
+ var suppressResults = function (promise) { return promise
46
+ .then(function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
47
+ return [2 /*return*/, Promise.resolve()];
48
+ }); }); })["catch"](function () { return undefined; }); };
49
+ exports.suppressResults = suppressResults;
50
+ var suppressErrors = function (promise, thenCallback) {
51
+ void promise
52
+ .then(thenCallback)["catch"](function () { return undefined; });
53
+ };
54
+ exports.suppressErrors = suppressErrors;
55
+ var asyncToCallback = function (promise) {
56
+ (0, exports.suppressResults)(promise);
57
+ };
58
+ exports.asyncToCallback = asyncToCallback;
59
+ //# sourceMappingURL=PromiseHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromiseHelper.js","sourceRoot":"","sources":["../../src/Api/PromiseHelper.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMI,IAAM,eAAe,GAAG,UAAC,OAAyB,IAAwB,OAC9E,OAAO;KACL,IAAI,CAAC;IAAY,sBAAA,OAAO,CAAC,OAAO,EAAE,EAAA;SAAA,CAAC,CACnC,OAAK,CAAA,CAAC,cAAM,OAAA,SAAS,EAAT,CAAS,CACzB,EAJgF,CAIhF,CAAA;AAJY,QAAA,eAAe,mBAI3B;AAEM,IAAM,cAAc,GAAG,UAC5B,OAAsB,EACtB,YAAkC;IAElC,KAAK,OAAO;SACT,IAAI,CAAC,YAAY,CAAC,CAClB,OAAK,CAAA,CAAC,cAAM,OAAA,SAAS,EAAT,CAAS,CAAC,CAAA;AAC3B,CAAC,CAAA;AAPY,QAAA,cAAc,kBAO1B;AAEM,IAAM,eAAe,GAAG,UAC7B,OAAyB;IAEzB,IAAA,uBAAe,EAAC,OAAO,CAAC,CAAA;AAC1B,CAAC,CAAA;AAJY,QAAA,eAAe,mBAI3B"}
@@ -7,11 +7,11 @@ import type { DependencyList } from 'react';
7
7
  import type { CallAttributes, ServiceProp } from '@txo/service-prop';
8
8
  import type { MutationOptions as ApolloMutationOptions, TypedDocumentNode, MutationResult, MutationFunctionOptions as MutateFunctionOptions, FetchResult } from '@apollo/client';
9
9
  import type { ErrorMap } from '../Model/Types';
10
- export declare type MutationServiceProp<ATTRIBUTES, DATA, CALL_ATTRIBUTES extends CallAttributes<ATTRIBUTES>> = Omit<ServiceProp<ATTRIBUTES, DATA, CALL_ATTRIBUTES, FetchResult<DATA>>, 'clear' | 'options' | 'clearException' | 'exception'> & {
10
+ export type MutationServiceProp<ATTRIBUTES, DATA, CALL_ATTRIBUTES extends CallAttributes<ATTRIBUTES>> = Omit<ServiceProp<ATTRIBUTES, DATA, CALL_ATTRIBUTES, FetchResult<DATA>>, 'clear' | 'options' | 'clearException' | 'exception'> & {
11
11
  mutation: MutationResult<DATA>;
12
12
  };
13
- export declare type MutateFunction<DATA, ATTRIBUTES> = (options?: MutateFunctionOptions<DATA, ATTRIBUTES>) => Promise<FetchResult<DATA>>;
14
- export declare type MutationOptions<DATA, ATTRIBUTES> = {
13
+ export type MutateFunction<DATA, ATTRIBUTES> = (options?: MutateFunctionOptions<DATA, ATTRIBUTES>) => Promise<FetchResult<DATA>>;
14
+ export type MutationOptions<DATA, ATTRIBUTES> = {
15
15
  onFieldErrors?: (fieldErrors: Record<string, Record<string, string>>) => void;
16
16
  options?: Omit<ApolloMutationOptions<DATA, ATTRIBUTES>, 'mutation'>;
17
17
  errorMap?: ErrorMap;
@@ -30,7 +30,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
30
30
  function verb(n) { return function (v) { return step([n, v]); }; }
31
31
  function step(op) {
32
32
  if (f) throw new TypeError("Generator is already executing.");
33
- while (_) try {
33
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
34
34
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
35
35
  if (y = 0, t) op = [op[0] & 2, t.value];
36
36
  switch (op[0]) {
@@ -6,10 +6,10 @@
6
6
  import type { QueryHookOptions, TypedDocumentNode, QueryResult } from '@apollo/client';
7
7
  import type { Get } from 'type-fest';
8
8
  import type { CallAttributes, ServiceProp } from '@txo/service-prop';
9
- export declare type QueryServiceProp<ATTRIBUTES, DATA, MAPPED_DATA, CALL_ATTRIBUTES extends CallAttributes<ATTRIBUTES>> = Omit<ServiceProp<ATTRIBUTES, MAPPED_DATA, CALL_ATTRIBUTES>, 'call' | 'clear' | 'options' | 'clearException'> & {
9
+ export type QueryServiceProp<ATTRIBUTES, 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
  };
12
- declare type QueryOptions<DATA, ATTRIBUTES, DATA_PATH extends string> = {
12
+ type QueryOptions<DATA, ATTRIBUTES, DATA_PATH extends string> = {
13
13
  options?: QueryHookOptions<DATA, ATTRIBUTES>;
14
14
  dataPath: DATA_PATH;
15
15
  };
@@ -18,6 +18,7 @@ var hooks_react_1 = require("@txo/hooks-react");
18
18
  var service_error_handler_react_1 = require("@txo-peer-dep/service-error-handler-react");
19
19
  var ContextHelper_1 = require("../Api/ContextHelper");
20
20
  var OperationHelper_1 = require("../Api/OperationHelper");
21
+ var PromiseHelper_1 = require("../Api/PromiseHelper");
21
22
  var calculateContext = function (query, variables) { return ((0, ContextHelper_1.serviceContext)((0, OperationHelper_1.getName)(query), variables !== null && variables !== void 0 ? variables : {})); };
22
23
  var isServiceErrorListEqual = function (a, b) {
23
24
  if (a.length !== b.length) {
@@ -62,12 +63,20 @@ var useServiceQuery = function (queryDocument, options) {
62
63
  exception && removeServiceErrorException(context);
63
64
  };
64
65
  }, [addServiceErrorException, context, exception, memoizedVariables, queryDocument, removeServiceErrorException]);
66
+ var promiselessRefetch = (0, react_1.useCallback)(function () {
67
+ var args = [];
68
+ for (var _i = 0; _i < arguments.length; _i++) {
69
+ args[_i] = arguments[_i];
70
+ }
71
+ (0, PromiseHelper_1.asyncToCallback)(memoizedQuery.refetch.apply(memoizedQuery, args));
72
+ }, [memoizedQuery]);
65
73
  return (0, react_1.useMemo)(function () { return ({
66
74
  query: memoizedQuery,
67
75
  data: (0, lodash_get_1["default"])(memoizedQuery.data, dataPath),
68
76
  fetching: memoizedQuery.loading,
77
+ promiselessRefetch: promiselessRefetch,
69
78
  exception: exception
70
- }); }, [memoizedQuery, exception, dataPath]);
79
+ }); }, [memoizedQuery, dataPath, promiselessRefetch, exception]);
71
80
  };
72
81
  exports.useServiceQuery = useServiceQuery;
73
82
  //# 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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"}
@@ -4,12 +4,12 @@
4
4
  * @Copyright: Technology Studio
5
5
  **/
6
6
  import type { ServiceError } from '@txo/service-prop';
7
- export declare type ErrorMapper = ((options: {
7
+ export type ErrorMapper = ((options: {
8
8
  error: ServiceError;
9
9
  fieldErrors?: Record<string, Record<string, string>>;
10
10
  path: string;
11
11
  }) => ServiceError | undefined) | undefined;
12
- export declare type ErrorMap = {
12
+ export type ErrorMap = {
13
13
  [key: string]: ErrorMap;
14
14
  } | ErrorMapper;
15
15
  export declare const VALIDATION_ERROR = "VALIDATION_ERROR";
package/lib/index.d.ts CHANGED
@@ -5,6 +5,7 @@
5
5
  **/
6
6
  export { getName } from './Api/OperationHelper';
7
7
  export * from './Api/ErrorMapHelper';
8
+ export * from './Api/PromiseHelper';
8
9
  export * from './Hooks/UseServiceMutation';
9
10
  export { useServiceQuery, QueryServiceProp, } from './Hooks/UseServiceQuery';
10
11
  export * from './Model/Types';
package/lib/index.js CHANGED
@@ -23,6 +23,7 @@ exports.useServiceQuery = exports.getName = void 0;
23
23
  var OperationHelper_1 = require("./Api/OperationHelper");
24
24
  __createBinding(exports, OperationHelper_1, "getName");
25
25
  __exportStar(require("./Api/ErrorMapHelper"), exports);
26
+ __exportStar(require("./Api/PromiseHelper"), exports);
26
27
  __exportStar(require("./Hooks/UseServiceMutation"), exports);
27
28
  var UseServiceQuery_1 = require("./Hooks/UseServiceQuery");
28
29
  __createBinding(exports, UseServiceQuery_1, "useServiceQuery");
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,yDAA+C;AAAtC,uDAAO;AAChB,uDAAoC;AACpC,6DAA0C;AAC1C,2DAGgC;AAF9B,+DAAe;AAGjB,gDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,yDAA+C;AAAtC,uDAAO;AAChB,uDAAoC;AACpC,sDAAmC;AACnC,6DAA0C;AAC1C,2DAGgC;AAF9B,+DAAe;AAGjB,gDAA6B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@txo/service-graphql-react",
3
- "version": "2.2.7",
3
+ "version": "2.3.1",
4
4
  "description": "Technology Studio - Service graphql react",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -40,7 +40,7 @@
40
40
  "@txo/types": "^1.3.0",
41
41
  "lodash.get": "^4.4.2",
42
42
  "lodash.set": "^4.3.2",
43
- "type-fest": "^3.2.0"
43
+ "type-fest": "^3.3.0"
44
44
  },
45
45
  "peerDependencies": {
46
46
  "@apollo/client": "^3.7.1",
@@ -50,38 +50,38 @@
50
50
  },
51
51
  "devDependencies": {
52
52
  "@apollo/client": "^3.7.1",
53
- "@commitlint/cli": "^17.2.0",
54
- "@commitlint/config-conventional": "^17.2.0",
53
+ "@commitlint/cli": "^17.3.0",
54
+ "@commitlint/config-conventional": "^17.3.0",
55
55
  "@semantic-release/changelog": "^6.0.1",
56
56
  "@semantic-release/git": "^10.0.1",
57
57
  "@txo-peer-dep/log": "^4.0.0",
58
58
  "@txo-peer-dep/service-error-handler-react": "^1.2.2",
59
59
  "@txo-peer-dep/service-graphql": "^3.2.2",
60
60
  "@txo/log-console": "^3.0.0",
61
- "@types/jest": "^29.2.2",
61
+ "@types/jest": "^29.2.3",
62
62
  "@types/lodash.get": "^4.4.7",
63
63
  "@types/lodash.set": "^4.3.7",
64
64
  "@types/react": "^18.0.25",
65
- "@typescript-eslint/eslint-plugin": "^5.42.0",
66
- "@typescript-eslint/parser": "^5.42.0",
65
+ "@typescript-eslint/eslint-plugin": "^5.44.0",
66
+ "@typescript-eslint/parser": "^5.44.0",
67
67
  "commitizen": "^4.2.5",
68
- "concurrently": "^7.5.0",
69
- "eslint": "^8.26.0",
70
- "eslint-config-txo-typescript-react": "^1.0.20",
68
+ "concurrently": "^7.6.0",
69
+ "eslint": "^8.28.0",
70
+ "eslint-config-txo-typescript-react": "^1.0.30",
71
71
  "eslint-formatter-pretty": "^4.1.0",
72
72
  "eslint-plugin-eslint-comments": "^3.2.0",
73
73
  "eslint-plugin-import": "^2.26.0",
74
- "eslint-plugin-jest": "^27.1.4",
74
+ "eslint-plugin-jest": "^27.1.6",
75
75
  "eslint-plugin-jsx-a11y": "^6.6.1",
76
- "eslint-plugin-n": "^15.4.0",
76
+ "eslint-plugin-n": "^15.5.1",
77
77
  "eslint-plugin-promise": "^6.1.1",
78
- "eslint-plugin-react": "^7.31.10",
78
+ "eslint-plugin-react": "^7.31.11",
79
79
  "eslint-plugin-react-hooks": "^4.6.0",
80
80
  "eslint-plugin-redux-saga": "^1.3.2",
81
81
  "graphql": "^16.6.0",
82
- "husky": "^8.0.1",
83
- "jest": "^29.2.2",
84
- "lint-staged": "^13.0.3",
82
+ "husky": "^8.0.2",
83
+ "jest": "^29.3.1",
84
+ "lint-staged": "^13.0.4",
85
85
  "react": "^18.2.0",
86
86
  "react-dom": "^18.2.0",
87
87
  "redux-saga": "^1.2.1",
@@ -89,7 +89,7 @@
89
89
  "semantic-release": "^19.0.5",
90
90
  "semantic-release-slack-bot": "^3.5.3",
91
91
  "ts-jest": "^29.0.3",
92
- "typescript": "^4.8.4"
92
+ "typescript": "^4.9.3"
93
93
  },
94
94
  "config": {
95
95
  "commitizen": {
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @Author: Erik Slovak <erik.slovak@technologystudio.sk>
3
+ * @Date: 2022-06-08T09:06:94+02:00
4
+ * @Copyright: Technology Studio
5
+ **/
6
+
7
+ export type ResultlessPromise = {
8
+ finally: (callback: () => void) => ResultlessPromise,
9
+ }
10
+
11
+ export const suppressResults = (promise: Promise<unknown>): ResultlessPromise => (
12
+ (promise
13
+ .then(async () => Promise.resolve())
14
+ .catch(() => undefined) as ResultlessPromise)
15
+ )
16
+
17
+ export const suppressErrors = <DATA,>(
18
+ promise: Promise<DATA>,
19
+ thenCallback: (data: DATA) => void,
20
+ ): void => {
21
+ void promise
22
+ .then(thenCallback)
23
+ .catch(() => undefined)
24
+ }
25
+
26
+ export const asyncToCallback = (
27
+ promise: Promise<unknown>,
28
+ ): void => {
29
+ suppressResults(promise)
30
+ }
@@ -5,6 +5,7 @@
5
5
  **/
6
6
 
7
7
  import {
8
+ useCallback,
8
9
  useContext,
9
10
  useLayoutEffect,
10
11
  useMemo,
@@ -38,6 +39,7 @@ import type { Typify } from '@txo/types'
38
39
 
39
40
  import { serviceContext } from '../Api/ContextHelper'
40
41
  import { getName } from '../Api/OperationHelper'
42
+ import { asyncToCallback } from '../Api/PromiseHelper'
41
43
 
42
44
  const calculateContext = (query: DocumentNode, variables: Record<string, unknown> | undefined): string => (
43
45
  serviceContext(getName(query), variables ?? {})
@@ -117,10 +119,15 @@ DATA_PATH extends string
117
119
  }
118
120
  }, [addServiceErrorException, context, exception, memoizedVariables, queryDocument, removeServiceErrorException])
119
121
 
122
+ const promiselessRefetch = useCallback((...args: Parameters<typeof memoizedQuery.refetch>) => {
123
+ asyncToCallback(memoizedQuery.refetch(...args))
124
+ }, [memoizedQuery])
125
+
120
126
  return useMemo(() => ({
121
127
  query: memoizedQuery,
122
128
  data: get(memoizedQuery.data, dataPath),
123
129
  fetching: memoizedQuery.loading,
130
+ promiselessRefetch,
124
131
  exception,
125
- }), [memoizedQuery, exception, dataPath])
132
+ }), [memoizedQuery, dataPath, promiselessRefetch, exception])
126
133
  }
package/src/index.ts CHANGED
@@ -6,6 +6,7 @@
6
6
 
7
7
  export { getName } from './Api/OperationHelper'
8
8
  export * from './Api/ErrorMapHelper'
9
+ export * from './Api/PromiseHelper'
9
10
  export * from './Hooks/UseServiceMutation'
10
11
  export {
11
12
  useServiceQuery,