@faasjs/react 0.0.2-beta.352 → 0.0.2-beta.356
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/dist/index.d.ts +15 -6
- package/dist/index.js +46 -10
- package/dist/index.mjs +48 -10
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { Options, ResponseError
|
|
1
|
+
import { Response, Options, ResponseError } from '@faasjs/browser';
|
|
2
2
|
export { FaasBrowserClient, Options, Response, ResponseError, ResponseHeaders } from '@faasjs/browser';
|
|
3
|
-
import { FaasAction,
|
|
3
|
+
import { FaasAction, FaasData, FaasParams } from '@faasjs/types';
|
|
4
4
|
|
|
5
5
|
declare type FaasDataInjection<Data = any> = {
|
|
6
|
+
action: string | any;
|
|
7
|
+
params: Record<string, any>;
|
|
6
8
|
loading: boolean;
|
|
7
9
|
data: Data;
|
|
8
10
|
error: any;
|
|
@@ -13,17 +15,21 @@ declare type FaasDataInjection<Data = any> = {
|
|
|
13
15
|
setPromise: React.Dispatch<React.SetStateAction<Promise<Response<Data>>>>;
|
|
14
16
|
setError: React.Dispatch<React.SetStateAction<any>>;
|
|
15
17
|
};
|
|
16
|
-
declare type
|
|
17
|
-
|
|
18
|
+
declare type FaasDataWrapperProps<PathOrData extends FaasAction> = {
|
|
19
|
+
render?(args: FaasDataInjection<FaasData<PathOrData>>): JSX.Element;
|
|
18
20
|
fallback?: JSX.Element | false;
|
|
19
21
|
action: string;
|
|
20
22
|
params?: FaasParams<PathOrData>;
|
|
21
23
|
onDataChange?(args: FaasDataInjection<FaasData<PathOrData>>): void;
|
|
24
|
+
/** use custom data, should work with setData */
|
|
25
|
+
data?: FaasData<PathOrData>;
|
|
26
|
+
/** use custom setData, should work with data */
|
|
27
|
+
setData?: React.Dispatch<React.SetStateAction<FaasData<PathOrData>>>;
|
|
22
28
|
};
|
|
23
29
|
declare type FaasReactClientInstance = {
|
|
24
30
|
faas: <PathOrData extends FaasAction>(action: string | PathOrData, params: FaasParams<PathOrData>) => Promise<Response<FaasData<PathOrData>>>;
|
|
25
31
|
useFaas: <PathOrData extends FaasAction>(action: string | PathOrData, defaultParams: FaasParams<PathOrData>) => FaasDataInjection<FaasData<PathOrData>>;
|
|
26
|
-
|
|
32
|
+
FaasDataWrapper<PathOrData extends FaasAction>(props: FaasDataWrapperProps<PathOrData>): JSX.Element;
|
|
27
33
|
};
|
|
28
34
|
declare function FaasReactClient({ domain, options, onError }: {
|
|
29
35
|
domain: string;
|
|
@@ -31,5 +37,8 @@ declare function FaasReactClient({ domain, options, onError }: {
|
|
|
31
37
|
onError?: (action: string, params: Record<string, any>) => (res: ResponseError) => Promise<void>;
|
|
32
38
|
}): FaasReactClientInstance;
|
|
33
39
|
declare function getClient(domain?: string): FaasReactClientInstance;
|
|
40
|
+
declare function FaasDataWrapper<PathOrData extends FaasAction>(props: FaasDataWrapperProps<PathOrData> & {
|
|
41
|
+
client?: FaasReactClientInstance;
|
|
42
|
+
}): JSX.Element;
|
|
34
43
|
|
|
35
|
-
export { FaasReactClient, getClient };
|
|
44
|
+
export { FaasDataInjection, FaasDataWrapper, FaasDataWrapperProps, FaasReactClient, FaasReactClientInstance, getClient };
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,21 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
4
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
5
19
|
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
6
20
|
var __export = (target, all) => {
|
|
7
21
|
for (var name in all)
|
|
@@ -21,9 +35,10 @@ var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
|
21
35
|
};
|
|
22
36
|
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
23
37
|
|
|
24
|
-
// src/index.
|
|
38
|
+
// src/index.tsx
|
|
25
39
|
var src_exports = {};
|
|
26
40
|
__export(src_exports, {
|
|
41
|
+
FaasDataWrapper: () => FaasDataWrapper,
|
|
27
42
|
FaasReactClient: () => FaasReactClient,
|
|
28
43
|
getClient: () => getClient
|
|
29
44
|
});
|
|
@@ -44,7 +59,9 @@ function FaasReactClient({
|
|
|
44
59
|
});
|
|
45
60
|
return client.action(action, params);
|
|
46
61
|
}
|
|
47
|
-
function useFaas(action, defaultParams) {
|
|
62
|
+
function useFaas(action, defaultParams, options2) {
|
|
63
|
+
if (!options2)
|
|
64
|
+
options2 = {};
|
|
48
65
|
const [loading, setLoading] = (0, import_react.useState)(true);
|
|
49
66
|
const [data, setData] = (0, import_react.useState)();
|
|
50
67
|
const [error, setError] = (0, import_react.useState)();
|
|
@@ -60,7 +77,7 @@ function FaasReactClient({
|
|
|
60
77
|
setLoading(true);
|
|
61
78
|
const request = client.action(action, params);
|
|
62
79
|
setPromise(request);
|
|
63
|
-
request.then((r) => setData(r.data)).catch(async (e) => {
|
|
80
|
+
request.then((r) => (options2 == null ? void 0 : options2.setData) ? options2.setData(r.data) : setData(r.data)).catch(async (e) => {
|
|
64
81
|
if (onError)
|
|
65
82
|
try {
|
|
66
83
|
await onError(action, params)(e);
|
|
@@ -78,8 +95,10 @@ function FaasReactClient({
|
|
|
78
95
|
reloadTimes
|
|
79
96
|
]);
|
|
80
97
|
return {
|
|
98
|
+
action,
|
|
99
|
+
params,
|
|
81
100
|
loading,
|
|
82
|
-
data,
|
|
101
|
+
data: (options2 == null ? void 0 : options2.data) || data,
|
|
83
102
|
error,
|
|
84
103
|
promise,
|
|
85
104
|
async reload(params2) {
|
|
@@ -88,7 +107,7 @@ function FaasReactClient({
|
|
|
88
107
|
setReloadTimes(reloadTimes + 1);
|
|
89
108
|
return promise;
|
|
90
109
|
},
|
|
91
|
-
setData,
|
|
110
|
+
setData: (options2 == null ? void 0 : options2.setData) || setData,
|
|
92
111
|
setLoading,
|
|
93
112
|
setPromise,
|
|
94
113
|
setError
|
|
@@ -97,14 +116,19 @@ function FaasReactClient({
|
|
|
97
116
|
const reactClient = {
|
|
98
117
|
faas,
|
|
99
118
|
useFaas,
|
|
100
|
-
|
|
119
|
+
FaasDataWrapper({
|
|
101
120
|
action,
|
|
102
121
|
params,
|
|
103
122
|
fallback,
|
|
104
|
-
|
|
105
|
-
onDataChange
|
|
123
|
+
render,
|
|
124
|
+
onDataChange,
|
|
125
|
+
data,
|
|
126
|
+
setData
|
|
106
127
|
}) {
|
|
107
|
-
const request = useFaas(action, params
|
|
128
|
+
const request = useFaas(action, params, {
|
|
129
|
+
data,
|
|
130
|
+
setData
|
|
131
|
+
});
|
|
108
132
|
const [loaded, setLoaded] = (0, import_react.useState)(false);
|
|
109
133
|
(0, import_react.useEffect)(function() {
|
|
110
134
|
if (!loaded && !request.loading)
|
|
@@ -115,7 +139,7 @@ function FaasReactClient({
|
|
|
115
139
|
onDataChange(request);
|
|
116
140
|
}, [JSON.stringify(request.data)]);
|
|
117
141
|
if (loaded)
|
|
118
|
-
return
|
|
142
|
+
return render(request);
|
|
119
143
|
return fallback || null;
|
|
120
144
|
}
|
|
121
145
|
};
|
|
@@ -128,9 +152,21 @@ function getClient(domain) {
|
|
|
128
152
|
throw Error("FaasReactClient is not initialized");
|
|
129
153
|
return client;
|
|
130
154
|
}
|
|
155
|
+
function FaasDataWrapper(props) {
|
|
156
|
+
const [client, setClient] = (0, import_react.useState)(props.client);
|
|
157
|
+
(0, import_react.useEffect)(() => {
|
|
158
|
+
if (client)
|
|
159
|
+
return;
|
|
160
|
+
setClient(getClient());
|
|
161
|
+
}, []);
|
|
162
|
+
if (!client)
|
|
163
|
+
return props.fallback || null;
|
|
164
|
+
return /* @__PURE__ */ React.createElement(client.FaasDataWrapper, __spreadValues({}, props));
|
|
165
|
+
}
|
|
131
166
|
module.exports = __toCommonJS(src_exports);
|
|
132
167
|
// Annotate the CommonJS export names for ESM import in node:
|
|
133
168
|
0 && (module.exports = {
|
|
169
|
+
FaasDataWrapper,
|
|
134
170
|
FaasReactClient,
|
|
135
171
|
getClient
|
|
136
172
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __spreadValues = (a, b) => {
|
|
7
|
+
for (var prop in b || (b = {}))
|
|
8
|
+
if (__hasOwnProp.call(b, prop))
|
|
9
|
+
__defNormalProp(a, prop, b[prop]);
|
|
10
|
+
if (__getOwnPropSymbols)
|
|
11
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
+
if (__propIsEnum.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
}
|
|
15
|
+
return a;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
// src/index.tsx
|
|
2
19
|
import {
|
|
3
20
|
FaasBrowserClient
|
|
4
21
|
} from "@faasjs/browser";
|
|
@@ -18,7 +35,9 @@ function FaasReactClient({
|
|
|
18
35
|
});
|
|
19
36
|
return client.action(action, params);
|
|
20
37
|
}
|
|
21
|
-
function useFaas(action, defaultParams) {
|
|
38
|
+
function useFaas(action, defaultParams, options2) {
|
|
39
|
+
if (!options2)
|
|
40
|
+
options2 = {};
|
|
22
41
|
const [loading, setLoading] = useState(true);
|
|
23
42
|
const [data, setData] = useState();
|
|
24
43
|
const [error, setError] = useState();
|
|
@@ -34,7 +53,7 @@ function FaasReactClient({
|
|
|
34
53
|
setLoading(true);
|
|
35
54
|
const request = client.action(action, params);
|
|
36
55
|
setPromise(request);
|
|
37
|
-
request.then((r) => setData(r.data)).catch(async (e) => {
|
|
56
|
+
request.then((r) => (options2 == null ? void 0 : options2.setData) ? options2.setData(r.data) : setData(r.data)).catch(async (e) => {
|
|
38
57
|
if (onError)
|
|
39
58
|
try {
|
|
40
59
|
await onError(action, params)(e);
|
|
@@ -52,8 +71,10 @@ function FaasReactClient({
|
|
|
52
71
|
reloadTimes
|
|
53
72
|
]);
|
|
54
73
|
return {
|
|
74
|
+
action,
|
|
75
|
+
params,
|
|
55
76
|
loading,
|
|
56
|
-
data,
|
|
77
|
+
data: (options2 == null ? void 0 : options2.data) || data,
|
|
57
78
|
error,
|
|
58
79
|
promise,
|
|
59
80
|
async reload(params2) {
|
|
@@ -62,7 +83,7 @@ function FaasReactClient({
|
|
|
62
83
|
setReloadTimes(reloadTimes + 1);
|
|
63
84
|
return promise;
|
|
64
85
|
},
|
|
65
|
-
setData,
|
|
86
|
+
setData: (options2 == null ? void 0 : options2.setData) || setData,
|
|
66
87
|
setLoading,
|
|
67
88
|
setPromise,
|
|
68
89
|
setError
|
|
@@ -71,14 +92,19 @@ function FaasReactClient({
|
|
|
71
92
|
const reactClient = {
|
|
72
93
|
faas,
|
|
73
94
|
useFaas,
|
|
74
|
-
|
|
95
|
+
FaasDataWrapper({
|
|
75
96
|
action,
|
|
76
97
|
params,
|
|
77
98
|
fallback,
|
|
78
|
-
|
|
79
|
-
onDataChange
|
|
99
|
+
render,
|
|
100
|
+
onDataChange,
|
|
101
|
+
data,
|
|
102
|
+
setData
|
|
80
103
|
}) {
|
|
81
|
-
const request = useFaas(action, params
|
|
104
|
+
const request = useFaas(action, params, {
|
|
105
|
+
data,
|
|
106
|
+
setData
|
|
107
|
+
});
|
|
82
108
|
const [loaded, setLoaded] = useState(false);
|
|
83
109
|
useEffect(function() {
|
|
84
110
|
if (!loaded && !request.loading)
|
|
@@ -89,7 +115,7 @@ function FaasReactClient({
|
|
|
89
115
|
onDataChange(request);
|
|
90
116
|
}, [JSON.stringify(request.data)]);
|
|
91
117
|
if (loaded)
|
|
92
|
-
return
|
|
118
|
+
return render(request);
|
|
93
119
|
return fallback || null;
|
|
94
120
|
}
|
|
95
121
|
};
|
|
@@ -102,7 +128,19 @@ function getClient(domain) {
|
|
|
102
128
|
throw Error("FaasReactClient is not initialized");
|
|
103
129
|
return client;
|
|
104
130
|
}
|
|
131
|
+
function FaasDataWrapper(props) {
|
|
132
|
+
const [client, setClient] = useState(props.client);
|
|
133
|
+
useEffect(() => {
|
|
134
|
+
if (client)
|
|
135
|
+
return;
|
|
136
|
+
setClient(getClient());
|
|
137
|
+
}, []);
|
|
138
|
+
if (!client)
|
|
139
|
+
return props.fallback || null;
|
|
140
|
+
return /* @__PURE__ */ React.createElement(client.FaasDataWrapper, __spreadValues({}, props));
|
|
141
|
+
}
|
|
105
142
|
export {
|
|
143
|
+
FaasDataWrapper,
|
|
106
144
|
FaasReactClient,
|
|
107
145
|
getClient
|
|
108
146
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@faasjs/react",
|
|
3
|
-
"version": "0.0.2-beta.
|
|
3
|
+
"version": "0.0.2-beta.356",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -15,15 +15,15 @@
|
|
|
15
15
|
},
|
|
16
16
|
"funding": "https://github.com/sponsors/faasjs",
|
|
17
17
|
"scripts": {
|
|
18
|
-
"build": "tsup src/index.
|
|
19
|
-
"build:types": "tsup-node src/index.
|
|
18
|
+
"build": "tsup src/index.tsx --format esm,cjs",
|
|
19
|
+
"build:types": "tsup-node src/index.tsx --dts-only"
|
|
20
20
|
},
|
|
21
21
|
"files": [
|
|
22
22
|
"dist"
|
|
23
23
|
],
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"@faasjs/browser": "^0.0.2-beta.
|
|
26
|
-
"@faasjs/types": "^0.0.2-beta.
|
|
25
|
+
"@faasjs/browser": "^0.0.2-beta.356",
|
|
26
|
+
"@faasjs/types": "^0.0.2-beta.356",
|
|
27
27
|
"react": "*"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|