@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 CHANGED
@@ -1,8 +1,10 @@
1
- import { Options, ResponseError, Response } from '@faasjs/browser';
1
+ import { Response, Options, ResponseError } from '@faasjs/browser';
2
2
  export { FaasBrowserClient, Options, Response, ResponseError, ResponseHeaders } from '@faasjs/browser';
3
- import { FaasAction, FaasParams, FaasData } from '@faasjs/types';
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 FaasDataProps<PathOrData extends FaasAction> = {
17
- element(args: FaasDataInjection<FaasData<PathOrData>>): JSX.Element;
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
- FaasData<PathOrData extends FaasAction>(props: FaasDataProps<PathOrData>): JSX.Element;
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.ts
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
- FaasData({
119
+ FaasDataWrapper({
101
120
  action,
102
121
  params,
103
122
  fallback,
104
- element,
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 element(request);
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
- // src/index.ts
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
- FaasData({
95
+ FaasDataWrapper({
75
96
  action,
76
97
  params,
77
98
  fallback,
78
- element,
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 element(request);
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.352",
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.ts --format esm,cjs",
19
- "build:types": "tsup-node src/index.ts --dts-only"
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.352",
26
- "@faasjs/types": "^0.0.2-beta.352",
25
+ "@faasjs/browser": "^0.0.2-beta.356",
26
+ "@faasjs/types": "^0.0.2-beta.356",
27
27
  "react": "*"
28
28
  },
29
29
  "devDependencies": {