@qwik.dev/core 2.0.0-beta.34 → 2.0.0-beta.36
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/backpatch/index.mjs +2 -2
- package/dist/backpatch/package.json +1 -1
- package/dist/backpatch-executor.debug.js +2 -1
- package/dist/backpatch-executor.js +1 -1
- package/dist/build/package.json +1 -1
- package/dist/cli.mjs +26 -22
- package/dist/core-internal.d.ts +244 -34
- package/dist/core.min.mjs +8 -2
- package/dist/core.mjs +2309 -1028
- package/dist/core.mjs.map +1 -1
- package/dist/core.prod.mjs +4872 -3877
- package/dist/loader/index.mjs +2 -2
- package/dist/loader/package.json +1 -1
- package/dist/optimizer.d.ts +2 -6
- package/dist/optimizer.mjs +2407 -1580
- package/dist/out-of-order-executor.debug.js +163 -0
- package/dist/out-of-order-executor.js +1 -0
- package/dist/preloader.mjs +1 -268
- package/dist/qwikloader.debug.js +47 -26
- package/dist/qwikloader.js +1 -1
- package/dist/server-modules.d.ts +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.mjs +1238 -272
- package/dist/server.prod.mjs +1313 -558
- package/dist/testing/index.d.ts +76 -20
- package/dist/testing/index.mjs +3317 -1408
- package/dist/testing/package.json +1 -1
- package/dist/worker/index.d.mts +21 -0
- package/dist/worker/index.mjs +318 -0
- package/dist/worker/package.json +9 -0
- package/dist/worker/worker.js +13 -0
- package/dist/worker/worker.node.js +15 -0
- package/dist/worker/worker.shared.js +63 -0
- package/handlers.mjs +18 -1
- package/package.json +11 -5
- package/public.d.ts +6 -0
- package/worker.d.ts +2 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** @packageDocumentation */
|
|
2
|
+
|
|
3
|
+
import { QRL } from '../core-internal.js';
|
|
4
|
+
|
|
5
|
+
/** @public */
|
|
6
|
+
export declare const worker$: <T extends WorkerFunction>(qrl: T) => QRL<T>;
|
|
7
|
+
|
|
8
|
+
/** @public */
|
|
9
|
+
export declare interface WorkerConstructorQRL {
|
|
10
|
+
<T extends WorkerFunction>(fnQrl: QRL<T>): QRL<T>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/** @public */
|
|
14
|
+
export declare interface WorkerFunction {
|
|
15
|
+
(...args: any[]): any;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** @public */
|
|
19
|
+
export declare const workerQrl: WorkerConstructorQRL;
|
|
20
|
+
|
|
21
|
+
export { }
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
import { inlinedQrl, _captures, implicit$FirstArg } from "@qwik.dev/core";
|
|
2
|
+
import workerUrl from "./worker.js?worker&url";
|
|
3
|
+
import { _serialize } from "@qwik.dev/core/internal";
|
|
4
|
+
import nodeWorkerAssetUrl from "./worker.node.js?worker&url";
|
|
5
|
+
const browserGlobals$1 = globalThis;
|
|
6
|
+
const sanitizeWorkerArgs = (args) => {
|
|
7
|
+
const SubmitEventConstructor = browserGlobals$1.SubmitEvent;
|
|
8
|
+
const HTMLFormElementConstructor = browserGlobals$1.HTMLFormElement;
|
|
9
|
+
const EventConstructor = browserGlobals$1.Event;
|
|
10
|
+
const NodeConstructor = browserGlobals$1.Node;
|
|
11
|
+
const sanitizedArgs = new Array(args.length);
|
|
12
|
+
for (let i = 0; i < args.length; i++) {
|
|
13
|
+
const arg = args[i];
|
|
14
|
+
if (SubmitEventConstructor && HTMLFormElementConstructor && arg instanceof SubmitEventConstructor && arg.target instanceof HTMLFormElementConstructor) {
|
|
15
|
+
sanitizedArgs[i] = new FormData(arg.target);
|
|
16
|
+
} else if (EventConstructor && arg instanceof EventConstructor) {
|
|
17
|
+
sanitizedArgs[i] = null;
|
|
18
|
+
} else if (NodeConstructor && arg instanceof NodeConstructor) {
|
|
19
|
+
sanitizedArgs[i] = null;
|
|
20
|
+
} else {
|
|
21
|
+
sanitizedArgs[i] = arg;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return sanitizedArgs;
|
|
25
|
+
};
|
|
26
|
+
const qwikWorkers = /* @__PURE__ */ new Map();
|
|
27
|
+
const pendingWorkers = /* @__PURE__ */ new Map();
|
|
28
|
+
let nextWorkerRequestId = 0;
|
|
29
|
+
const getWorkerRequestId = () => ++nextWorkerRequestId;
|
|
30
|
+
const getWorkerHash = (qrl) => qrl.getHash();
|
|
31
|
+
const getWorkerName = (qrl) => `worker$(${qrl.getSymbol()})`;
|
|
32
|
+
const getOrCreateWorker = (qrl, createWorker) => {
|
|
33
|
+
const workerHash = getWorkerHash(qrl);
|
|
34
|
+
const cachedWorker = qwikWorkers.get(workerHash);
|
|
35
|
+
if (cachedWorker) {
|
|
36
|
+
return Promise.resolve(cachedWorker);
|
|
37
|
+
}
|
|
38
|
+
const pendingWorker = pendingWorkers.get(workerHash);
|
|
39
|
+
if (pendingWorker) {
|
|
40
|
+
return pendingWorker;
|
|
41
|
+
}
|
|
42
|
+
const workerPromise = Promise.resolve(createWorker()).then((worker) => {
|
|
43
|
+
if (worker) {
|
|
44
|
+
qwikWorkers.set(workerHash, worker);
|
|
45
|
+
}
|
|
46
|
+
return worker;
|
|
47
|
+
}).finally(() => {
|
|
48
|
+
pendingWorkers.delete(workerHash);
|
|
49
|
+
});
|
|
50
|
+
pendingWorkers.set(workerHash, workerPromise);
|
|
51
|
+
return workerPromise;
|
|
52
|
+
};
|
|
53
|
+
const isWorkerResponseMessage = (messageData, requestId) => Array.isArray(messageData) && messageData.length === 3 && messageData[0] === requestId;
|
|
54
|
+
const invokeWorker = async (worker, qrl, args) => {
|
|
55
|
+
const requestId = getWorkerRequestId();
|
|
56
|
+
const data = await _serialize([
|
|
57
|
+
qrl,
|
|
58
|
+
...args
|
|
59
|
+
]);
|
|
60
|
+
return new Promise((resolve, reject) => {
|
|
61
|
+
const cleanup = () => {
|
|
62
|
+
worker.offError(errorHandler);
|
|
63
|
+
worker.offMessage(messageHandler);
|
|
64
|
+
};
|
|
65
|
+
const errorHandler = (error) => {
|
|
66
|
+
cleanup();
|
|
67
|
+
reject(error);
|
|
68
|
+
};
|
|
69
|
+
const messageHandler = (messageData) => {
|
|
70
|
+
if (isWorkerResponseMessage(messageData, requestId)) {
|
|
71
|
+
cleanup();
|
|
72
|
+
if (messageData[1]) {
|
|
73
|
+
resolve(messageData[2]);
|
|
74
|
+
} else {
|
|
75
|
+
reject(messageData[2]);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
worker.onError(errorHandler);
|
|
80
|
+
worker.onMessage(messageHandler);
|
|
81
|
+
worker.postMessage([
|
|
82
|
+
requestId,
|
|
83
|
+
data
|
|
84
|
+
]);
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
const browserGlobals = globalThis;
|
|
88
|
+
const createBrowserWorkerTransport = (worker) => {
|
|
89
|
+
const errorListenerMap = /* @__PURE__ */ new Map();
|
|
90
|
+
const listenerMap = /* @__PURE__ */ new Map();
|
|
91
|
+
return {
|
|
92
|
+
offError(handler) {
|
|
93
|
+
const listener = errorListenerMap.get(handler);
|
|
94
|
+
if (listener) {
|
|
95
|
+
errorListenerMap.delete(handler);
|
|
96
|
+
worker.removeEventListener("error", listener);
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
offMessage(handler) {
|
|
100
|
+
const listener = listenerMap.get(handler);
|
|
101
|
+
if (listener) {
|
|
102
|
+
listenerMap.delete(handler);
|
|
103
|
+
worker.removeEventListener("message", listener);
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
onError(handler) {
|
|
107
|
+
const listener = (event) => handler(event.error ?? event);
|
|
108
|
+
errorListenerMap.set(handler, listener);
|
|
109
|
+
worker.addEventListener("error", listener);
|
|
110
|
+
},
|
|
111
|
+
onMessage(handler) {
|
|
112
|
+
const listener = (event) => handler(event.data);
|
|
113
|
+
listenerMap.set(handler, listener);
|
|
114
|
+
worker.addEventListener("message", listener);
|
|
115
|
+
},
|
|
116
|
+
postMessage(data) {
|
|
117
|
+
worker.postMessage(data);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
const getBrowserWorker = (qrl) => {
|
|
122
|
+
const WorkerConstructor = browserGlobals.Worker;
|
|
123
|
+
if (!WorkerConstructor) {
|
|
124
|
+
return Promise.resolve(null);
|
|
125
|
+
}
|
|
126
|
+
return getOrCreateWorker(qrl, () => createBrowserWorkerTransport(new WorkerConstructor(workerUrl, {
|
|
127
|
+
name: getWorkerName(qrl),
|
|
128
|
+
type: "module"
|
|
129
|
+
})));
|
|
130
|
+
};
|
|
131
|
+
const tryParseUrl = (value) => {
|
|
132
|
+
try {
|
|
133
|
+
return new URL(value);
|
|
134
|
+
} catch {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
const getImportMetaDirUrl = (metaUrl) => {
|
|
139
|
+
const moduleUrl = tryParseUrl(metaUrl);
|
|
140
|
+
if (!moduleUrl || moduleUrl.protocol !== "file:") {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
moduleUrl.pathname = moduleUrl.pathname.slice(0, moduleUrl.pathname.lastIndexOf("/") + 1);
|
|
144
|
+
return moduleUrl;
|
|
145
|
+
};
|
|
146
|
+
const getPublicBuildPath = (assetUrl) => {
|
|
147
|
+
const assetsIndex = assetUrl.lastIndexOf("/assets/");
|
|
148
|
+
if (assetsIndex === -1) {
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
return `${assetUrl.slice(0, assetsIndex)}/build/`;
|
|
152
|
+
};
|
|
153
|
+
const getNodeDistUrl$1 = (metaUrl, fsModule) => {
|
|
154
|
+
if (!fsModule?.existsSync) {
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
let currentDirUrl = getImportMetaDirUrl(metaUrl);
|
|
158
|
+
if (!currentDirUrl) {
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
for (let i = 0; i < 8; i++) {
|
|
162
|
+
const distUrl = new URL("dist/", currentDirUrl);
|
|
163
|
+
if (fsModule.existsSync(distUrl)) {
|
|
164
|
+
return distUrl;
|
|
165
|
+
}
|
|
166
|
+
const parentDirUrl = new URL("../", currentDirUrl);
|
|
167
|
+
if (parentDirUrl.href === currentDirUrl.href) {
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
currentDirUrl = parentDirUrl;
|
|
171
|
+
}
|
|
172
|
+
return null;
|
|
173
|
+
};
|
|
174
|
+
const getNodeWorkerUrlFromDist = (assetUrl, distUrl) => {
|
|
175
|
+
return new URL(`.${assetUrl}`, distUrl);
|
|
176
|
+
};
|
|
177
|
+
const getNodeWorkerQrlBaseUrlFromDist = (assetUrl, distUrl) => {
|
|
178
|
+
const publicBuildPath = getPublicBuildPath(assetUrl);
|
|
179
|
+
if (!publicBuildPath) {
|
|
180
|
+
return null;
|
|
181
|
+
}
|
|
182
|
+
return new URL(`.${publicBuildPath}`, distUrl);
|
|
183
|
+
};
|
|
184
|
+
const runtimeGlobals$1 = globalThis;
|
|
185
|
+
const runtimeImportMeta = import.meta;
|
|
186
|
+
const nodeWorkerThreadsModuleId = "node:worker_threads";
|
|
187
|
+
const nodeFsModuleId = "node:fs";
|
|
188
|
+
let resolvedNodeWorkerUrl = void 0;
|
|
189
|
+
let resolvedNodeDistUrl = void 0;
|
|
190
|
+
const getNodeWorkerConstructor = () => {
|
|
191
|
+
const workerThreadsModule = runtimeGlobals$1.process?.getBuiltinModule?.(nodeWorkerThreadsModuleId);
|
|
192
|
+
return workerThreadsModule?.Worker;
|
|
193
|
+
};
|
|
194
|
+
const getNodeFsModule = () => {
|
|
195
|
+
return runtimeGlobals$1.process?.getBuiltinModule?.(nodeFsModuleId);
|
|
196
|
+
};
|
|
197
|
+
const getResolvedNodeWorkerModuleUrl = () => {
|
|
198
|
+
const resolvedUrl = runtimeImportMeta.resolve?.("./worker.node.js");
|
|
199
|
+
if (!resolvedUrl) {
|
|
200
|
+
return null;
|
|
201
|
+
}
|
|
202
|
+
const workerUrl2 = tryParseUrl(resolvedUrl);
|
|
203
|
+
if (!workerUrl2) {
|
|
204
|
+
return null;
|
|
205
|
+
}
|
|
206
|
+
const fsModule = getNodeFsModule();
|
|
207
|
+
if (!fsModule?.existsSync?.(workerUrl2)) {
|
|
208
|
+
return null;
|
|
209
|
+
}
|
|
210
|
+
return workerUrl2;
|
|
211
|
+
};
|
|
212
|
+
const getNodeDistUrl = () => {
|
|
213
|
+
if (resolvedNodeDistUrl !== void 0) {
|
|
214
|
+
return resolvedNodeDistUrl;
|
|
215
|
+
}
|
|
216
|
+
resolvedNodeDistUrl = getNodeDistUrl$1(import.meta.url, getNodeFsModule());
|
|
217
|
+
return resolvedNodeDistUrl;
|
|
218
|
+
};
|
|
219
|
+
const getNodeWorkerUrl = () => {
|
|
220
|
+
if (resolvedNodeWorkerUrl != void 0) {
|
|
221
|
+
return resolvedNodeWorkerUrl;
|
|
222
|
+
}
|
|
223
|
+
const resolvedModuleUrl = getResolvedNodeWorkerModuleUrl();
|
|
224
|
+
if (resolvedModuleUrl) {
|
|
225
|
+
resolvedNodeWorkerUrl = resolvedModuleUrl;
|
|
226
|
+
return resolvedNodeWorkerUrl;
|
|
227
|
+
}
|
|
228
|
+
if (nodeWorkerAssetUrl.startsWith("/")) {
|
|
229
|
+
const distUrl = getNodeDistUrl();
|
|
230
|
+
if (distUrl) {
|
|
231
|
+
resolvedNodeWorkerUrl = getNodeWorkerUrlFromDist(nodeWorkerAssetUrl, distUrl);
|
|
232
|
+
return resolvedNodeWorkerUrl;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
resolvedNodeWorkerUrl = new URL(nodeWorkerAssetUrl, import.meta.url);
|
|
236
|
+
return resolvedNodeWorkerUrl;
|
|
237
|
+
};
|
|
238
|
+
const getNodeWorkerQrlBaseUrl = () => {
|
|
239
|
+
const resolvedModuleUrl = getResolvedNodeWorkerModuleUrl();
|
|
240
|
+
if (resolvedModuleUrl) {
|
|
241
|
+
return new URL("../build/", resolvedModuleUrl);
|
|
242
|
+
}
|
|
243
|
+
if (nodeWorkerAssetUrl.startsWith("/")) {
|
|
244
|
+
const distUrl = getNodeDistUrl();
|
|
245
|
+
const qrlBaseUrl = distUrl && getNodeWorkerQrlBaseUrlFromDist(nodeWorkerAssetUrl, distUrl);
|
|
246
|
+
if (qrlBaseUrl) {
|
|
247
|
+
return qrlBaseUrl;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return new URL("../build/", getNodeWorkerUrl());
|
|
251
|
+
};
|
|
252
|
+
const createNodeWorkerTransport = (worker) => {
|
|
253
|
+
return {
|
|
254
|
+
offError(handler) {
|
|
255
|
+
worker.off("error", handler);
|
|
256
|
+
},
|
|
257
|
+
offMessage(handler) {
|
|
258
|
+
worker.off("message", handler);
|
|
259
|
+
},
|
|
260
|
+
onError(handler) {
|
|
261
|
+
worker.on("error", handler);
|
|
262
|
+
},
|
|
263
|
+
onMessage(handler) {
|
|
264
|
+
worker.on("message", handler);
|
|
265
|
+
},
|
|
266
|
+
postMessage(data) {
|
|
267
|
+
worker.postMessage(data);
|
|
268
|
+
}
|
|
269
|
+
};
|
|
270
|
+
};
|
|
271
|
+
const getNodeWorker = (qrl) => {
|
|
272
|
+
return getOrCreateWorker(qrl, () => {
|
|
273
|
+
const WorkerConstructor = getNodeWorkerConstructor();
|
|
274
|
+
if (!WorkerConstructor) {
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
const worker = new WorkerConstructor(getNodeWorkerUrl(), {
|
|
278
|
+
name: getWorkerName(qrl),
|
|
279
|
+
workerData: {
|
|
280
|
+
qrlBaseUrl: getNodeWorkerQrlBaseUrl().href
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
worker.unref();
|
|
284
|
+
return createNodeWorkerTransport(worker);
|
|
285
|
+
});
|
|
286
|
+
};
|
|
287
|
+
const runtimeGlobals = globalThis;
|
|
288
|
+
const isBrowserRuntime = () => !!runtimeGlobals.document;
|
|
289
|
+
const isBunRuntime = () => !!runtimeGlobals.process?.versions?.bun;
|
|
290
|
+
const isDenoRuntime = () => !!runtimeGlobals.Deno?.version?.deno;
|
|
291
|
+
const isNodeRuntime = () => !!runtimeGlobals.process?.versions?.node && !isBunRuntime() && !isDenoRuntime();
|
|
292
|
+
const getWorkerTransport = async (qrl) => {
|
|
293
|
+
if (isNodeRuntime()) {
|
|
294
|
+
return getNodeWorker(qrl);
|
|
295
|
+
}
|
|
296
|
+
if (isBrowserRuntime()) {
|
|
297
|
+
return getBrowserWorker(qrl);
|
|
298
|
+
}
|
|
299
|
+
return null;
|
|
300
|
+
};
|
|
301
|
+
const workerQrl = (qrl) => {
|
|
302
|
+
return /* @__PURE__ */ inlinedQrl(async (...args) => {
|
|
303
|
+
const qrl2 = _captures[0];
|
|
304
|
+
const filtered = sanitizeWorkerArgs(args);
|
|
305
|
+
const worker = await getWorkerTransport(qrl2);
|
|
306
|
+
if (!worker) {
|
|
307
|
+
return qrl2(...filtered);
|
|
308
|
+
}
|
|
309
|
+
return invokeWorker(worker, qrl2, filtered);
|
|
310
|
+
}, "workerQrl_lGZKoP3eM7I", [
|
|
311
|
+
qrl
|
|
312
|
+
]);
|
|
313
|
+
};
|
|
314
|
+
const worker$ = implicit$FirstArg(workerQrl);
|
|
315
|
+
export {
|
|
316
|
+
worker$,
|
|
317
|
+
workerQrl
|
|
318
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { runWorkerMessage, setBrowserWorkerPlatform } from './worker.shared.js';
|
|
2
|
+
|
|
3
|
+
setBrowserWorkerPlatform(import.meta.url);
|
|
4
|
+
|
|
5
|
+
globalThis.onmessage = ({ data }) => {
|
|
6
|
+
return runWorkerMessage(
|
|
7
|
+
data,
|
|
8
|
+
(response) => {
|
|
9
|
+
self.postMessage(response);
|
|
10
|
+
},
|
|
11
|
+
globalThis
|
|
12
|
+
);
|
|
13
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { runWorkerMessage, setNodeWorkerPlatform } from './worker.shared.js';
|
|
2
|
+
|
|
3
|
+
const workerThreadsModule = process.getBuiltinModule?.('node:worker_threads');
|
|
4
|
+
const parentPort = workerThreadsModule?.parentPort;
|
|
5
|
+
setNodeWorkerPlatform(workerThreadsModule?.workerData?.qrlBaseUrl);
|
|
6
|
+
|
|
7
|
+
parentPort?.on('message', (data) => {
|
|
8
|
+
return runWorkerMessage(
|
|
9
|
+
data,
|
|
10
|
+
(response) => {
|
|
11
|
+
parentPort.postMessage(response);
|
|
12
|
+
},
|
|
13
|
+
globalThis
|
|
14
|
+
);
|
|
15
|
+
});
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { setPlatform } from '@qwik.dev/core';
|
|
2
|
+
import { _deserialize } from '@qwik.dev/core/internal';
|
|
3
|
+
|
|
4
|
+
const getSymbolHash = (symbolName) => {
|
|
5
|
+
const index = symbolName.lastIndexOf('_');
|
|
6
|
+
return index > -1 ? symbolName.slice(index + 1) : symbolName;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
const createWorkerPlatform = (qrlBaseUrl) => {
|
|
10
|
+
return {
|
|
11
|
+
isServer: true,
|
|
12
|
+
async importSymbol(_containerEl, url, symbolName) {
|
|
13
|
+
const hash = getSymbolHash(symbolName);
|
|
14
|
+
const regSym = globalThis.__qwik_reg_symbols?.get(hash);
|
|
15
|
+
if (regSym) {
|
|
16
|
+
return regSym;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if (!url || !qrlBaseUrl) {
|
|
20
|
+
throw new Error(`Dynamic import ${symbolName} not found`);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const module = await import(/* @vite-ignore */ new URL(url, qrlBaseUrl).href);
|
|
24
|
+
const symbol = module[symbolName] ?? globalThis.__qwik_reg_symbols?.get(hash);
|
|
25
|
+
if (symbol === undefined) {
|
|
26
|
+
throw new Error(`Dynamic import ${symbolName} not found`);
|
|
27
|
+
}
|
|
28
|
+
return symbol;
|
|
29
|
+
},
|
|
30
|
+
raf: () => Promise.resolve(),
|
|
31
|
+
chunkForSymbol(symbolName, chunk) {
|
|
32
|
+
return [symbolName, chunk ?? '_'];
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export const createBrowserWorkerPlatform = (qrlBaseUrl) => {
|
|
38
|
+
return createWorkerPlatform(qrlBaseUrl);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export const createNodeWorkerPlatform = (qrlBaseUrl) => {
|
|
42
|
+
return createWorkerPlatform(qrlBaseUrl);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export const setBrowserWorkerPlatform = (qrlBaseUrl) => {
|
|
46
|
+
setPlatform(createBrowserWorkerPlatform(qrlBaseUrl));
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export const setNodeWorkerPlatform = (qrlBaseUrl) => {
|
|
50
|
+
setPlatform(createNodeWorkerPlatform(qrlBaseUrl));
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export const runWorkerMessage = async (data, postMessage, invokeThis) => {
|
|
54
|
+
const requestId = data[0];
|
|
55
|
+
try {
|
|
56
|
+
const [qrl, ...args] = _deserialize(data[1]);
|
|
57
|
+
|
|
58
|
+
const output = await qrl.apply(invokeThis ?? null, args);
|
|
59
|
+
postMessage([requestId, true, output]);
|
|
60
|
+
} catch (err) {
|
|
61
|
+
postMessage([requestId, false, err]);
|
|
62
|
+
}
|
|
63
|
+
};
|
package/handlers.mjs
CHANGED
|
@@ -6,4 +6,21 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Make sure that these handlers are listed in manifest.ts
|
|
8
8
|
*/
|
|
9
|
-
export {
|
|
9
|
+
export {
|
|
10
|
+
_chk,
|
|
11
|
+
_rsc,
|
|
12
|
+
_res,
|
|
13
|
+
_run,
|
|
14
|
+
_task,
|
|
15
|
+
_val,
|
|
16
|
+
// Each
|
|
17
|
+
_eaC,
|
|
18
|
+
_eaT,
|
|
19
|
+
// Suspense
|
|
20
|
+
_suC,
|
|
21
|
+
_suT,
|
|
22
|
+
// Reveal
|
|
23
|
+
_reR,
|
|
24
|
+
_reC,
|
|
25
|
+
_reT,
|
|
26
|
+
} from '@qwik.dev/core/internal';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qwik.dev/core",
|
|
3
3
|
"description": "An open source framework for building instant loading web apps at any scale, without the extra effort.",
|
|
4
|
-
"version": "2.0.0-beta.
|
|
4
|
+
"version": "2.0.0-beta.36",
|
|
5
5
|
"author": "Qwik Team",
|
|
6
6
|
"bin": {
|
|
7
7
|
"qwik": "./qwik-cli.mjs"
|
|
@@ -10,8 +10,9 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"csstype": "^3.2.3",
|
|
12
12
|
"launch-editor": "^2.12.0",
|
|
13
|
+
"magic-string": "0.30.21",
|
|
13
14
|
"rollup": "^4.59.0",
|
|
14
|
-
"@qwik.dev/optimizer": "2.1.0-beta.
|
|
15
|
+
"@qwik.dev/optimizer": "2.1.0-beta.5"
|
|
15
16
|
},
|
|
16
17
|
"devDependencies": {
|
|
17
18
|
"@croct/json5-parser": "0.2.2",
|
|
@@ -20,9 +21,9 @@
|
|
|
20
21
|
"image-size": "1.2.1",
|
|
21
22
|
"kleur": "4.1.5",
|
|
22
23
|
"prettier": "3.7.4",
|
|
23
|
-
"vitest": "4.0
|
|
24
|
-
"@qwik.dev/
|
|
25
|
-
"@qwik.dev/
|
|
24
|
+
"vitest": "4.1.0",
|
|
25
|
+
"@qwik.dev/dom": "2.1.19",
|
|
26
|
+
"@qwik.dev/core": "2.0.0-beta.36"
|
|
26
27
|
},
|
|
27
28
|
"engines": {
|
|
28
29
|
"node": "^20.3.0 || >=21.0.0"
|
|
@@ -109,6 +110,10 @@
|
|
|
109
110
|
"types": "./dist/testing/index.d.ts",
|
|
110
111
|
"import": "./dist/testing/index.mjs"
|
|
111
112
|
},
|
|
113
|
+
"./worker": {
|
|
114
|
+
"types": "./worker.d.ts",
|
|
115
|
+
"import": "./dist/worker/index.mjs"
|
|
116
|
+
},
|
|
112
117
|
"./qwikloader.js": "./dist/qwikloader.js",
|
|
113
118
|
"./qwikloader.debug.js": "./dist/qwikloader.debug.js",
|
|
114
119
|
"./backpatch-executor.js": "./dist/backpatch-executor.js",
|
|
@@ -130,6 +135,7 @@
|
|
|
130
135
|
"public.d.ts",
|
|
131
136
|
"server.d.ts",
|
|
132
137
|
"testing.d.ts",
|
|
138
|
+
"worker.d.ts",
|
|
133
139
|
"qwik-cli.mjs"
|
|
134
140
|
],
|
|
135
141
|
"homepage": "https://qwik.dev/",
|
package/public.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export {
|
|
|
18
18
|
EventHandler,
|
|
19
19
|
Fragment,
|
|
20
20
|
FunctionComponent,
|
|
21
|
+
getClientManifest,
|
|
21
22
|
getLocale,
|
|
22
23
|
getPlatform,
|
|
23
24
|
implicit$FirstArg,
|
|
@@ -54,9 +55,14 @@ export {
|
|
|
54
55
|
RenderOptions,
|
|
55
56
|
Resource,
|
|
56
57
|
ResourceReturn,
|
|
58
|
+
Reveal,
|
|
59
|
+
RevealOrder,
|
|
60
|
+
RevealProps,
|
|
57
61
|
Signal,
|
|
58
62
|
SkipRender,
|
|
59
63
|
Slot,
|
|
64
|
+
Suspense,
|
|
65
|
+
SuspenseProps,
|
|
60
66
|
sync$,
|
|
61
67
|
TaskCtx,
|
|
62
68
|
// TODO do we really want to export this?
|
package/worker.d.ts
ADDED