@rpcbase/client 0.287.0 → 0.289.0

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.
@@ -0,0 +1,94 @@
1
+ const getServerApiClient = async (app) => {
2
+ const callRoute = async (app2, method, path, req, res) => {
3
+ return new Promise((resolve, reject) => {
4
+ let isEnded = false;
5
+ const mockReq = {
6
+ ...req,
7
+ method: method.toUpperCase(),
8
+ url: path
9
+ };
10
+ const mockRes = {
11
+ ...res,
12
+ json: (data) => {
13
+ if (!isEnded) {
14
+ isEnded = true;
15
+ resolve(data);
16
+ }
17
+ },
18
+ status: (statusCode) => {
19
+ console.log("Status:", statusCode);
20
+ return mockRes;
21
+ }
22
+ };
23
+ const routerStack = app2.router.stack;
24
+ const firstApiMiddlewareIndex = routerStack.findIndex((layer) => layer.name === "__FIRST_API_MIDDLEWARE__");
25
+ if (!(firstApiMiddlewareIndex > -1)) {
26
+ throw new Error("middleware: __FIRST_API_MIDDLEWARE__ was not found in stack");
27
+ }
28
+ const apiStack = routerStack.slice(firstApiMiddlewareIndex + 1);
29
+ const processLayer = async (index) => {
30
+ if (index >= apiStack.length || isEnded) return;
31
+ const layer = apiStack[index];
32
+ const isNonMatchingLayer = !layer.match(path);
33
+ if (isNonMatchingLayer) {
34
+ await processLayer(index + 1);
35
+ return;
36
+ }
37
+ const runHandler = async (handler) => new Promise((resolveMiddleware, rejectMiddleware) => {
38
+ handler(mockReq, mockRes, (err) => {
39
+ if (err) {
40
+ console.error("Middleware error:", err);
41
+ if (!isEnded) {
42
+ isEnded = true;
43
+ rejectMiddleware(err);
44
+ }
45
+ return;
46
+ }
47
+ resolveMiddleware();
48
+ });
49
+ });
50
+ if (layer.route) {
51
+ if (!layer.route.methods[method.toLowerCase()]) {
52
+ await processLayer(index + 1);
53
+ return;
54
+ }
55
+ if (layer.route.stack.length !== 1) {
56
+ throw new Error(`expected only one handler per route for route: ${layer.route.path}`);
57
+ }
58
+ await runHandler(layer.route.stack[0].handle);
59
+ } else {
60
+ await runHandler(layer.handle);
61
+ }
62
+ if (!isEnded) {
63
+ await processLayer(index + 1);
64
+ }
65
+ };
66
+ processLayer(0);
67
+ setTimeout(() => {
68
+ if (!isEnded) {
69
+ reject("Route handler timed out");
70
+ }
71
+ }, 3e4);
72
+ });
73
+ };
74
+ const createMethod = (method) => {
75
+ return async (path, payload, ctx) => {
76
+ if (!ctx) {
77
+ throw new Error("Context must be provided in SSR mode");
78
+ }
79
+ ctx.req.body = payload;
80
+ return callRoute(app, method, path, ctx.req, ctx.res);
81
+ };
82
+ };
83
+ const apiClient = {
84
+ get: createMethod("get"),
85
+ post: createMethod("post"),
86
+ put: createMethod("put"),
87
+ delete: createMethod("delete")
88
+ };
89
+ return apiClient;
90
+ };
91
+ export {
92
+ getServerApiClient as default,
93
+ getServerApiClient
94
+ };
@@ -1,4 +1,4 @@
1
- export declare const useThrottledMeasure: (throttleDuration?: number) => (import('react-use/lib/useMeasure.js').UseMeasureRef<Element> | {
1
+ export declare const useThrottledMeasure: (throttleDuration?: number) => (import('react-use/esm/useMeasure.js').UseMeasureRef<Element> | {
2
2
  x: number;
3
3
  y: number;
4
4
  width: number;