@faasjs/react 0.0.3-beta.4 → 0.0.3-beta.41

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
@@ -104,6 +104,7 @@ ___
104
104
  | Name | Type | Description |
105
105
  | :------ | :------ | :------ |
106
106
  | `action` | `string` | - |
107
+ | `children?` | `JSX.Element` | - |
107
108
  | `data?` | [`FaasData`](#faasdata)<`PathOrData`\> | use custom data, should work with setData |
108
109
  | `fallback?` | `JSX.Element` \| ``false`` | - |
109
110
  | `params?` | [`FaasParams`](#faasparams)<`PathOrData`\> | - |
@@ -134,7 +135,7 @@ ___
134
135
  | Name | Type |
135
136
  | :------ | :------ |
136
137
  | `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`\>\> |
138
+ | `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
139
  | `FaasDataWrapper` | <PathOrData\>(`props`: [`FaasDataWrapperProps`](#faasdatawrapperprops)<`PathOrData`\>) => `Element` |
139
140
 
140
141
  ___
@@ -194,7 +195,7 @@ ___
194
195
 
195
196
  ### FaasReactClient
196
197
 
197
- ▸ **FaasReactClient**(`__namedParameters`): [`FaasReactClientInstance`](#faasreactclientinstance)
198
+ ▸ **FaasReactClient**(`«destructured»`): [`FaasReactClientInstance`](#faasreactclientinstance)
198
199
 
199
200
  Before use faas, you should initialize a FaasReactClient.
200
201
 
@@ -202,10 +203,10 @@ Before use faas, you should initialize a FaasReactClient.
202
203
 
203
204
  | Name | Type |
204
205
  | :------ | :------ |
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) |
206
+ | `«destructured»` | `Object` |
207
+ | › `domain` | `string` |
208
+ | › `onError?` | (`action`: `string`, `params`: `Record`<`string`, `any`\>) => (`res`: [`ResponseError`](classes/ResponseError.md)) => `Promise`<`void`\> |
209
+ | › `options?` | [`Options`](#options) |
209
210
 
210
211
  #### Returns
211
212
 
@@ -276,7 +277,7 @@ ___
276
277
 
277
278
  ### useFaas
278
279
 
279
- ▸ **useFaas**<`PathOrData`\>(`action`, `defaultParams`): [`FaasDataInjection`](#faasdatainjection)<[`FaasData`](#faasdata)<`PathOrData`\>\>
280
+ ▸ **useFaas**<`PathOrData`\>(`action`, `defaultParams`, `options?`): [`FaasDataInjection`](#faasdatainjection)<[`FaasData`](#faasdata)<`PathOrData`\>\>
280
281
 
281
282
  Request faas server with React hook
282
283
 
@@ -292,6 +293,10 @@ Request faas server with React hook
292
293
  | :------ | :------ | :------ |
293
294
  | `action` | `string` \| `PathOrData` | {string} action name |
294
295
  | `defaultParams` | [`FaasParams`](#faasparams)<`PathOrData`\> | {object} initial action params |
296
+ | `options?` | `Object` | - |
297
+ | `options.data?` | [`FaasData`](#faasdata)<`PathOrData`\> | - |
298
+ | `options.setData?` | `Dispatch`<`SetStateAction`<[`FaasData`](#faasdata)<`PathOrData`\>\>\> | - |
299
+ | `options.skip?` | `boolean` | - |
295
300
 
296
301
  #### Returns
297
302
 
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export { FaasAction, FaasData, FaasParams } from '@faasjs/types';
6
6
  /**
7
7
  * Injects FaasData props.
8
8
  */
9
- type FaasDataInjection<Data = any> = {
9
+ interface FaasDataInjection<Data = any> {
10
10
  action: string | any;
11
11
  params: Record<string, any>;
12
12
  loading: boolean;
@@ -18,9 +18,10 @@ type FaasDataInjection<Data = any> = {
18
18
  setLoading: React.Dispatch<React.SetStateAction<boolean>>;
19
19
  setPromise: React.Dispatch<React.SetStateAction<Promise<Response<Data>>>>;
20
20
  setError: React.Dispatch<React.SetStateAction<any>>;
21
- };
22
- type FaasDataWrapperProps<PathOrData extends FaasAction> = {
21
+ }
22
+ interface 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>;
@@ -29,8 +30,8 @@ type FaasDataWrapperProps<PathOrData extends FaasAction> = {
29
30
  data?: FaasData<PathOrData>;
30
31
  /** use custom setData, should work with data */
31
32
  setData?: React.Dispatch<React.SetStateAction<FaasData<PathOrData>>>;
32
- };
33
- type FaasReactClientInstance = {
33
+ }
34
+ interface FaasReactClientInstance {
34
35
  faas: <PathOrData extends FaasAction>(action: string | PathOrData, params: FaasParams<PathOrData>) => Promise<Response<FaasData<PathOrData>>>;
35
36
  useFaas: <PathOrData extends FaasAction>(action: string | PathOrData, defaultParams: FaasParams<PathOrData>, options?: {
36
37
  data?: FaasData<PathOrData>;
@@ -38,7 +39,7 @@ type FaasReactClientInstance = {
38
39
  skip?: boolean;
39
40
  }) => FaasDataInjection<FaasData<PathOrData>>;
40
41
  FaasDataWrapper<PathOrData extends FaasAction>(props: FaasDataWrapperProps<PathOrData>): JSX.Element;
41
- };
42
+ }
42
43
  /**
43
44
  * Before use faas, you should initialize a FaasReactClient.
44
45
  *
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.4",
3
+ "version": "0.0.3-beta.41",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -22,9 +22,9 @@
22
22
  "files": [
23
23
  "dist"
24
24
  ],
25
- "dependencies": {
26
- "@faasjs/browser": "^0.0.3-beta.4",
27
- "@faasjs/types": "^0.0.3-beta.4",
25
+ "peerDependencies": {
26
+ "@faasjs/browser": "*",
27
+ "@faasjs/types": "*",
28
28
  "react": "*"
29
29
  },
30
30
  "devDependencies": {