@faasjs/react 0.0.4-beta.1 → 0.0.4-beta.11

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
@@ -64,13 +64,13 @@ ___
64
64
 
65
65
  ### FaasAction
66
66
 
67
- Ƭ **FaasAction**: `FaasActionPaths` \| `Record`<`string`, `any`\>
67
+ Ƭ **FaasAction**: `FaasActionPaths` \| `Record`\<`string`, `any`\>
68
68
 
69
69
  ___
70
70
 
71
71
  ### FaasData
72
72
 
73
- Ƭ **FaasData**<`T`\>: `T` extends `FaasActionPaths` ? `FaasActions`[`T`][``"Data"``] : `T`
73
+ Ƭ **FaasData**\<`T`\>: `T` extends `FaasActionPaths` ? `FaasActions`[`T`][``"Data"``] : `T`
74
74
 
75
75
  #### Type parameters
76
76
 
@@ -82,7 +82,7 @@ ___
82
82
 
83
83
  ### FaasDataInjection
84
84
 
85
- Ƭ **FaasDataInjection**<`Data`\>: `Object`
85
+ Ƭ **FaasDataInjection**\<`Data`\>: `Object`
86
86
 
87
87
  Injects FaasData props.
88
88
 
@@ -100,20 +100,20 @@ Injects FaasData props.
100
100
  | `data` | `Data` |
101
101
  | `error` | `any` |
102
102
  | `loading` | `boolean` |
103
- | `params` | `Record`<`string`, `any`\> |
104
- | `promise` | `Promise`<`Response`<`Data`\>\> |
103
+ | `params` | `Record`\<`string`, `any`\> |
104
+ | `promise` | `Promise`\<`Response`\<`Data`\>\> |
105
105
  | `reloadTimes` | `number` |
106
- | `setData` | `React.Dispatch`<`React.SetStateAction`<`Data`\>\> |
107
- | `setError` | `React.Dispatch`<`React.SetStateAction`<`any`\>\> |
108
- | `setLoading` | `React.Dispatch`<`React.SetStateAction`<`boolean`\>\> |
109
- | `setPromise` | `React.Dispatch`<`React.SetStateAction`<`Promise`<`Response`<`Data`\>\>\>\> |
110
- | `reload` | (`params?`: `Record`<`string`, `any`\>) => `Promise`<`any`\> |
106
+ | `setData` | `React.Dispatch`\<`React.SetStateAction`\<`Data`\>\> |
107
+ | `setError` | `React.Dispatch`\<`React.SetStateAction`\<`any`\>\> |
108
+ | `setLoading` | `React.Dispatch`\<`React.SetStateAction`\<`boolean`\>\> |
109
+ | `setPromise` | `React.Dispatch`\<`React.SetStateAction`\<`Promise`\<`Response`\<`Data`\>\>\>\> |
110
+ | `reload` | (`params?`: `Record`\<`string`, `any`\>) => `Promise`\<`any`\> |
111
111
 
112
112
  ___
113
113
 
114
114
  ### FaasDataWrapperProps
115
115
 
116
- Ƭ **FaasDataWrapperProps**<`PathOrData`\>: `Object`
116
+ Ƭ **FaasDataWrapperProps**\<`PathOrData`\>: `Object`
117
117
 
118
118
  #### Type parameters
119
119
 
@@ -126,19 +126,19 @@ ___
126
126
  | Name | Type | Description |
127
127
  | :------ | :------ | :------ |
128
128
  | `action` | `string` | - |
