@mainframework/api-request-worker 1.0.1 → 1.0.2
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
|
@@ -45,6 +45,58 @@ yarn add @mainframework/api-request-worker
|
|
|
45
45
|
|
|
46
46
|
If you use the optional React hook, a peer dependency `react >= 19` is required.
|
|
47
47
|
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Quickstart
|
|
51
|
+
|
|
52
|
+
### React
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
import { useApiWorker } from "@mainframework/api-request-worker/react";
|
|
56
|
+
|
|
57
|
+
export function Todos() {
|
|
58
|
+
const { data, loading, error, refetch } = useApiWorker<{ id: string; title: string }[]>({
|
|
59
|
+
cacheName: "todos",
|
|
60
|
+
request: { url: "https://api.example.com/todos", method: "GET" },
|
|
61
|
+
runMode: "auto",
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
if (loading) return null;
|
|
65
|
+
if (error) return null;
|
|
66
|
+
|
|
67
|
+
return (
|
|
68
|
+
<div>
|
|
69
|
+
<button onClick={refetch}>Refresh</button>
|
|
70
|
+
<pre>{JSON.stringify(data, null, 2)}</pre>
|
|
71
|
+
</div>
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Vanilla JS/TS
|
|
77
|
+
|
|
78
|
+
```ts
|
|
79
|
+
import { createApiWorker } from "@mainframework/api-request-worker";
|
|
80
|
+
|
|
81
|
+
const worker = createApiWorker();
|
|
82
|
+
const cacheName = "todos";
|
|
83
|
+
|
|
84
|
+
worker.onmessage = (event) => {
|
|
85
|
+
const msg = event.data;
|
|
86
|
+
if (msg.cacheName !== cacheName) return;
|
|
87
|
+
if (msg.error?.message) throw new Error(msg.error.message);
|
|
88
|
+
console.log(msg.data);
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
worker.postMessage({
|
|
92
|
+
dataRequest: {
|
|
93
|
+
type: "set",
|
|
94
|
+
cacheName,
|
|
95
|
+
request: { url: "https://api.example.com/todos", method: "GET" },
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
```
|
|
99
|
+
|
|
48
100
|
### Public imports only
|
|
49
101
|
|
|
50
102
|
Use only these import paths. Do not import the worker script directly.
|
|
@@ -58,6 +110,18 @@ The worker is not a public entry. Obtain it only by calling `createApiWorker()`
|
|
|
58
110
|
|
|
59
111
|
---
|
|
60
112
|
|
|
113
|
+
## Bundler notes (Vite / Webpack / Next.js)
|
|
114
|
+
|
|
115
|
+
- **Vite**: Works out of the box. The worker is created via `new Worker(new URL(..., import.meta.url), { type: "module" })`.
|
|
116
|
+
|
|
117
|
+
- **Webpack**: Must support ESM module workers. Ensure your build supports `new URL(..., import.meta.url)` for assets and that module workers are enabled.
|
|
118
|
+
|
|
119
|
+
- **Next.js**: Use **client-only** code paths.
|
|
120
|
+
- Add `"use client";` at the top of any file that imports `@mainframework/api-request-worker/react`.
|
|
121
|
+
- Do not call `createApiWorker()` during SSR.
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
61
125
|
## Usage with Vanilla TypeScript / JavaScript
|
|
62
126
|
|
|
63
127
|
Import from the main package entry and create the worker with `createApiWorker`. You then talk to the worker via the standard `postMessage` API: send **dataRequests** with `worker.postMessage`, and handle responses in `worker.onmessage`. No framework required.
|
|
@@ -647,6 +711,7 @@ import type {
|
|
|
647
711
|
WorkerDataRequestType,
|
|
648
712
|
WorkerMessageData,
|
|
649
713
|
BinaryParseResult,
|
|
714
|
+
ContentType,
|
|
650
715
|
} from "@mainframework/api-request-worker";
|
|
651
716
|
```
|
|
652
717
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { U as UseApiWorkerConfig, h as UseApiWorkerReturn } from '../../types-
|
|
2
|
-
export { R as RequestConfig } from '../../types-
|
|
1
|
+
import { U as UseApiWorkerConfig, h as UseApiWorkerReturn } from '../../types-Bbz0QMYB.js';
|
|
2
|
+
export { R as RequestConfig } from '../../types-Bbz0QMYB.js';
|
|
3
3
|
|
|
4
4
|
declare const useApiWorker: <T>(config: UseApiWorkerConfig) => UseApiWorkerReturn<T>;
|
|
5
5
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useRef, useState, useCallback
|
|
1
|
+
import { useRef, useState, useCallback } from 'react';
|
|
2
2
|
import { createApiWorker } from './vanilla.js';
|
|
3
3
|
|
|
4
4
|
let idCounter = 0;
|
|
@@ -25,7 +25,9 @@ const useCustomCallback = (callback, dependencies) => {
|
|
|
25
25
|
const DEFAULT_CHUNK_BATCH = 5;
|
|
26
26
|
const toNumber = (val, fallback) => typeof val === "number" && Number.isFinite(val) ? val : fallback;
|
|
27
27
|
const toStreamChunks = (val) => val === void 0 || val === null ? void 0 : Array.isArray(val) ? val : void 0;
|
|
28
|
-
|
|
28
|
+
let apiWorker = null;
|
|
29
|
+
let workerInitialized = false;
|
|
30
|
+
let cleanupTimer = null;
|
|
29
31
|
const STALE_ENTRY_MS = 5e3;
|
|
30
32
|
const CLEANUP_INTERVAL_MS = 3e4;
|
|
31
33
|
const normalizeKey = (key) => key.toLocaleLowerCase();
|
|
@@ -74,81 +76,96 @@ const finalizeEntry = (entry) => {
|
|
|
74
76
|
entry.requestId = null;
|
|
75
77
|
entry.setUpdateTrigger?.(updater);
|
|
76
78
|
};
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
79
|
+
const getApiWorker = () => {
|
|
80
|
+
if (apiWorker) return apiWorker;
|
|
81
|
+
apiWorker = createApiWorker();
|
|
82
|
+
return apiWorker;
|
|
83
|
+
};
|
|
84
|
+
const ensureWorkerInitialized = () => {
|
|
85
|
+
const worker = getApiWorker();
|
|
86
|
+
if (workerInitialized) return worker;
|
|
87
|
+
workerInitialized = true;
|
|
88
|
+
if (!cleanupTimer) {
|
|
89
|
+
cleanupTimer = setInterval(() => runStaleEntryCleanup(), CLEANUP_INTERVAL_MS);
|
|
90
|
+
}
|
|
91
|
+
worker.onmessage = (event) => {
|
|
92
|
+
const msg = event.data;
|
|
93
|
+
const cacheName = msg.cacheName;
|
|
94
|
+
const hookId = msg.hookId;
|
|
95
|
+
const error = msg.error;
|
|
96
|
+
const key = cacheName ? normalizeKey(cacheName) : "";
|
|
97
|
+
if ("stream" in msg && msg.stream) {
|
|
98
|
+
const entry2 = findEntry(cacheName, hookId);
|
|
99
|
+
if (!entry2) return;
|
|
100
|
+
const batchSize = toNumber(entry2.streamChunkBatchSize, DEFAULT_CHUNK_BATCH);
|
|
101
|
+
switch (msg.stream) {
|
|
102
|
+
case "start": {
|
|
103
|
+
streamAccumulators[key] = { chunks: [], meta: msg.meta ?? null };
|
|
104
|
+
streamThrottleState[key] = { pendingChunks: [] };
|
|
105
|
+
entry2.streamChunks = [];
|
|
106
|
+
entry2.meta = msg.meta ?? null;
|
|
107
|
+
entry2.setUpdateTrigger?.(updater);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
case "resume":
|
|
111
|
+
if (!streamAccumulators[key]) streamAccumulators[key] = { chunks: [], meta: msg.meta ?? null };
|
|
112
|
+
else if (msg.meta) streamAccumulators[key].meta = msg.meta;
|
|
113
|
+
if (!streamThrottleState[key]) streamThrottleState[key] = { pendingChunks: [] };
|
|
114
|
+
if (msg.meta) entry2.meta = msg.meta ?? null;
|
|
115
|
+
return;
|
|
116
|
+
case "chunk": {
|
|
117
|
+
const acc = streamAccumulators[key];
|
|
118
|
+
const throttle = streamThrottleState[key];
|
|
119
|
+
if (acc && msg.data) acc.chunks.push(msg.data);
|
|
120
|
+
if (throttle && msg.data) {
|
|
121
|
+
throttle.pendingChunks.push(msg.data);
|
|
122
|
+
if (throttle.pendingChunks.length >= batchSize) {
|
|
123
|
+
flushStreamBatch(key, entry2);
|
|
124
|
+
}
|
|
110
125
|
}
|
|
126
|
+
return;
|
|
111
127
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
entry2.
|
|
128
|
+
case "end": {
|
|
129
|
+
const acc = streamAccumulators[key];
|
|
130
|
+
const throttle = streamThrottleState[key];
|
|
131
|
+
if (throttle?.pendingChunks.length) flushStreamBatch(key, entry2);
|
|
132
|
+
delete streamThrottleState[key];
|
|
133
|
+
delete streamAccumulators[key];
|
|
134
|
+
const errMsg = error?.message ?? "";
|
|
135
|
+
if (errMsg !== "") {
|
|
136
|
+
entry2.error = errMsg;
|
|
137
|
+
} else if (acc) {
|
|
138
|
+
entry2.data = new Blob(acc.chunks, acc.meta?.contentType ? { type: acc.meta.contentType } : void 0);
|
|
139
|
+
entry2.meta = acc.meta ?? null;
|
|
140
|
+
entry2.error = null;
|
|
141
|
+
entry2.lastActivityAt = Date.now();
|
|
142
|
+
}
|
|
143
|
+
entry2.loading = false;
|
|
144
|
+
finalizeEntry(entry2);
|
|
145
|
+
return;
|
|
128
146
|
}
|
|
129
|
-
entry2.loading = false;
|
|
130
|
-
finalizeEntry(entry2);
|
|
131
|
-
return;
|
|
132
147
|
}
|
|
133
148
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
+
const entry = findEntry(cacheName, hookId);
|
|
150
|
+
if (!entry) return;
|
|
151
|
+
const message = error?.message ?? "";
|
|
152
|
+
if (message !== "") {
|
|
153
|
+
entry.error = message;
|
|
154
|
+
entry.loading = false;
|
|
155
|
+
} else {
|
|
156
|
+
entry.data = msg.data ?? null;
|
|
157
|
+
entry.meta = msg.meta ?? null;
|
|
158
|
+
entry.lastActivityAt = Date.now();
|
|
159
|
+
entry.error = null;
|
|
160
|
+
entry.loading = false;
|
|
161
|
+
}
|
|
162
|
+
finalizeEntry(entry);
|
|
163
|
+
};
|
|
164
|
+
return worker;
|
|
149
165
|
};
|
|
150
166
|
const useApiWorker = (config) => {
|
|
151
167
|
const { cacheName, request: requestConfig, data: configData, runMode = "auto", enabled = true } = config;
|
|
168
|
+
const worker = ensureWorkerInitialized();
|
|
152
169
|
const hookIdRef = useRef("");
|
|
153
170
|
const queueKey = normalizeKey(cacheName);
|
|
154
171
|
const hasExecutedRef = useRef(false);
|
|
@@ -178,14 +195,11 @@ const useApiWorker = (config) => {
|
|
|
178
195
|
const hookId = hookIdRef.current;
|
|
179
196
|
const deleteCache = useCallback(() => {
|
|
180
197
|
if (cacheName) {
|
|
181
|
-
|
|
198
|
+
worker.postMessage({
|
|
182
199
|
dataRequest: { type: "delete", cacheName, hookId: hookIdRef.current }
|
|
183
200
|
});
|
|
184
201
|
}
|
|
185
|
-
}, [cacheName]);
|
|
186
|
-
useEffect(() => {
|
|
187
|
-
runStaleEntryCleanup();
|
|
188
|
-
});
|
|
202
|
+
}, [cacheName, worker]);
|
|
189
203
|
const doRequest = useCallback(() => {
|
|
190
204
|
const entry2 = responseQueue[queueKey];
|
|
191
205
|
if (!entry2 || entry2.loading) return;
|
|
@@ -201,14 +215,14 @@ const useApiWorker = (config) => {
|
|
|
201
215
|
entry2.streamChunkBatchSize = toNumber(requestConfig.streamChunkBatchSize, DEFAULT_CHUNK_BATCH);
|
|
202
216
|
}
|
|
203
217
|
const request = isStream && requestConfig.retries === void 0 ? { ...requestConfig, retries: 3 } : requestConfig;
|
|
204
|
-
|
|
218
|
+
worker.postMessage({
|
|
205
219
|
dataRequest: { type: "set", cacheName, hookId, requestId, payload: configData, request }
|
|
206
220
|
});
|
|
207
221
|
} else {
|
|
208
|
-
|
|
222
|
+
worker.postMessage({ dataRequest: { type: "get", cacheName, hookId } });
|
|
209
223
|
}
|
|
210
224
|
hasExecutedRef.current = true;
|
|
211
|
-
}, [queueKey, cacheName, hookId, requestConfig, configData]);
|
|
225
|
+
}, [queueKey, cacheName, hookId, requestConfig, configData, worker]);
|
|
212
226
|
const makeRequest = useCustomCallback(() => {
|
|
213
227
|
if (!enabled || runMode === "once" && hasExecutedRef.current) return;
|
|
214
228
|
doRequest();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sources":["../../../src/shared/utils/uniqueId.ts","../../../node_modules/@mainframework/is-deep-equal/dist/index.mjs","../../../src/shared/hooks/useCustomCallback.ts","../../../src/shared/hooks/useApiWorker.ts"],"sourcesContent":["// utils/uniqueId.ts\r\nlet idCounter = 0;\r\n\r\n/**\r\n * Generates a stable, unique string ID.\r\n * SSR-safe and works in any environment.\r\n */\r\nexport const uniqueId = (): string => {\r\n idCounter += 1;\r\n return idCounter.toString();\r\n};\r\n","const e=e=>\"object\"==typeof e&&null!==e,t=e=>\"function\"==typeof e,r=e=>e instanceof Date,n=e=>e instanceof RegExp,o=e=>e instanceof Set,f=e=>e instanceof Map,i=e=>e instanceof String||e instanceof Number||e instanceof Boolean,a=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),s=e=>Object.getPrototypeOf(e),u=e=>null==e||\"object\"!=typeof e&&\"function\"!=typeof e,c=(l,y,p=new WeakMap,b={})=>{if(l===y)return!0;if(\"number\"==typeof l&&\"number\"==typeof y&&Number.isNaN(l)&&Number.isNaN(y))return!0;if(b.normalizeBoxedPrimitives&&(i(l)&&(l=l.valueOf()),i(y)&&(y=y.valueOf()),u(l)&&u(y)))return l===y;if(u(l)||u(y))return!1;if(t(l)||t(y))return l===y;if(!e(l)||!e(y))return!1;let g=p.get(l)??(()=>{const e=new WeakMap;return p.set(l,e),e})();const h=g.get(y);if(void 0!==h)return h;g.set(y,!0);const w=s(l),A=s(y);let m;return m=Array.isArray(l)&&Array.isArray(y)?((e,t,r,n)=>{if(e.length!==t.length)return!1;for(let o=0;o<e.length;o++){if(n.strictSparseArrays){const r=Object.prototype.hasOwnProperty.call(e,o),n=Object.prototype.hasOwnProperty.call(t,o);if(r!==n)return!1;if(!r&&!n)continue}if(!c(e[o],t[o],r,n))return!1}return!0})(l,y,p,b):!Array.isArray(l)&&!Array.isArray(y)&&(r(l)&&r(y)?((e,t)=>e.getTime()===t.getTime())(l,y):n(l)&&n(y)?((e,t)=>e.source===t.source&&e.flags===t.flags)(l,y):a(l)&&a(y)?((e,t)=>{if(e.constructor!==t.constructor||e.byteLength!==t.byteLength)return!1;const r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);for(let e=0;e<r.length;e++)if(r[e]!==n[e])return!1;return!0})(l,y):o(l)&&o(y)?((e,t,r,n)=>{if(e.size!==t.size)return!1;const o=Array.from(t),f=new Set;for(const t of e){const e=o.findIndex((e,r)=>!f.has(r)&&t===e);if(-1!==e){f.add(e);continue}let i=!1;for(let e=0;e<o.length;e++)if(!f.has(e)&&c(t,o[e],r,n)){f.add(e),i=!0;break}if(!i)return!1}return!0})(l,y,p,b):f(l)&&f(y)?((e,t,r,n)=>{if(e.size!==t.size)return!1;const o=Array.from(t),f=new Set;for(const[i,a]of e){if(u(i)){const e=t.get(i);if(void 0===e&&!t.has(i))return!1;if(!c(a,e,r,n))return!1;continue}let e=!1;for(let t=0;t<o.length;t++)if(!f.has(t)){const[s,u]=o[t];if(c(i,s,r,n)&&c(a,u,r,n)){f.add(t),e=!0;break}}if(!e)return!1}return!0})(l,y,p,b):!(!b.allowPrototypeMismatch&&w!==A)&&((e,t,r,n)=>{let o=0;for(const f of Reflect.ownKeys(e)){if(!Object.prototype.hasOwnProperty.call(t,f))return!1;if(!c(e[f],t[f],r,n))return!1;o++}return Reflect.ownKeys(t).length===o})(l,y,p,b)),g.set(y,m),m},l=(e,t,r)=>c(e,t,new WeakMap,r);export{l as isEqual};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\r\nimport { useRef } from \"react\";\r\nimport { isEqual } from \"@mainframework/is-deep-equal\";\r\n\r\nexport const useCustomCallback = <T extends (...args: unknown[]) => unknown>(\r\n callback: T,\r\n dependencies: unknown[],\r\n): T => {\r\n const refCallback = useRef<T>(callback);\r\n const refDependencies = useRef<unknown[]>(dependencies);\r\n\r\n // Update refs synchronously during render\r\n if (!dependencies.every((dep, index) => isEqual(dep, refDependencies.current[index]))) {\r\n refDependencies.current = dependencies;\r\n refCallback.current = callback;\r\n }\r\n\r\n // Stable callback, always calls latest callback\r\n const stableCallback = useRef(\r\n (...args: Parameters<T>): ReturnType<T> => refCallback.current(...args) as ReturnType<T>,\r\n ).current;\r\n\r\n return stableCallback as T;\r\n};\r\n","// useApiWorker.ts\r\nimport { useRef, useState, useCallback, useEffect } from \"react\";\r\nimport { createApiWorker } from \"../utils/createApiWorker\";\r\nimport { uniqueId } from \"../utils/uniqueId\";\r\nimport type {\r\n BinaryResponseMeta,\r\n DataRequest,\r\n QueueEntry,\r\n UseApiWorkerConfig,\r\n UseApiWorkerReturn,\r\n WorkerMessagePayload,\r\n} from \"../types/types\";\r\n\r\ntype StreamAccumulator = { chunks: ArrayBuffer[]; meta: BinaryResponseMeta | null };\r\n\r\ntype StreamThrottleState = {\r\n pendingChunks: ArrayBuffer[];\r\n};\r\n\r\nconst DEFAULT_CHUNK_BATCH = 5;\r\n\r\nconst toNumber = (val: unknown, fallback: number): number =>\r\n typeof val === \"number\" && Number.isFinite(val) ? val : fallback;\r\n\r\nconst toStreamChunks = (val: unknown): ArrayBuffer[] | undefined =>\r\n val === undefined || val === null ? undefined : Array.isArray(val) ? (val as ArrayBuffer[]) : undefined;\r\n\r\nimport { useCustomCallback } from \"./useCustomCallback\";\r\n\r\n// ============================================================================\r\n// MODULE-LEVEL WORKER & QUEUE\r\n// ============================================================================\r\n\r\nconst apiWorker = createApiWorker();\r\n\r\nconst STALE_ENTRY_MS = 5000;\r\nconst CLEANUP_INTERVAL_MS = 30000;\r\n\r\nconst normalizeKey = (key: string) => key.toLocaleLowerCase();\r\n\r\nconst cleanupState = { isDeleting: false, lastRun: 0 };\r\n\r\nconst runStaleEntryCleanup = (): void => {\r\n const now = Date.now();\r\n if (cleanupState.isDeleting || now < cleanupState.lastRun + CLEANUP_INTERVAL_MS) return;\r\n\r\n cleanupState.isDeleting = true;\r\n\r\n try {\r\n const keys = Object.keys(responseQueue);\r\n let i = 0;\r\n while (i < keys.length) {\r\n const key = keys[i] as string;\r\n const entry = responseQueue[key];\r\n const streamInProgress = streamThrottleState[key] != null || streamAccumulators[key] != null;\r\n if (\r\n entry &&\r\n !streamInProgress &&\r\n entry.data != null &&\r\n entry.lastActivityAt != null &&\r\n now - entry.lastActivityAt >= STALE_ENTRY_MS\r\n ) {\r\n entry.loading = null;\r\n entry.data = null;\r\n entry.meta = null;\r\n entry.error = null;\r\n entry.setUpdateTrigger = null;\r\n entry.requestId = null;\r\n delete entry.streamChunks;\r\n delete streamThrottleState[key];\r\n }\r\n i++;\r\n }\r\n } finally {\r\n cleanupState.isDeleting = false;\r\n cleanupState.lastRun = now;\r\n }\r\n};\r\n\r\nconst responseQueue: Record<string, QueueEntry<unknown>> = {};\r\n\r\nconst streamAccumulators: Record<string, StreamAccumulator> = {};\r\nconst streamThrottleState: Record<string, StreamThrottleState> = {};\r\n\r\nconst updater = (n: number) => n + 1;\r\n\r\nconst flushStreamBatch = (key: string, entry: QueueEntry<unknown>): void => {\r\n const state = streamThrottleState[key];\r\n if (!state || state.pendingChunks.length === 0) return;\r\n entry.streamChunks = state.pendingChunks.slice();\r\n state.pendingChunks.length = 0;\r\n entry.setUpdateTrigger?.(updater);\r\n};\r\n\r\nconst findEntry = (cacheName: string | undefined, hookId: string | undefined) =>\r\n cacheName\r\n ? responseQueue[normalizeKey(cacheName)]\r\n : hookId\r\n ? (Object.values(responseQueue).find((e) => e.hookId === hookId) ?? null)\r\n : null;\r\n\r\nconst finalizeEntry = (entry: QueueEntry<unknown>): void => {\r\n entry.requestId = null;\r\n entry.setUpdateTrigger?.(updater);\r\n};\r\n\r\n// Worker always sends error ({ message: string }). Entry is found by cacheName or hookId.\r\n// Stream responses: start → chunk(s) → end; we accumulate chunks then set data = new Blob(chunks) on end.\r\napiWorker.onmessage = (event: MessageEvent<WorkerMessagePayload>) => {\r\n const msg = event.data;\r\n const cacheName = msg.cacheName;\r\n const hookId = msg.hookId;\r\n const error = msg.error;\r\n const key = cacheName ? normalizeKey(cacheName) : \"\";\r\n\r\n if (\"stream\" in msg && msg.stream) {\r\n const entry = findEntry(cacheName, hookId);\r\n if (!entry) return;\r\n const batchSize = toNumber(entry.streamChunkBatchSize, DEFAULT_CHUNK_BATCH);\r\n switch (msg.stream) {\r\n case \"start\": {\r\n streamAccumulators[key] = { chunks: [], meta: msg.meta ?? null };\r\n streamThrottleState[key] = { pendingChunks: [] };\r\n entry.streamChunks = [];\r\n entry.meta = msg.meta ?? null;\r\n entry.setUpdateTrigger?.(updater);\r\n return;\r\n }\r\n case \"resume\":\r\n if (!streamAccumulators[key]) streamAccumulators[key] = { chunks: [], meta: msg.meta ?? null };\r\n else if (msg.meta) streamAccumulators[key].meta = msg.meta;\r\n if (!streamThrottleState[key]) streamThrottleState[key] = { pendingChunks: [] };\r\n if (msg.meta) entry.meta = msg.meta ?? null;\r\n return;\r\n case \"chunk\": {\r\n const acc = streamAccumulators[key];\r\n const throttle = streamThrottleState[key];\r\n if (acc && msg.data) acc.chunks.push(msg.data);\r\n if (throttle && msg.data) {\r\n throttle.pendingChunks.push(msg.data);\r\n if (throttle.pendingChunks.length >= batchSize) {\r\n flushStreamBatch(key, entry);\r\n }\r\n }\r\n return;\r\n }\r\n case \"end\": {\r\n const acc = streamAccumulators[key];\r\n const throttle = streamThrottleState[key];\r\n if (throttle?.pendingChunks.length) flushStreamBatch(key, entry);\r\n delete streamThrottleState[key];\r\n delete streamAccumulators[key];\r\n const errMsg = error?.message ?? \"\";\r\n if (errMsg !== \"\") {\r\n entry.error = errMsg;\r\n } else if (acc) {\r\n entry.data = new Blob(acc.chunks, acc.meta?.contentType ? { type: acc.meta.contentType } : undefined);\r\n entry.meta = acc.meta ?? null;\r\n entry.error = null;\r\n entry.lastActivityAt = Date.now();\r\n }\r\n entry.loading = false;\r\n finalizeEntry(entry);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n const entry = findEntry(cacheName, hookId);\r\n if (!entry) return;\r\n\r\n const message = error?.message ?? \"\";\r\n if (message !== \"\") {\r\n entry.error = message;\r\n entry.loading = false;\r\n } else {\r\n entry.data = msg.data ?? null;\r\n entry.meta = msg.meta ?? null;\r\n entry.lastActivityAt = Date.now();\r\n entry.error = null;\r\n entry.loading = false;\r\n }\r\n finalizeEntry(entry);\r\n};\r\n\r\n// ============================================================================\r\n// HOOK\r\n// ============================================================================\r\n\r\nexport type { RequestConfig, UseApiWorkerConfig, UseApiWorkerReturn } from \"../types/types\";\r\n\r\nexport const useApiWorker = <T>(config: UseApiWorkerConfig): UseApiWorkerReturn<T> => {\r\n const { cacheName, request: requestConfig, data: configData, runMode = \"auto\", enabled = true } = config;\r\n\r\n const hookIdRef = useRef<string>(\"\");\r\n const queueKey = normalizeKey(cacheName);\r\n\r\n const hasExecutedRef = useRef(false);\r\n const [, setUpdateTrigger] = useState(0);\r\n\r\n let storeEntry = responseQueue[queueKey];\r\n\r\n if (!storeEntry) {\r\n const hookId = uniqueId();\r\n storeEntry = responseQueue[queueKey] = {\r\n hookId,\r\n cacheName,\r\n data: null,\r\n loading: false,\r\n error: null,\r\n setUpdateTrigger: () => {},\r\n requestId: null,\r\n meta: null,\r\n lastActivityAt: null,\r\n };\r\n hookIdRef.current = hookId;\r\n } else {\r\n hookIdRef.current = storeEntry.hookId;\r\n storeEntry.lastActivityAt = Date.now();\r\n }\r\n const entry = storeEntry;\r\n entry.setUpdateTrigger = setUpdateTrigger;\r\n\r\n const hookId = hookIdRef.current;\r\n\r\n const deleteCache = useCallback(() => {\r\n if (cacheName) {\r\n apiWorker.postMessage({\r\n dataRequest: { type: \"delete\", cacheName, hookId: hookIdRef.current },\r\n });\r\n }\r\n }, [cacheName]);\r\n\r\n //This runs on every render, as the cleanup. Look at the function, it's has an early return if cleanup is happening\r\n useEffect(() => {\r\n runStaleEntryCleanup();\r\n });\r\n\r\n const doRequest = useCallback(() => {\r\n const entry = responseQueue[queueKey];\r\n if (!entry || entry.loading) return;\r\n entry.loading = true;\r\n entry.error = null;\r\n entry.lastActivityAt = Date.now();\r\n entry.setUpdateTrigger?.(updater);\r\n if (requestConfig) {\r\n const requestId = uniqueId();\r\n entry.requestId = requestId;\r\n const isStream = requestConfig.responseType?.toLowerCase() === \"stream\";\r\n if (isStream) {\r\n entry.streamChunkBatchSize = toNumber(requestConfig.streamChunkBatchSize, DEFAULT_CHUNK_BATCH);\r\n }\r\n const request =\r\n isStream && requestConfig.retries === undefined ? { ...requestConfig, retries: 3 } : requestConfig;\r\n apiWorker.postMessage({\r\n dataRequest: { type: \"set\", cacheName, hookId, requestId, payload: configData, request },\r\n });\r\n } else {\r\n apiWorker.postMessage({ dataRequest: { type: \"get\", cacheName, hookId } as DataRequest<unknown> });\r\n }\r\n hasExecutedRef.current = true;\r\n }, [queueKey, cacheName, hookId, requestConfig, configData]);\r\n\r\n const makeRequest = useCustomCallback(() => {\r\n if (!enabled || (runMode === \"once\" && hasExecutedRef.current)) return;\r\n doRequest();\r\n }, [enabled, runMode, doRequest]);\r\n\r\n const hasAlreadyRunOnce = runMode === \"once\" && hasExecutedRef.current;\r\n const shouldRun = (runMode === \"auto\" || runMode === \"once\") && enabled && (requestConfig || cacheName);\r\n if (shouldRun && !hasAlreadyRunOnce && !entry.loading) {\r\n doRequest();\r\n }\r\n return {\r\n data: (entry.data as T) ?? null,\r\n meta: entry.meta ?? null,\r\n loading: entry.loading ?? false,\r\n error: entry.error ?? null,\r\n refetch: makeRequest,\r\n deleteCache,\r\n streamChunks: toStreamChunks(entry.streamChunks),\r\n };\r\n};\r\n"],"names":["isEqual","entry","hookId"],"mappings":"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","x_google_ignoreList":[1]}
|
|
1
|
+
{"version":3,"file":"react.js","sources":["../../../src/shared/utils/uniqueId.ts","../../../node_modules/@mainframework/is-deep-equal/dist/index.mjs","../../../src/shared/hooks/useCustomCallback.ts","../../../src/shared/hooks/useApiWorker.ts"],"sourcesContent":["// utils/uniqueId.ts\r\nlet idCounter = 0;\r\n\r\n/**\r\n * Generates a stable, unique string ID.\r\n * SSR-safe and works in any environment.\r\n */\r\nexport const uniqueId = (): string => {\r\n idCounter += 1;\r\n return idCounter.toString();\r\n};\r\n","const e=e=>\"object\"==typeof e&&null!==e,t=e=>\"function\"==typeof e,r=e=>e instanceof Date,n=e=>e instanceof RegExp,o=e=>e instanceof Set,f=e=>e instanceof Map,i=e=>e instanceof String||e instanceof Number||e instanceof Boolean,a=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),s=e=>Object.getPrototypeOf(e),u=e=>null==e||\"object\"!=typeof e&&\"function\"!=typeof e,c=(l,y,p=new WeakMap,b={})=>{if(l===y)return!0;if(\"number\"==typeof l&&\"number\"==typeof y&&Number.isNaN(l)&&Number.isNaN(y))return!0;if(b.normalizeBoxedPrimitives&&(i(l)&&(l=l.valueOf()),i(y)&&(y=y.valueOf()),u(l)&&u(y)))return l===y;if(u(l)||u(y))return!1;if(t(l)||t(y))return l===y;if(!e(l)||!e(y))return!1;let g=p.get(l)??(()=>{const e=new WeakMap;return p.set(l,e),e})();const h=g.get(y);if(void 0!==h)return h;g.set(y,!0);const w=s(l),A=s(y);let m;return m=Array.isArray(l)&&Array.isArray(y)?((e,t,r,n)=>{if(e.length!==t.length)return!1;for(let o=0;o<e.length;o++){if(n.strictSparseArrays){const r=Object.prototype.hasOwnProperty.call(e,o),n=Object.prototype.hasOwnProperty.call(t,o);if(r!==n)return!1;if(!r&&!n)continue}if(!c(e[o],t[o],r,n))return!1}return!0})(l,y,p,b):!Array.isArray(l)&&!Array.isArray(y)&&(r(l)&&r(y)?((e,t)=>e.getTime()===t.getTime())(l,y):n(l)&&n(y)?((e,t)=>e.source===t.source&&e.flags===t.flags)(l,y):a(l)&&a(y)?((e,t)=>{if(e.constructor!==t.constructor||e.byteLength!==t.byteLength)return!1;const r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=new Uint8Array(t.buffer,t.byteOffset,t.byteLength);for(let e=0;e<r.length;e++)if(r[e]!==n[e])return!1;return!0})(l,y):o(l)&&o(y)?((e,t,r,n)=>{if(e.size!==t.size)return!1;const o=Array.from(t),f=new Set;for(const t of e){const e=o.findIndex((e,r)=>!f.has(r)&&t===e);if(-1!==e){f.add(e);continue}let i=!1;for(let e=0;e<o.length;e++)if(!f.has(e)&&c(t,o[e],r,n)){f.add(e),i=!0;break}if(!i)return!1}return!0})(l,y,p,b):f(l)&&f(y)?((e,t,r,n)=>{if(e.size!==t.size)return!1;const o=Array.from(t),f=new Set;for(const[i,a]of e){if(u(i)){const e=t.get(i);if(void 0===e&&!t.has(i))return!1;if(!c(a,e,r,n))return!1;continue}let e=!1;for(let t=0;t<o.length;t++)if(!f.has(t)){const[s,u]=o[t];if(c(i,s,r,n)&&c(a,u,r,n)){f.add(t),e=!0;break}}if(!e)return!1}return!0})(l,y,p,b):!(!b.allowPrototypeMismatch&&w!==A)&&((e,t,r,n)=>{let o=0;for(const f of Reflect.ownKeys(e)){if(!Object.prototype.hasOwnProperty.call(t,f))return!1;if(!c(e[f],t[f],r,n))return!1;o++}return Reflect.ownKeys(t).length===o})(l,y,p,b)),g.set(y,m),m},l=(e,t,r)=>c(e,t,new WeakMap,r);export{l as isEqual};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\r\nimport { useRef } from \"react\";\r\nimport { isEqual } from \"@mainframework/is-deep-equal\";\r\n\r\nexport const useCustomCallback = <T extends (...args: unknown[]) => unknown>(\r\n callback: T,\r\n dependencies: unknown[],\r\n): T => {\r\n const refCallback = useRef<T>(callback);\r\n const refDependencies = useRef<unknown[]>(dependencies);\r\n\r\n // Update refs synchronously during render\r\n if (!dependencies.every((dep, index) => isEqual(dep, refDependencies.current[index]))) {\r\n refDependencies.current = dependencies;\r\n refCallback.current = callback;\r\n }\r\n\r\n // Stable callback, always calls latest callback\r\n const stableCallback = useRef(\r\n (...args: Parameters<T>): ReturnType<T> => refCallback.current(...args) as ReturnType<T>,\r\n ).current;\r\n\r\n return stableCallback as T;\r\n};\r\n","// useApiWorker.ts\r\nimport { useRef, useState, useCallback } from \"react\";\r\nimport { createApiWorker } from \"../utils/createApiWorker\";\r\nimport { uniqueId } from \"../utils/uniqueId\";\r\nimport type {\r\n BinaryResponseMeta,\r\n DataRequest,\r\n QueueEntry,\r\n UseApiWorkerConfig,\r\n UseApiWorkerReturn,\r\n WorkerMessagePayload,\r\n} from \"../types/types\";\r\n\r\ntype StreamAccumulator = { chunks: ArrayBuffer[]; meta: BinaryResponseMeta | null };\r\n\r\ntype StreamThrottleState = {\r\n pendingChunks: ArrayBuffer[];\r\n};\r\n\r\nconst DEFAULT_CHUNK_BATCH = 5;\r\n\r\nconst toNumber = (val: unknown, fallback: number): number =>\r\n typeof val === \"number\" && Number.isFinite(val) ? val : fallback;\r\n\r\nconst toStreamChunks = (val: unknown): ArrayBuffer[] | undefined =>\r\n val === undefined || val === null ? undefined : Array.isArray(val) ? (val as ArrayBuffer[]) : undefined;\r\n\r\nimport { useCustomCallback } from \"./useCustomCallback\";\r\n\r\n// ============================================================================\r\n// MODULE-LEVEL WORKER & QUEUE\r\n// ============================================================================\r\n\r\nlet apiWorker: Worker | null = null;\r\nlet workerInitialized = false;\r\nlet cleanupTimer: ReturnType<typeof setInterval> | null = null;\r\n\r\nconst STALE_ENTRY_MS = 5000;\r\nconst CLEANUP_INTERVAL_MS = 30000;\r\n\r\nconst normalizeKey = (key: string) => key.toLocaleLowerCase();\r\n\r\nconst cleanupState = { isDeleting: false, lastRun: 0 };\r\n\r\nconst runStaleEntryCleanup = (): void => {\r\n const now = Date.now();\r\n if (cleanupState.isDeleting || now < cleanupState.lastRun + CLEANUP_INTERVAL_MS) return;\r\n\r\n cleanupState.isDeleting = true;\r\n\r\n try {\r\n const keys = Object.keys(responseQueue);\r\n let i = 0;\r\n while (i < keys.length) {\r\n const key = keys[i] as string;\r\n const entry = responseQueue[key];\r\n const streamInProgress = streamThrottleState[key] != null || streamAccumulators[key] != null;\r\n if (\r\n entry &&\r\n !streamInProgress &&\r\n entry.data != null &&\r\n entry.lastActivityAt != null &&\r\n now - entry.lastActivityAt >= STALE_ENTRY_MS\r\n ) {\r\n entry.loading = null;\r\n entry.data = null;\r\n entry.meta = null;\r\n entry.error = null;\r\n entry.setUpdateTrigger = null;\r\n entry.requestId = null;\r\n delete entry.streamChunks;\r\n delete streamThrottleState[key];\r\n }\r\n i++;\r\n }\r\n } finally {\r\n cleanupState.isDeleting = false;\r\n cleanupState.lastRun = now;\r\n }\r\n};\r\n\r\nconst responseQueue: Record<string, QueueEntry<unknown>> = {};\r\n\r\nconst streamAccumulators: Record<string, StreamAccumulator> = {};\r\nconst streamThrottleState: Record<string, StreamThrottleState> = {};\r\n\r\nconst updater = (n: number) => n + 1;\r\n\r\nconst flushStreamBatch = (key: string, entry: QueueEntry<unknown>): void => {\r\n const state = streamThrottleState[key];\r\n if (!state || state.pendingChunks.length === 0) return;\r\n entry.streamChunks = state.pendingChunks.slice();\r\n state.pendingChunks.length = 0;\r\n entry.setUpdateTrigger?.(updater);\r\n};\r\n\r\nconst findEntry = (cacheName: string | undefined, hookId: string | undefined) =>\r\n cacheName\r\n ? responseQueue[normalizeKey(cacheName)]\r\n : hookId\r\n ? (Object.values(responseQueue).find((e) => e.hookId === hookId) ?? null)\r\n : null;\r\n\r\nconst finalizeEntry = (entry: QueueEntry<unknown>): void => {\r\n entry.requestId = null;\r\n entry.setUpdateTrigger?.(updater);\r\n};\r\n\r\nconst getApiWorker = (): Worker => {\r\n if (apiWorker) return apiWorker;\r\n apiWorker = createApiWorker();\r\n return apiWorker;\r\n};\r\n\r\nconst ensureWorkerInitialized = (): Worker => {\r\n const worker = getApiWorker();\r\n if (workerInitialized) return worker;\r\n workerInitialized = true;\r\n\r\n if (!cleanupTimer) {\r\n cleanupTimer = setInterval(() => runStaleEntryCleanup(), CLEANUP_INTERVAL_MS);\r\n }\r\n\r\n // Worker always sends error ({ message: string }). Entry is found by cacheName or hookId.\r\n // Stream responses: start → chunk(s) → end; we accumulate chunks then set data = new Blob(chunks) on end.\r\n worker.onmessage = (event: MessageEvent<WorkerMessagePayload>) => {\r\n const msg = event.data;\r\n const cacheName = msg.cacheName;\r\n const hookId = msg.hookId;\r\n const error = msg.error;\r\n const key = cacheName ? normalizeKey(cacheName) : \"\";\r\n\r\n if (\"stream\" in msg && msg.stream) {\r\n const entry = findEntry(cacheName, hookId);\r\n if (!entry) return;\r\n const batchSize = toNumber(entry.streamChunkBatchSize, DEFAULT_CHUNK_BATCH);\r\n switch (msg.stream) {\r\n case \"start\": {\r\n streamAccumulators[key] = { chunks: [], meta: msg.meta ?? null };\r\n streamThrottleState[key] = { pendingChunks: [] };\r\n entry.streamChunks = [];\r\n entry.meta = msg.meta ?? null;\r\n entry.setUpdateTrigger?.(updater);\r\n return;\r\n }\r\n case \"resume\":\r\n if (!streamAccumulators[key]) streamAccumulators[key] = { chunks: [], meta: msg.meta ?? null };\r\n else if (msg.meta) streamAccumulators[key].meta = msg.meta;\r\n if (!streamThrottleState[key]) streamThrottleState[key] = { pendingChunks: [] };\r\n if (msg.meta) entry.meta = msg.meta ?? null;\r\n return;\r\n case \"chunk\": {\r\n const acc = streamAccumulators[key];\r\n const throttle = streamThrottleState[key];\r\n if (acc && msg.data) acc.chunks.push(msg.data);\r\n if (throttle && msg.data) {\r\n throttle.pendingChunks.push(msg.data);\r\n if (throttle.pendingChunks.length >= batchSize) {\r\n flushStreamBatch(key, entry);\r\n }\r\n }\r\n return;\r\n }\r\n case \"end\": {\r\n const acc = streamAccumulators[key];\r\n const throttle = streamThrottleState[key];\r\n if (throttle?.pendingChunks.length) flushStreamBatch(key, entry);\r\n delete streamThrottleState[key];\r\n delete streamAccumulators[key];\r\n const errMsg = error?.message ?? \"\";\r\n if (errMsg !== \"\") {\r\n entry.error = errMsg;\r\n } else if (acc) {\r\n entry.data = new Blob(acc.chunks, acc.meta?.contentType ? { type: acc.meta.contentType } : undefined);\r\n entry.meta = acc.meta ?? null;\r\n entry.error = null;\r\n entry.lastActivityAt = Date.now();\r\n }\r\n entry.loading = false;\r\n finalizeEntry(entry);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n const entry = findEntry(cacheName, hookId);\r\n if (!entry) return;\r\n\r\n const message = error?.message ?? \"\";\r\n if (message !== \"\") {\r\n entry.error = message;\r\n entry.loading = false;\r\n } else {\r\n entry.data = msg.data ?? null;\r\n entry.meta = msg.meta ?? null;\r\n entry.lastActivityAt = Date.now();\r\n entry.error = null;\r\n entry.loading = false;\r\n }\r\n finalizeEntry(entry);\r\n };\r\n\r\n return worker;\r\n};\r\n\r\n// ============================================================================\r\n// HOOK\r\n// ============================================================================\r\n\r\nexport type { RequestConfig, UseApiWorkerConfig, UseApiWorkerReturn } from \"../types/types\";\r\n\r\nexport const useApiWorker = <T>(config: UseApiWorkerConfig): UseApiWorkerReturn<T> => {\r\n const { cacheName, request: requestConfig, data: configData, runMode = \"auto\", enabled = true } = config;\r\n\r\n const worker = ensureWorkerInitialized();\r\n\r\n const hookIdRef = useRef<string>(\"\");\r\n const queueKey = normalizeKey(cacheName);\r\n\r\n const hasExecutedRef = useRef(false);\r\n const [, setUpdateTrigger] = useState(0);\r\n\r\n let storeEntry = responseQueue[queueKey];\r\n\r\n if (!storeEntry) {\r\n const hookId = uniqueId();\r\n storeEntry = responseQueue[queueKey] = {\r\n hookId,\r\n cacheName,\r\n data: null,\r\n loading: false,\r\n error: null,\r\n setUpdateTrigger: () => {},\r\n requestId: null,\r\n meta: null,\r\n lastActivityAt: null,\r\n };\r\n hookIdRef.current = hookId;\r\n } else {\r\n hookIdRef.current = storeEntry.hookId;\r\n storeEntry.lastActivityAt = Date.now();\r\n }\r\n const entry = storeEntry;\r\n entry.setUpdateTrigger = setUpdateTrigger;\r\n\r\n const hookId = hookIdRef.current;\r\n\r\n const deleteCache = useCallback(() => {\r\n if (cacheName) {\r\n worker.postMessage({\r\n dataRequest: { type: \"delete\", cacheName, hookId: hookIdRef.current },\r\n });\r\n }\r\n }, [cacheName, worker]);\r\n\r\n const doRequest = useCallback(() => {\r\n const entry = responseQueue[queueKey];\r\n if (!entry || entry.loading) return;\r\n entry.loading = true;\r\n entry.error = null;\r\n entry.lastActivityAt = Date.now();\r\n entry.setUpdateTrigger?.(updater);\r\n if (requestConfig) {\r\n const requestId = uniqueId();\r\n entry.requestId = requestId;\r\n const isStream = requestConfig.responseType?.toLowerCase() === \"stream\";\r\n if (isStream) {\r\n entry.streamChunkBatchSize = toNumber(requestConfig.streamChunkBatchSize, DEFAULT_CHUNK_BATCH);\r\n }\r\n const request =\r\n isStream && requestConfig.retries === undefined ? { ...requestConfig, retries: 3 } : requestConfig;\r\n worker.postMessage({\r\n dataRequest: { type: \"set\", cacheName, hookId, requestId, payload: configData, request },\r\n });\r\n } else {\r\n worker.postMessage({ dataRequest: { type: \"get\", cacheName, hookId } as DataRequest<unknown> });\r\n }\r\n hasExecutedRef.current = true;\r\n }, [queueKey, cacheName, hookId, requestConfig, configData, worker]);\r\n\r\n const makeRequest = useCustomCallback(() => {\r\n if (!enabled || (runMode === \"once\" && hasExecutedRef.current)) return;\r\n doRequest();\r\n }, [enabled, runMode, doRequest]);\r\n\r\n const hasAlreadyRunOnce = runMode === \"once\" && hasExecutedRef.current;\r\n const shouldRun = (runMode === \"auto\" || runMode === \"once\") && enabled && (requestConfig || cacheName);\r\n if (shouldRun && !hasAlreadyRunOnce && !entry.loading) {\r\n doRequest();\r\n }\r\n return {\r\n data: (entry.data as T) ?? null,\r\n meta: entry.meta ?? null,\r\n loading: entry.loading ?? false,\r\n error: entry.error ?? null,\r\n refetch: makeRequest,\r\n deleteCache,\r\n streamChunks: toStreamChunks(entry.streamChunks),\r\n };\r\n};\r\n"],"names":["isEqual","entry","hookId"],"mappings":"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","x_google_ignoreList":[1]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { B as BinaryParseResult, a as BinaryResponseMeta, D as DataRequest, R as RequestConfig, b as ResponseType, c as RunMode, W as WorkerDataRequestType, d as WorkerErrorPayload, e as WorkerMessageData, f as WorkerMessagePayload, g as WorkerResponseMessage } from '../../types-
|
|
1
|
+
export { B as BinaryParseResult, a as BinaryResponseMeta, C as ContentType, D as DataRequest, R as RequestConfig, b as ResponseType, c as RunMode, W as WorkerDataRequestType, d as WorkerErrorPayload, e as WorkerMessageData, f as WorkerMessagePayload, g as WorkerResponseMessage } from '../../types-Bbz0QMYB.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Creates a Worker instance for the API request worker.
|
|
@@ -147,8 +147,9 @@ type WorkerMessagePayload = {
|
|
|
147
147
|
hookId?: string;
|
|
148
148
|
error: WorkerErrorPayload;
|
|
149
149
|
};
|
|
150
|
+
type ContentType = "application/json" | "application/xml" | "application/x-www-form-urlencoded" | "application/pdf" | "application/zip" | "application/gzip" | "application/octet-stream" | "application/javascript" | "application/ld+json" | "application/vnd.api+json" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.openxmlformats-officedocument.presentationml.presentation" | "text/plain" | "text/html" | "text/css" | "text/csv" | "text/javascript" | "text/xml" | "image/jpeg" | "image/png" | "image/gif" | "image/svg+xml" | "image/webp" | "image/bmp" | "image/tiff" | "image/x-icon" | "image/avif" | "audio/mpeg" | "audio/ogg" | "audio/wav" | "audio/webm" | "audio/aac" | "audio/midi" | "video/mp4" | "video/mpeg" | "video/webm" | "video/ogg" | "video/quicktime" | "video/x-msvideo" | "multipart/form-data" | "multipart/mixed" | "multipart/alternative" | "font/woff" | "font/woff2" | "font/ttf" | "font/otf";
|
|
150
151
|
type WorkerMessageData = {
|
|
151
152
|
dataRequest?: DataRequest<unknown>;
|
|
152
153
|
};
|
|
153
154
|
|
|
154
|
-
export type { BinaryParseResult as B, DataRequest as D, RequestConfig as R, UseApiWorkerConfig as U, WorkerDataRequestType as W, BinaryResponseMeta as a, ResponseType as b, RunMode as c, WorkerErrorPayload as d, WorkerMessageData as e, WorkerMessagePayload as f, WorkerResponseMessage as g, UseApiWorkerReturn as h };
|
|
155
|
+
export type { BinaryParseResult as B, ContentType as C, DataRequest as D, RequestConfig as R, UseApiWorkerConfig as U, WorkerDataRequestType as W, BinaryResponseMeta as a, ResponseType as b, RunMode as c, WorkerErrorPayload as d, WorkerMessageData as e, WorkerMessagePayload as f, WorkerResponseMessage as g, UseApiWorkerReturn as h };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mainframework/api-request-worker",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Offloads API requests and application state to a Web Worker to keep the UI thread fast.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/shared/output/vanilla.js",
|
|
@@ -26,7 +26,6 @@
|
|
|
26
26
|
},
|
|
27
27
|
"homepage": "https://github.com/TerrySlack/mainframework-apiworkere",
|
|
28
28
|
"scripts": {
|
|
29
|
-
"husky-setup": "npx husky init",
|
|
30
29
|
"husky": "husky",
|
|
31
30
|
"prepare": "husky",
|
|
32
31
|
"clean": "rimraf dist tsconfig.tsbuildinfo",
|
|
@@ -72,24 +71,24 @@
|
|
|
72
71
|
"@testing-library/dom": "^10.4.1",
|
|
73
72
|
"@testing-library/react": "^16.3.2",
|
|
74
73
|
"@types/react": "^19.2.14",
|
|
75
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
76
|
-
"@typescript-eslint/parser": "^8.
|
|
77
|
-
"esbuild": "^0.
|
|
78
|
-
"eslint": "10.0
|
|
74
|
+
"@typescript-eslint/eslint-plugin": "^8.59.2",
|
|
75
|
+
"@typescript-eslint/parser": "^8.59.2",
|
|
76
|
+
"esbuild": "^0.28.0",
|
|
77
|
+
"eslint": "10.3.0",
|
|
79
78
|
"eslint-plugin-react": "^7.37.5",
|
|
80
|
-
"eslint-plugin-react-hooks": "^7.
|
|
81
|
-
"globals": "^17.
|
|
79
|
+
"eslint-plugin-react-hooks": "^7.1.1",
|
|
80
|
+
"globals": "^17.6.0",
|
|
82
81
|
"husky": "^9.1.7",
|
|
83
|
-
"lint-staged": "^
|
|
84
|
-
"prettier": "^3.8.
|
|
85
|
-
"react": "^19.2.
|
|
86
|
-
"react-dom": "^19.2.
|
|
82
|
+
"lint-staged": "^17.0.2",
|
|
83
|
+
"prettier": "^3.8.3",
|
|
84
|
+
"react": "^19.2.6",
|
|
85
|
+
"react-dom": "^19.2.6",
|
|
87
86
|
"rimraf": "^6.1.3",
|
|
88
|
-
"rollup": "^4.
|
|
89
|
-
"rollup-plugin-dts": "^6.
|
|
87
|
+
"rollup": "^4.60.3",
|
|
88
|
+
"rollup-plugin-dts": "^6.4.1",
|
|
90
89
|
"rollup-plugin-esbuild": "^6.2.1",
|
|
91
90
|
"tslib": "^2.8.1",
|
|
92
|
-
"typescript": "^
|
|
93
|
-
"typescript-eslint": "^8.
|
|
91
|
+
"typescript": "^6.0.3",
|
|
92
|
+
"typescript-eslint": "^8.59.2"
|
|
94
93
|
}
|
|
95
94
|
}
|