@faasjs/react 0.0.3-beta.2 → 0.0.3-beta.20

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/README.md CHANGED
@@ -134,7 +134,7 @@ ___
134
134
  | Name | Type |
135
135
  | :------ | :------ |
136
136
  | `faas` | <PathOrData\>(`action`: `string` \| `PathOrData`, `params`: [`FaasParams`](#faasparams)<`PathOrData`\>) => `Promise`<[`Response`](classes/Response.md)<[`FaasData`](#faasdata)<`PathOrData`\>\>\> |
137
- | `useFaas` | <PathOrData\>(`action`: `string` \| `PathOrData`, `defaultParams`: [`FaasParams`](#faasparams)<`PathOrData`\>) => [`FaasDataInjection`](#faasdatainjection)<[`FaasData`](#faasdata)<`PathOrData`\>\> |
137
+ | `useFaas` | <PathOrData\>(`action`: `string` \| `PathOrData`, `defaultParams`: [`FaasParams`](#faasparams)<`PathOrData`\>, `options?`: { `data?`: [`FaasData`](#faasdata)<`PathOrData`\> ; `setData?`: `React.Dispatch`<`React.SetStateAction`<[`FaasData`](#faasdata)<`PathOrData`\>\>\> ; `skip?`: `boolean` }) => [`FaasDataInjection`](#faasdatainjection)<[`FaasData`](#faasdata)<`PathOrData`\>\> |
138
138
  | `FaasDataWrapper` | <PathOrData\>(`props`: [`FaasDataWrapperProps`](#faasdatawrapperprops)<`PathOrData`\>) => `Element` |
139
139
 
140
140
  ___
@@ -194,7 +194,7 @@ ___
194
194
 
195
195
  ### FaasReactClient
196
196
 
197
- ▸ **FaasReactClient**(`__namedParameters`): [`FaasReactClientInstance`](#faasreactclientinstance)
197
+ ▸ **FaasReactClient**(`«destructured»`): [`FaasReactClientInstance`](#faasreactclientinstance)
198
198
 
199
199
  Before use faas, you should initialize a FaasReactClient.
200
200
 
@@ -202,10 +202,10 @@ Before use faas, you should initialize a FaasReactClient.
202
202
 
203
203
  | Name | Type |
204
204
  | :------ | :------ |
205
- | `__namedParameters` | `Object` |
206
- | `__namedParameters.domain` | `string` |
207
- | `__namedParameters.onError?` | (`action`: `string`, `params`: `Record`<`string`, `any`\>) => (`res`: [`ResponseError`](classes/ResponseError.md)) => `Promise`<`void`\> |
208
- | `__namedParameters.options?` | [`Options`](#options) |
205
+ | `«destructured»` | `Object` |
206
+ | › `domain` | `string` |
207
+ | › `onError?` | (`action`: `string`, `params`: `Record`<`string`, `any`\>) => (`res`: [`ResponseError`](classes/ResponseError.md)) => `Promise`<`void`\> |
208
+ | › `options?` | [`Options`](#options) |
209
209
 
210
210
  #### Returns
211
211
 
@@ -276,7 +276,7 @@ ___
276
276
 
277
277
  ### useFaas
278
278
 
279
- ▸ **useFaas**<`PathOrData`\>(`action`, `defaultParams`): [`FaasDataInjection`](#faasdatainjection)<[`FaasData`](#faasdata)<`PathOrData`\>\>
279
+ ▸ **useFaas**<`PathOrData`\>(`action`, `defaultParams`, `options?`): [`FaasDataInjection`](#faasdatainjection)<[`FaasData`](#faasdata)<`PathOrData`\>\>
280
280
 
281
281
  Request faas server with React hook
282
282
 
@@ -292,6 +292,10 @@ Request faas server with React hook
292
292
  | :------ | :------ | :------ |
293
293
  | `action` | `string` \| `PathOrData` | {string} action name |
294
294
  | `defaultParams` | [`FaasParams`](#faasparams)<`PathOrData`\> | {object} initial action params |
295
+ | `options?` | `Object` | - |
296
+ | `options.data?` | [`FaasData`](#faasdata)<`PathOrData`\> | - |
297
+ | `options.setData?` | `Dispatch`<`SetStateAction`<[`FaasData`](#faasdata)<`PathOrData`\>\>\> | - |
298
+ | `options.skip?` | `boolean` | - |
295
299
 
296
300
  #### Returns
297
301
 
package/dist/index.d.ts CHANGED
@@ -21,6 +21,7 @@ type FaasDataInjection<Data = any> = {
21
21
  };
22
22
  type FaasDataWrapperProps<PathOrData extends FaasAction> = {
23
23
  render?(args: FaasDataInjection<FaasData<PathOrData>>): JSX.Element | JSX.Element[];
24
+ children?: JSX.Element;
24
25
  fallback?: JSX.Element | false;
25
26
  action: string;
26
27
  params?: FaasParams<PathOrData>;
package/dist/index.js CHANGED
@@ -64,9 +64,12 @@ function FaasReactClient({
64
64
  return;
65
65
  }
66
66
  setLoading(true);
67
- const request = client.action(action, params);
67
+ const controller = new AbortController();
68
+ const request = client.action(action, params, { signal: controller.signal });
68
69
  setPromise(request);
69
70
  request.then((r) => (options2 == null ? void 0 : options2.setData) ? options2.setData(r.data) : setData(r.data)).catch(async (e) => {
71
+ if ((e == null ? void 0 : e.message) === "The user aborted a request.")
72
+ return;
70
73
  if (onError)
71
74
  try {
72
75
  await onError(action, params)(e);
@@ -77,7 +80,10 @@ function FaasReactClient({
77
80
  setError(e);
78
81
  return Promise.reject(e);
79
82
  }).finally(() => setLoading(false));
80
- return () => setLoading(false);
83
+ return () => {
84
+ controller.abort();
85
+ setLoading(false);
86
+ };
81
87
  }, [
82
88
  action,
83
89
  JSON.stringify(params),
@@ -111,6 +117,7 @@ function FaasReactClient({
111
117
  params,
112
118
  fallback,
113
119
  render,
120
+ children,
114
121
  onDataChange,
115
122
  data,
116
123
  setData
@@ -128,8 +135,12 @@ function FaasReactClient({
128
135
  if (onDataChange)
129
136
  onDataChange(request);
130
137
  }, [JSON.stringify(request.data)]);
131
- if (loaded)
132
- return render(request);
138
+ if (loaded) {
139
+ if (children)
140
+ return (0, import_react.cloneElement)(children, request);
141
+ if (render)
142
+ return render(request);
143
+ }
133
144
  return fallback || null;
134
145
  }
135
146
  };
package/dist/index.mjs CHANGED
@@ -5,7 +5,8 @@ import {
5
5
  import {
6
6
  useState,
7
7
  useEffect,
8
- createElement
8
+ createElement,
9
+ cloneElement
9
10
  } from "react";
10
11
  var clients = {};
11
12
  function FaasReactClient({
@@ -42,9 +43,12 @@ function FaasReactClient({
42
43
  return;
43
44
  }
44
45
  setLoading(true);
45
- const request = client.action(action, params);
46
+ const controller = new AbortController();
47
+ const request = client.action(action, params, { signal: controller.signal });
46
48
  setPromise(request);
47
49
  request.then((r) => (options2 == null ? void 0 : options2.setData) ? options2.setData(r.data) : setData(r.data)).catch(async (e) => {
50
+ if ((e == null ? void 0 : e.message) === "The user aborted a request.")
51
+ return;
48
52
  if (onError)
49
53
  try {
50
54
  await onError(action, params)(e);
@@ -55,7 +59,10 @@ function FaasReactClient({
55
59
  setError(e);
56
60
  return Promise.reject(e);
57
61
  }).finally(() => setLoading(false));
58
- return () => setLoading(false);
62
+ return () => {
63
+ controller.abort();
64
+ setLoading(false);
65
+ };
59
66
  }, [
60
67
  action,
61
68
  JSON.stringify(params),
@@ -89,6 +96,7 @@ function FaasReactClient({
89
96
  params,
90
97
  fallback,
91
98
  render,
99
+ children,
92
100
  onDataChange,
93
101
  data,
94
102
  setData
@@ -106,8 +114,12 @@ function FaasReactClient({
106
114
  if (onDataChange)
107
115
  onDataChange(request);
108
116
  }, [JSON.stringify(request.data)]);
109
- if (loaded)
110
- return render(request);
117
+ if (loaded) {
118
+ if (children)
119
+ return cloneElement(children, request);
120
+ if (render)
121
+ return render(request);
122
+ }
111
123
  return fallback || null;
112
124
  }
113
125
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faasjs/react",
3
- "version": "0.0.3-beta.2",
3
+ "version": "0.0.3-beta.20",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -23,8 +23,8 @@
23
23
  "dist"
24
24
  ],
25
25
  "dependencies": {
26
- "@faasjs/browser": "^0.0.3-beta.2",
27
- "@faasjs/types": "^0.0.3-beta.2",
26
+ "@faasjs/browser": "^0.0.3-beta.20",
27
+ "@faasjs/types": "^0.0.3-beta.20",
28
28
  "react": "*"
29
29
  },
30
30
  "devDependencies": {