129
- | `children?` | `React.ReactElement`<`Partial`<[`FaasDataInjection`](#faasdatainjection)\>\> | - |
130
- | `data?` | `FaasData`<`PathOrData`\> | use custom data, should work with setData |
129
+ | `children?` | `React.ReactElement`\<`Partial`\<[`FaasDataInjection`](#faasdatainjection)\>\> | - |
130
+ | `data?` | `FaasData`\<`PathOrData`\> | use custom data, should work with setData |
131
131
  | `fallback?` | `JSX.Element` \| ``false`` | - |
132
- | `params?` | `FaasParams`<`PathOrData`\> | - |
133
- | `setData?` | `React.Dispatch`<`React.SetStateAction`<`FaasData`<`PathOrData`\>\>\> | use custom setData, should work with data |
134
- | `onDataChange?` | (`args`: [`FaasDataInjection`](#faasdatainjection)<`FaasData`<`PathOrData`\>\>) => `void` | - |
135
- | `render?` | (`args`: [`FaasDataInjection`](#faasdatainjection)<`FaasData`<`PathOrData`\>\>) => `Element` \| `Element`[] | - |
132
+ | `params?` | `FaasParams`\<`PathOrData`\> | - |
133
+ | `setData?` | `React.Dispatch`\<`React.SetStateAction`\<`FaasData`\<`PathOrData`\>\>\> | use custom setData, should work with data |
134
+ | `onDataChange?` | (`args`: [`FaasDataInjection`](#faasdatainjection)\<`FaasData`\<`PathOrData`\>\>) => `void` | - |
135
+ | `render?` | (`args`: [`FaasDataInjection`](#faasdatainjection)\<`FaasData`\<`PathOrData`\>\>) => `Element` \| `Element`[] | - |
136
136
 
137
137
  ___
138
138
 
139
139
  ### FaasParams
140
140
 
141
- Ƭ **FaasParams**<`T`\>: `T` extends `FaasActionPaths` ? `FaasActions`[`T`][``"Params"``] : `any`
141
+ Ƭ **FaasParams**\<`T`\>: `T` extends `FaasActionPaths` ? `FaasActions`[`T`][``"Params"``] : `any`
142
142
 
143
143
  #### Type parameters
144
144
 
@@ -156,20 +156,20 @@ ___
156
156
 
157
157
  | Name | Type |
158
158
  | :------ | :------ |
159
- | `faas` | <PathOrData\>(`action`: `string` \| `PathOrData`, `params`: `FaasParams`<`PathOrData`\>) => `Promise`<`Response`<`FaasData`<`PathOrData`\>\>\> |
159
+ | `faas` | \<PathOrData\>(`action`: `string` \| `PathOrData`, `params`: `FaasParams`\<`PathOrData`\>) => `Promise`\<`Response`\<`FaasData`\<`PathOrData`\>\>\> |
160
160
  | `id` | `string` |
161
- | `useFaas` | <PathOrData\>(`action`: `string` \| `PathOrData`, `defaultParams`: `FaasParams`<`PathOrData`\>, `options?`: [`useFaasOptions`](#usefaasoptions)<`PathOrData`\>) => [`FaasDataInjection`](#faasdatainjection)<`FaasData`<`PathOrData`\>\> |
162
- | `FaasDataWrapper` | <PathOrData\>(`props`: [`FaasDataWrapperProps`](#faasdatawrapperprops)<`PathOrData`\>) => `Element` |
161
+ | `useFaas` | \<PathOrData\>(`action`: `string` \| `PathOrData`, `defaultParams`: `FaasParams`\<`PathOrData`\>, `options?`: [`useFaasOptions`](#usefaasoptions)\<`PathOrData`\>) => [`FaasDataInjection`](#faasdatainjection)\<`FaasData`\<`PathOrData`\>\> |
162
+ | `FaasDataWrapper` | \<PathOrData\>(`props`: [`FaasDataWrapperProps`](#faasdatawrapperprops)\<`PathOrData`\>) => `Element` |
163
163
 
164
164
  ___
165
165
 
166
166
  ### Options
167
167
 
168
- Ƭ **Options**: `RequestInit` & { `beforeRequest?`: (`{
168
+ Ƭ **Options**: `RequestInit` & \{ `beforeRequest?`: (`{
169
169
  action,
170
170
  params,
171
171
  options,
172
- }`: { `action`: `string` ; `options`: [`Options`](#options) ; `params`: `Record`<`string`, `any`\> }) => `Promise`<`void`\> \| `void` ; `headers?`: { `[key: string]`: `string`; } ; `request?`: <PathOrData\>(`url`: `string`, `options`: [`Options`](#options)) => `Promise`<[`Response`](classes/Response.md)<[`FaasData`](#faasdata)<`PathOrData`\>\>\> }
172
+ }`: \{ `action`: `string` ; `options`: [`Options`](#options) ; `params`: `Record`\<`string`, `any`\> }) => `Promise`\<`void`\> ; `headers?`: \{ `[key: string]`: `string`; } ; `request?`: \<PathOrData\>(`url`: `string`, `options`: [`Options`](#options)) => `Promise`\<[`Response`](classes/Response.md)\<[`FaasData`](#faasdata)\<`PathOrData`\>\>\> }
173
173
 
174
174
  ___
175
175
 
@@ -185,7 +185,7 @@ ___
185
185
 
186
186
  ### useFaasOptions
187
187
 
188
- Ƭ **useFaasOptions**<`PathOrData`\>: `Object`
188
+ Ƭ **useFaasOptions**\<`PathOrData`\>: `Object`
189
189
 
190
190
  #### Type parameters
191
191
 
@@ -197,17 +197,17 @@ ___
197
197
 
198
198
  | Name | Type | Description |
199
199
  | :------ | :------ | :------ |
200
- | `data?` | `FaasData`<`PathOrData`\> | - |
200
+ | `data?` | `FaasData`\<`PathOrData`\> | - |
201
201
  | `debounce?` | `number` | send the last request after milliseconds |
202
- | `params?` | `FaasParams`<`PathOrData`\> | - |
203
- | `setData?` | `React.Dispatch`<`React.SetStateAction`<`FaasData`<`PathOrData`\>\>\> | - |
204
- | `skip?` | `boolean` | - |
202
+ | `params?` | `FaasParams`\<`PathOrData`\> | - |
203
+ | `setData?` | `React.Dispatch`\<`React.SetStateAction`\<`FaasData`\<`PathOrData`\>\>\> | - |
204
+ | `skip?` | `boolean` \| (`params`: `FaasParams`\<`PathOrData`\>) => `boolean` | if skip is true, will not send request |
205
205
 
206
206
  ## Functions
207
207
 
208
208
  ### FaasDataWrapper
209
209
 
210
- ▸ **FaasDataWrapper**<`PathOrData`\>(`props`): `JSX.Element`
210
+ ▸ **FaasDataWrapper**\<`PathOrData`\>(`props`): `JSX.Element`
211
211
 
212
212
  A data wrapper for react components
213
213
 
@@ -215,13 +215,13 @@ A data wrapper for react components
215
215
 
216
216
  | Name | Type |
217
217
  | :------ | :------ |
218
- | `PathOrData` | extends `Record`<`string`, `any`\> |
218
+ | `PathOrData` | extends `Record`\<`string`, `any`\> |
219
219
 
220
220
  #### Parameters
221
221
 
222
222
  | Name | Type |
223
223
  | :------ | :------ |
224
- | `props` | [`FaasDataWrapperProps`](#faasdatawrapperprops)<`PathOrData`\> |
224
+ | `props` | [`FaasDataWrapperProps`](#faasdatawrapperprops)\<`PathOrData`\> |
225
225
 
226
226
  #### Returns
227
227
 
@@ -252,7 +252,7 @@ Before use faas, you should initialize a FaasReactClient.
252
252
  | :------ | :------ |
253
253
  | `«destructured»` | `Object` |
254
254
  | › `domain` | `string` |
255
- | › `onError?` | (`action`: `string`, `params`: `Record`<`string`, `any`\>) => (`res`: [`ResponseError`](classes/ResponseError.md)) => `Promise`<`void`\> |
255
+ | › `onError?` | (`action`: `string`, `params`: `Record`\<`string`, `any`\>) => (`res`: [`ResponseError`](classes/ResponseError.md)) => `Promise`\<`void`\> |
256
256
  | › `options?` | [`Options`](#options) |
257
257
 
258
258
  #### Returns
@@ -269,7 +269,7 @@ ___
269
269
 
270
270
  ### faas
271
271
 
272
- ▸ **faas**<`PathOrData`\>(`action`, `params`): `Promise`<[`Response`](classes/Response.md)<[`FaasData`](#faasdata)<`PathOrData`\>\>\>
272
+ ▸ **faas**\<`PathOrData`\>(`action`, `params`): `Promise`\<[`Response`](classes/Response.md)\<[`FaasData`](#faasdata)\<`PathOrData`\>\>\>
273
273
 
274
274
  Request faas server
275
275
 
@@ -277,18 +277,18 @@ Request faas server
277
277
 
278
278
  | Name | Type |
279
279
  | :------ | :------ |
280
- | `PathOrData` | extends `Record`<`string`, `any`\> |
280
+ | `PathOrData` | extends `Record`\<`string`, `any`\> |
281
281
 
282
282
  #### Parameters
283
283
 
284
284
  | Name | Type | Description |
285
285
  | :------ | :------ | :------ |
286
286
  | `action` | `string` \| `PathOrData` | {string} action name |
287
- | `params` | [`FaasParams`](#faasparams)<`PathOrData`\> | {object} action params |
287
+ | `params` | [`FaasParams`](#faasparams)\<`PathOrData`\> | {object} action params |
288
288
 
289
289
  #### Returns
290
290
 
291
- `Promise`<[`Response`](classes/Response.md)<[`FaasData`](#faasdata)<`PathOrData`\>\>\>
291
+ `Promise`\<[`Response`](classes/Response.md)\<[`FaasData`](#faasdata)\<`PathOrData`\>\>\>
292
292
 
293
293
  ```ts
294
294
  faas<{ title: string }>('post/get', { id: 1 }).then(res => {
@@ -324,7 +324,7 @@ ___
324
324
 
325
325
  ### useFaas
326
326
 
327
- ▸ **useFaas**<`PathOrData`\>(`action`, `defaultParams`, `options?`): [`FaasDataInjection`](#faasdatainjection)<[`FaasData`](#faasdata)<`PathOrData`\>\>
327
+ ▸ **useFaas**\<`PathOrData`\>(`action`, `defaultParams`, `options?`): [`FaasDataInjection`](#faasdatainjection)\<[`FaasData`](#faasdata)\<`PathOrData`\>\>
328
328
 
329
329
  Request faas server with React hook
330
330
 
@@ -332,19 +332,19 @@ Request faas server with React hook
332
332
 
333
333
  | Name | Type |
334
334
  | :------ | :------ |
335
- | `PathOrData` | extends `Record`<`string`, `any`\> |
335
+ | `PathOrData` | extends `Record`\<`string`, `any`\> |
336
336
 
337
337
  #### Parameters
338
338
 
339
339
  | Name | Type | Description |
340
340
  | :------ | :------ | :------ |
341
341
  | `action` | `string` \| `PathOrData` | {string} action name |
342
- | `defaultParams` | [`FaasParams`](#faasparams)<`PathOrData`\> | {object} initial action params |
343
- | `options?` | [`useFaasOptions`](#usefaasoptions)<`PathOrData`\> | - |
342
+ | `defaultParams` | [`FaasParams`](#faasparams)\<`PathOrData`\> | {object} initial action params |
343
+ | `options?` | [`useFaasOptions`](#usefaasoptions)\<`PathOrData`\> | - |
344
344
 
345
345
  #### Returns
346
346
 
347
- [`FaasDataInjection`](#faasdatainjection)<[`FaasData`](#faasdata)<`PathOrData`\>\>
347
+ [`FaasDataInjection`](#faasdatainjection)\<[`FaasData`](#faasdata)\<`PathOrData`\>\>
348
348
 
349
349
  ```ts
350
350
  function Post ({ id }) {
package/dist/index.d.mts CHANGED
@@ -58,7 +58,8 @@ type useFaasOptions<PathOrData extends FaasAction> = {
58
58
  params?: FaasParams<PathOrData>
59
59
  data?: FaasData<PathOrData>
60
60
  setData?: React.Dispatch<React.SetStateAction<FaasData<PathOrData>>>
61
- skip?: boolean
61
+ /** if skip is true, will not send request */
62
+ skip?: boolean | ((params: FaasParams<PathOrData>) => boolean)
62
63
  /** send the last request after milliseconds */
63
64
  debounce?: number
64
65
  }
package/dist/index.d.ts CHANGED
@@ -58,7 +58,8 @@ type useFaasOptions<PathOrData extends FaasAction> = {
58
58
  params?: FaasParams<PathOrData>
59
59
  data?: FaasData<PathOrData>
60
60
  setData?: React.Dispatch<React.SetStateAction<FaasData<PathOrData>>>
61
- skip?: boolean
61
+ /** if skip is true, will not send request */
62
+ skip?: boolean | ((params: FaasParams<PathOrData>) => boolean)
62
63
  /** send the last request after milliseconds */
63
64
  debounce?: number
64
65
  }
package/dist/index.js CHANGED
@@ -30,6 +30,16 @@ function FaasReactClient({
30
30
  const [params, setParams] = react.useState(defaultParams);
31
31
  const [reloadTimes, setReloadTimes] = react.useState(0);
32
32
  const [fails, setFails] = react.useState(0);
33
+ const [skip, setSkip] = react.useState(
34
+ typeof options2.skip === "function" ? options2.skip(defaultParams) : options2.skip
35
+ );
36
+ react.useEffect(() => {
37
+ setSkip(
38
+ typeof options2.skip === "function" ? options2.skip(params) : options2.skip
39
+ );
40
+ }, [
41
+ typeof options2.skip === "function" ? JSON.stringify(params) : options2.skip
42
+ ]);
33
43
  react.useEffect(
34
44
  function() {
35
45
  if (JSON.stringify(defaultParams) !== JSON.stringify(params)) {
@@ -40,7 +50,7 @@ function FaasReactClient({
40
50
  );
41
51
  react.useEffect(
42
52
  function() {
43
- if (!action || (options2 == null ? void 0 : options2.skip)) {
53
+ if (!action || skip) {
44
54
  setLoading(false);
45
55
  return;
46
56
  }
@@ -88,12 +98,7 @@ function FaasReactClient({
88
98
  setLoading(false);
89
99
  };
90
100
  },
91
- [
92
- action,
93
- JSON.stringify(options2.params || params),
94
- reloadTimes,
95
- options2.skip
96
- ]
101
+ [action, JSON.stringify(options2.params || params), reloadTimes, skip]
97
102
  );
98
103
  return {
99
104
  action,
package/dist/index.mjs CHANGED
@@ -28,6 +28,16 @@ function FaasReactClient({
28
28
  const [params, setParams] = useState(defaultParams);
29
29
  const [reloadTimes, setReloadTimes] = useState(0);
30
30
  const [fails, setFails] = useState(0);
31
+ const [skip, setSkip] = useState(
32
+ typeof options2.skip === "function" ? options2.skip(defaultParams) : options2.skip
33
+ );
34
+ useEffect(() => {
35
+ setSkip(
36
+ typeof options2.skip === "function" ? options2.skip(params) : options2.skip
37
+ );
38
+ }, [
39
+ typeof options2.skip === "function" ? JSON.stringify(params) : options2.skip
40
+ ]);
31
41
  useEffect(
32
42
  function() {
33
43
  if (JSON.stringify(defaultParams) !== JSON.stringify(params)) {
@@ -38,7 +48,7 @@ function FaasReactClient({
38
48
  );
39
49
  useEffect(
40
50
  function() {
41
- if (!action || (options2 == null ? void 0 : options2.skip)) {
51
+ if (!action || skip) {
42
52
  setLoading(false);
43
53
  return;
44
54
  }
@@ -86,12 +96,7 @@ function FaasReactClient({
86
96
  setLoading(false);
87
97
  };
88
98
  },
89
- [
90
- action,
91
- JSON.stringify(options2.params || params),
92
- reloadTimes,
93
- options2.skip
94
- ]
99
+ [action, JSON.stringify(options2.params || params), reloadTimes, skip]
95
100
  );
96
101
  return {
97
102
  action,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faasjs/react",
3
- "version": "0.0.4-beta.1",
3
+ "version": "0.0.4-beta.11",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -21,13 +21,14 @@
21
21
  "files": [
22
22
  "dist"
23
23
  ],
24
+ "dependencies": {
25
+ "@faasjs/browser": "0.0.4-beta.11"
26
+ },
24
27
  "peerDependencies": {
25
- "react": "*",
26
- "@faasjs/browser": "0.0.3-beta.109"
28
+ "react": "*"
27
29
  },
28
30
  "devDependencies": {
29
31
  "@types/react": "*",
30
- "@faasjs/browser": "0.0.4-beta.1",
31
32
  "react": "*"
32
33
  },
33
34
  "engines": {