CVNSS commited on
Commit
5efa6a0
·
verified ·
1 Parent(s): 35028fc

Update mtext-renderer-worker.js

Browse files
Files changed (1) hide show
  1. mtext-renderer-worker.js +42 -28
mtext-renderer-worker.js CHANGED
@@ -1,28 +1,42 @@
1
- // assets/mtext-renderer-worker.js
2
- // Fallback worker: giữ app không crash nếu thiếu worker MTEXT thật.
3
- // Protocol: receive { id, input } -> respond { id, success, data, error }
4
-
5
- self.addEventListener("message", async (evt) => {
6
- const msg = evt?.data ?? {};
7
- const id = msg.id;
8
-
9
- if (!id) return;
10
-
11
- try {
12
- self.postMessage({
13
- id,
14
- success: false,
15
- data: null,
16
- error:
17
- "MTEXT renderer worker đang là bản fallback (chưa có worker thật). " +
18
- "Bạn cần upload đúng file build 'mtext-renderer-worker.js' vào /assets để render MTEXT hoạt động.",
19
- });
20
- } catch (err) {
21
- self.postMessage({
22
- id,
23
- success: false,
24
- data: null,
25
- error: `MTEXT worker fallback error: ${err?.message || String(err)}`,
26
- });
27
- }
28
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // /mtext-renderer-worker.js (ROOT)
2
+ // Bootstrap: ưu tiên worker thật local nếu có, nếu không thì load từ bản Firebase đang chạy.
3
+ // Để tự host 100% trong HF: tải worker thật về đặt tại /assets/mtext-renderer-worker.real.js
4
+
5
+ (() => {
6
+ const CANDIDATES = [
7
+ "./assets/mtext-renderer-worker.real.js",
8
+ "https://cad2map.web.app/assets/mtext-renderer-worker.js",
9
+ ];
10
+
11
+ function installFallback(reason) {
12
+ self.addEventListener("message", (evt) => {
13
+ const msg = evt?.data ?? {};
14
+ const id = msg.id;
15
+ if (!id) return;
16
+
17
+ self.postMessage({
18
+ id,
19
+ success: false,
20
+ data: null,
21
+ error:
22
+ "Không nạp được MTEXT renderer worker thật. " +
23
+ "Lý do: " + String(reason || "unknown") + ". " +
24
+ "Hãy copy worker thật vào /assets/mtext-renderer-worker.real.js.",
25
+ });
26
+ });
27
+ }
28
+
29
+ try {
30
+ let loaded = false;
31
+ for (const url of CANDIDATES) {
32
+ try {
33
+ importScripts(url);
34
+ loaded = true;
35
+ break;
36
+ } catch (e) {}
37
+ }
38
+ if (!loaded) installFallback("importScripts failed for all candidates");
39
+ } catch (e) {
40
+ installFallback(e?.message || e);
41
+ }
42
+ })();