stream-monaco 0.0.16 → 0.0.17

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
@@ -518,6 +518,14 @@ import { preloadMonacoWorkers } from 'stream-monaco/legacy'
518
518
  preloadMonacoWorkers()
519
519
  ```
520
520
 
521
+ If you load Monaco via CDN/AMD (e.g. `<script src=".../vs/loader.js">`), `stream-monaco/legacy` also includes a best-effort auto worker setup that creates a same-origin `blob:` worker and `importScripts()` Monaco’s `vs/base/worker/workerMain.js`. If auto-detection can’t find your Monaco base URL, call:
522
+
523
+ ```ts
524
+ import { ensureMonacoWorkersLegacy } from 'stream-monaco/legacy'
525
+
526
+ ensureMonacoWorkersLegacy({ baseUrl: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.52.2/min/' })
527
+ ```
528
+
521
529
  ### Development
522
530
 
523
531
  ```bash
package/dist/index.cjs CHANGED
@@ -1,18 +1,26 @@
1
1
  const require_preloadMonacoWorkers_shared = require('./preloadMonacoWorkers.shared-gUKedCzF.cjs');
2
2
 
3
- //#region src/preloadMonacoWorkers.ts
4
- async function preloadMonacoWorkers() {
3
+ //#region src/ensureMonacoWorkers.ts
4
+ function ensureMonacoWorkers() {
5
5
  if (typeof window === "undefined" || typeof document === "undefined") return;
6
- const workerUrlByLabel = Object.fromEntries(Object.entries(require_preloadMonacoWorkers_shared.workerPathByLabel).map(([label, path]) => [label, new URL(path, require("url").pathToFileURL(__filename).href)]));
7
- const workerUrlEditor = new URL(require_preloadMonacoWorkers_shared.editorWorkerPath, require("url").pathToFileURL(__filename).href);
8
- const unique = require_preloadMonacoWorkers_shared.uniqueWorkerPaths.map((p) => String(new URL(p, require("url").pathToFileURL(__filename).href)));
9
6
  try {
10
7
  const existing = self.MonacoEnvironment;
11
- if (!(existing === null || existing === void 0 ? void 0 : existing.getWorker) && !(existing === null || existing === void 0 ? void 0 : existing.getWorkerUrl)) self.MonacoEnvironment = { getWorker(_, label) {
8
+ if ((existing === null || existing === void 0 ? void 0 : existing.getWorker) || (existing === null || existing === void 0 ? void 0 : existing.getWorkerUrl)) return;
9
+ const workerUrlByLabel = Object.fromEntries(Object.entries(require_preloadMonacoWorkers_shared.workerPathByLabel).map(([label, path]) => [label, new URL(path, require("url").pathToFileURL(__filename).href)]));
10
+ const workerUrlEditor = new URL(require_preloadMonacoWorkers_shared.editorWorkerPath, require("url").pathToFileURL(__filename).href);
11
+ self.MonacoEnvironment = { getWorker(_, label) {
12
12
  const url = workerUrlByLabel[label] ?? workerUrlEditor;
13
13
  return new Worker(url, { type: "module" });
14
14
  } };
15
15
  } catch {}
16
+ }
17
+
18
+ //#endregion
19
+ //#region src/preloadMonacoWorkers.ts
20
+ async function preloadMonacoWorkers() {
21
+ if (typeof window === "undefined" || typeof document === "undefined") return;
22
+ const unique = require_preloadMonacoWorkers_shared.uniqueWorkerPaths.map((p) => String(new URL(p, require("url").pathToFileURL(__filename).href)));
23
+ ensureMonacoWorkers();
16
24
  try {
17
25
  await Promise.all(unique.map((u) => fetch(u, {
18
26
  method: "GET",
@@ -21,11 +29,16 @@ async function preloadMonacoWorkers() {
21
29
  } catch {}
22
30
  }
23
31
 
32
+ //#endregion
33
+ //#region src/index.ts
34
+ ensureMonacoWorkers();
35
+
24
36
  //#endregion
25
37
  exports.RevealStrategy = require_preloadMonacoWorkers_shared.RevealStrategy;
26
38
  exports.clearHighlighterCache = require_preloadMonacoWorkers_shared.clearHighlighterCache;
27
39
  exports.defaultRevealDebounceMs = require_preloadMonacoWorkers_shared.defaultRevealDebounceMs;
28
40
  exports.detectLanguage = require_preloadMonacoWorkers_shared.detectLanguage;
41
+ exports.ensureMonacoWorkers = ensureMonacoWorkers;
29
42
  exports.getOrCreateHighlighter = require_preloadMonacoWorkers_shared.getOrCreateHighlighter;
30
43
  exports.preloadMonacoWorkers = preloadMonacoWorkers;
31
44
  exports.registerMonacoThemes = require_preloadMonacoWorkers_shared.registerMonacoThemes;
package/dist/index.d.cts CHANGED
@@ -3,4 +3,7 @@ import { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoO
3
3
  //#region src/preloadMonacoWorkers.d.ts
4
4
  declare function preloadMonacoWorkers(): Promise<void>;
5
5
  //#endregion
6
- export { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
6
+ //#region src/ensureMonacoWorkers.d.ts
7
+ declare function ensureMonacoWorkers(): void;
8
+ //#endregion
9
+ export { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, ensureMonacoWorkers, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
package/dist/index.d.ts CHANGED
@@ -3,4 +3,7 @@ import { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoO
3
3
  //#region src/preloadMonacoWorkers.d.ts
4
4
  declare function preloadMonacoWorkers(): Promise<void>;
5
5
  //#endregion
6
- export { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
6
+ //#region src/ensureMonacoWorkers.d.ts
7
+ declare function ensureMonacoWorkers(): void;
8
+ //#endregion
9
+ export { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, ensureMonacoWorkers, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
package/dist/index.js CHANGED
@@ -1,18 +1,26 @@
1
1
  import { RevealStrategy, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, editorWorkerPath, getOrCreateHighlighter, registerMonacoThemes, uniqueWorkerPaths, useMonaco, workerPathByLabel } from "./preloadMonacoWorkers.shared-C62vOlc9.js";
2
2
 
3
- //#region src/preloadMonacoWorkers.ts
4
- async function preloadMonacoWorkers() {
3
+ //#region src/ensureMonacoWorkers.ts
4
+ function ensureMonacoWorkers() {
5
5
  if (typeof window === "undefined" || typeof document === "undefined") return;
6
- const workerUrlByLabel = Object.fromEntries(Object.entries(workerPathByLabel).map(([label, path]) => [label, new URL(path, import.meta.url)]));
7
- const workerUrlEditor = new URL(editorWorkerPath, import.meta.url);
8
- const unique = uniqueWorkerPaths.map((p) => String(new URL(p, import.meta.url)));
9
6
  try {
10
7
  const existing = self.MonacoEnvironment;
11
- if (!(existing === null || existing === void 0 ? void 0 : existing.getWorker) && !(existing === null || existing === void 0 ? void 0 : existing.getWorkerUrl)) self.MonacoEnvironment = { getWorker(_, label) {
8
+ if ((existing === null || existing === void 0 ? void 0 : existing.getWorker) || (existing === null || existing === void 0 ? void 0 : existing.getWorkerUrl)) return;
9
+ const workerUrlByLabel = Object.fromEntries(Object.entries(workerPathByLabel).map(([label, path]) => [label, new URL(path, import.meta.url)]));
10
+ const workerUrlEditor = new URL(editorWorkerPath, import.meta.url);
11
+ self.MonacoEnvironment = { getWorker(_, label) {
12
12
  const url = workerUrlByLabel[label] ?? workerUrlEditor;
13
13
  return new Worker(url, { type: "module" });
14
14
  } };
15
15
  } catch {}
16
+ }
17
+
18
+ //#endregion
19
+ //#region src/preloadMonacoWorkers.ts
20
+ async function preloadMonacoWorkers() {
21
+ if (typeof window === "undefined" || typeof document === "undefined") return;
22
+ const unique = uniqueWorkerPaths.map((p) => String(new URL(p, import.meta.url)));
23
+ ensureMonacoWorkers();
16
24
  try {
17
25
  await Promise.all(unique.map((u) => fetch(u, {
18
26
  method: "GET",
@@ -22,4 +30,8 @@ async function preloadMonacoWorkers() {
22
30
  }
23
31
 
24
32
  //#endregion
25
- export { RevealStrategy, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
33
+ //#region src/index.ts
34
+ ensureMonacoWorkers();
35
+
36
+ //#endregion
37
+ export { RevealStrategy, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, ensureMonacoWorkers, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
@@ -1,8 +1,101 @@
1
1
  const require_preloadMonacoWorkers_shared = require('./preloadMonacoWorkers.shared-gUKedCzF.cjs');
2
2
 
3
+ //#region src/ensureMonacoWorkers.legacy.ts
4
+ function normalizeBaseUrl(baseUrl) {
5
+ return baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`;
6
+ }
7
+ function tryDeriveBaseUrlFromVsPath(vsPath) {
8
+ if (!vsPath) return void 0;
9
+ const trimmed = vsPath.endsWith("/") ? vsPath.slice(0, -1) : vsPath;
10
+ if (trimmed.endsWith("/vs")) return normalizeBaseUrl(trimmed.slice(0, -3));
11
+ const vsIndex = trimmed.indexOf("/vs/");
12
+ if (vsIndex > 0) return normalizeBaseUrl(trimmed.slice(0, vsIndex));
13
+ return void 0;
14
+ }
15
+ function detectMonacoBaseUrlFromScripts() {
16
+ if (typeof document === "undefined") return void 0;
17
+ const scripts = Array.from(document.getElementsByTagName("script"));
18
+ for (const script of scripts) {
19
+ const src = script.getAttribute("src") || "";
20
+ if (!src) continue;
21
+ const loaderMatch = src.match(/^(.*)\/vs\/loader\.js(?:\\?.*)?$/);
22
+ if (loaderMatch) return normalizeBaseUrl(loaderMatch[1]);
23
+ const vsIndex = src.indexOf("/vs/");
24
+ if (vsIndex > 0) return normalizeBaseUrl(src.slice(0, vsIndex));
25
+ }
26
+ return void 0;
27
+ }
28
+ function detectMonacoBaseUrlFromAmdRequire() {
29
+ var _amdRequire$s;
30
+ const amdRequire = globalThis.require;
31
+ const vsPath = amdRequire === null || amdRequire === void 0 || (_amdRequire$s = amdRequire.s) === null || _amdRequire$s === void 0 || (_amdRequire$s = _amdRequire$s.contexts) === null || _amdRequire$s === void 0 || (_amdRequire$s = _amdRequire$s._) === null || _amdRequire$s === void 0 || (_amdRequire$s = _amdRequire$s.config) === null || _amdRequire$s === void 0 || (_amdRequire$s = _amdRequire$s.paths) === null || _amdRequire$s === void 0 ? void 0 : _amdRequire$s.vs;
32
+ if (typeof vsPath !== "string" || !vsPath) return void 0;
33
+ try {
34
+ return tryDeriveBaseUrlFromVsPath(String(new URL(vsPath, location.href)));
35
+ } catch {
36
+ return tryDeriveBaseUrlFromVsPath(vsPath);
37
+ }
38
+ }
39
+ function detectMonacoBaseUrlFromExistingWorkerUrl(getWorkerUrl) {
40
+ let workerUrl;
41
+ try {
42
+ workerUrl = getWorkerUrl("", "editorWorkerService");
43
+ } catch {}
44
+ if (!workerUrl) try {
45
+ workerUrl = getWorkerUrl("", "typescript");
46
+ } catch {}
47
+ if (!workerUrl) return void 0;
48
+ try {
49
+ const resolved = new URL(workerUrl, location.href);
50
+ const vsIndex = resolved.pathname.indexOf("/vs/");
51
+ if (vsIndex <= 0) return void 0;
52
+ return normalizeBaseUrl(`${resolved.origin}${resolved.pathname.slice(0, vsIndex)}`);
53
+ } catch {
54
+ return void 0;
55
+ }
56
+ }
57
+ function makeWorkerUrl(baseUrl) {
58
+ if (typeof URL === "undefined" || typeof Blob === "undefined") return void 0;
59
+ const normalized = normalizeBaseUrl(baseUrl);
60
+ const workerMainUrl = `${normalized}vs/base/worker/workerMain.js`;
61
+ const source = `self.MonacoEnvironment={baseUrl:${JSON.stringify(normalized)}};importScripts(${JSON.stringify(workerMainUrl)});`;
62
+ try {
63
+ return URL.createObjectURL(new Blob([source], { type: "text/javascript" }));
64
+ } catch {
65
+ return void 0;
66
+ }
67
+ }
68
+ function ensureMonacoWorkersLegacy(options) {
69
+ if (typeof window === "undefined" || typeof document === "undefined") return;
70
+ try {
71
+ const existing = self.MonacoEnvironment;
72
+ if (existing === null || existing === void 0 ? void 0 : existing.getWorker) return;
73
+ const existingGetWorkerUrl = existing === null || existing === void 0 ? void 0 : existing.getWorkerUrl;
74
+ if (typeof existingGetWorkerUrl === "function") {
75
+ const existingBaseUrl = detectMonacoBaseUrlFromExistingWorkerUrl(existingGetWorkerUrl);
76
+ if (existingBaseUrl) {
77
+ const workerUrl$1 = makeWorkerUrl(existingBaseUrl);
78
+ if (workerUrl$1) self.MonacoEnvironment = { getWorkerUrl() {
79
+ return workerUrl$1;
80
+ } };
81
+ }
82
+ return;
83
+ }
84
+ const baseUrl = (options === null || options === void 0 ? void 0 : options.baseUrl) ?? detectMonacoBaseUrlFromScripts() ?? detectMonacoBaseUrlFromAmdRequire();
85
+ if (!baseUrl) return;
86
+ const workerUrl = makeWorkerUrl(baseUrl);
87
+ if (!workerUrl) return;
88
+ self.MonacoEnvironment = { getWorkerUrl() {
89
+ return workerUrl;
90
+ } };
91
+ } catch {}
92
+ }
93
+
94
+ //#endregion
3
95
  //#region src/preloadMonacoWorkers.legacy.ts
4
96
  async function preloadMonacoWorkers() {
5
97
  if (typeof window === "undefined" || typeof document === "undefined") return;
98
+ ensureMonacoWorkersLegacy();
6
99
  const env = self.MonacoEnvironment;
7
100
  const getWorkerUrl = env === null || env === void 0 ? void 0 : env.getWorkerUrl;
8
101
  if (typeof getWorkerUrl !== "function") return;
@@ -23,11 +116,16 @@ async function preloadMonacoWorkers() {
23
116
  } catch {}
24
117
  }
25
118
 
119
+ //#endregion
120
+ //#region src/index.legacy.ts
121
+ ensureMonacoWorkersLegacy();
122
+
26
123
  //#endregion
27
124
  exports.RevealStrategy = require_preloadMonacoWorkers_shared.RevealStrategy;
28
125
  exports.clearHighlighterCache = require_preloadMonacoWorkers_shared.clearHighlighterCache;
29
126
  exports.defaultRevealDebounceMs = require_preloadMonacoWorkers_shared.defaultRevealDebounceMs;
30
127
  exports.detectLanguage = require_preloadMonacoWorkers_shared.detectLanguage;
128
+ exports.ensureMonacoWorkersLegacy = ensureMonacoWorkersLegacy;
31
129
  exports.getOrCreateHighlighter = require_preloadMonacoWorkers_shared.getOrCreateHighlighter;
32
130
  exports.preloadMonacoWorkers = preloadMonacoWorkers;
33
131
  exports.registerMonacoThemes = require_preloadMonacoWorkers_shared.registerMonacoThemes;
@@ -3,4 +3,9 @@ import { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoO
3
3
  //#region src/preloadMonacoWorkers.legacy.d.ts
4
4
  declare function preloadMonacoWorkers(): Promise<void>;
5
5
  //#endregion
6
- export { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
6
+ //#region src/ensureMonacoWorkers.legacy.d.ts
7
+ declare function ensureMonacoWorkersLegacy(options?: {
8
+ baseUrl?: string;
9
+ }): void;
10
+ //#endregion
11
+ export { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, ensureMonacoWorkersLegacy, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
@@ -3,4 +3,9 @@ import { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoO
3
3
  //#region src/preloadMonacoWorkers.legacy.d.ts
4
4
  declare function preloadMonacoWorkers(): Promise<void>;
5
5
  //#endregion
6
- export { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
6
+ //#region src/ensureMonacoWorkers.legacy.d.ts
7
+ declare function ensureMonacoWorkersLegacy(options?: {
8
+ baseUrl?: string;
9
+ }): void;
10
+ //#endregion
11
+ export { MonacoDiffEditorInstance, MonacoEditorInstance, MonacoLanguage, MonacoOptions, MonacoTheme, RevealStrategy, ShikiHighlighter, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, ensureMonacoWorkersLegacy, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
@@ -1,8 +1,101 @@
1
1
  import { RevealStrategy, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, registerMonacoThemes, useMonaco, workerPathByLabel } from "./preloadMonacoWorkers.shared-C62vOlc9.js";
2
2
 
3
+ //#region src/ensureMonacoWorkers.legacy.ts
4
+ function normalizeBaseUrl(baseUrl) {
5
+ return baseUrl.endsWith("/") ? baseUrl : `${baseUrl}/`;
6
+ }
7
+ function tryDeriveBaseUrlFromVsPath(vsPath) {
8
+ if (!vsPath) return void 0;
9
+ const trimmed = vsPath.endsWith("/") ? vsPath.slice(0, -1) : vsPath;
10
+ if (trimmed.endsWith("/vs")) return normalizeBaseUrl(trimmed.slice(0, -3));
11
+ const vsIndex = trimmed.indexOf("/vs/");
12
+ if (vsIndex > 0) return normalizeBaseUrl(trimmed.slice(0, vsIndex));
13
+ return void 0;
14
+ }
15
+ function detectMonacoBaseUrlFromScripts() {
16
+ if (typeof document === "undefined") return void 0;
17
+ const scripts = Array.from(document.getElementsByTagName("script"));
18
+ for (const script of scripts) {
19
+ const src = script.getAttribute("src") || "";
20
+ if (!src) continue;
21
+ const loaderMatch = src.match(/^(.*)\/vs\/loader\.js(?:\\?.*)?$/);
22
+ if (loaderMatch) return normalizeBaseUrl(loaderMatch[1]);
23
+ const vsIndex = src.indexOf("/vs/");
24
+ if (vsIndex > 0) return normalizeBaseUrl(src.slice(0, vsIndex));
25
+ }
26
+ return void 0;
27
+ }
28
+ function detectMonacoBaseUrlFromAmdRequire() {
29
+ var _amdRequire$s;
30
+ const amdRequire = globalThis.require;
31
+ const vsPath = amdRequire === null || amdRequire === void 0 || (_amdRequire$s = amdRequire.s) === null || _amdRequire$s === void 0 || (_amdRequire$s = _amdRequire$s.contexts) === null || _amdRequire$s === void 0 || (_amdRequire$s = _amdRequire$s._) === null || _amdRequire$s === void 0 || (_amdRequire$s = _amdRequire$s.config) === null || _amdRequire$s === void 0 || (_amdRequire$s = _amdRequire$s.paths) === null || _amdRequire$s === void 0 ? void 0 : _amdRequire$s.vs;
32
+ if (typeof vsPath !== "string" || !vsPath) return void 0;
33
+ try {
34
+ return tryDeriveBaseUrlFromVsPath(String(new URL(vsPath, location.href)));
35
+ } catch {
36
+ return tryDeriveBaseUrlFromVsPath(vsPath);
37
+ }
38
+ }
39
+ function detectMonacoBaseUrlFromExistingWorkerUrl(getWorkerUrl) {
40
+ let workerUrl;
41
+ try {
42
+ workerUrl = getWorkerUrl("", "editorWorkerService");
43
+ } catch {}
44
+ if (!workerUrl) try {
45
+ workerUrl = getWorkerUrl("", "typescript");
46
+ } catch {}
47
+ if (!workerUrl) return void 0;
48
+ try {
49
+ const resolved = new URL(workerUrl, location.href);
50
+ const vsIndex = resolved.pathname.indexOf("/vs/");
51
+ if (vsIndex <= 0) return void 0;
52
+ return normalizeBaseUrl(`${resolved.origin}${resolved.pathname.slice(0, vsIndex)}`);
53
+ } catch {
54
+ return void 0;
55
+ }
56
+ }
57
+ function makeWorkerUrl(baseUrl) {
58
+ if (typeof URL === "undefined" || typeof Blob === "undefined") return void 0;
59
+ const normalized = normalizeBaseUrl(baseUrl);
60
+ const workerMainUrl = `${normalized}vs/base/worker/workerMain.js`;
61
+ const source = `self.MonacoEnvironment={baseUrl:${JSON.stringify(normalized)}};importScripts(${JSON.stringify(workerMainUrl)});`;
62
+ try {
63
+ return URL.createObjectURL(new Blob([source], { type: "text/javascript" }));
64
+ } catch {
65
+ return void 0;
66
+ }
67
+ }
68
+ function ensureMonacoWorkersLegacy(options) {
69
+ if (typeof window === "undefined" || typeof document === "undefined") return;
70
+ try {
71
+ const existing = self.MonacoEnvironment;
72
+ if (existing === null || existing === void 0 ? void 0 : existing.getWorker) return;
73
+ const existingGetWorkerUrl = existing === null || existing === void 0 ? void 0 : existing.getWorkerUrl;
74
+ if (typeof existingGetWorkerUrl === "function") {
75
+ const existingBaseUrl = detectMonacoBaseUrlFromExistingWorkerUrl(existingGetWorkerUrl);
76
+ if (existingBaseUrl) {
77
+ const workerUrl$1 = makeWorkerUrl(existingBaseUrl);
78
+ if (workerUrl$1) self.MonacoEnvironment = { getWorkerUrl() {
79
+ return workerUrl$1;
80
+ } };
81
+ }
82
+ return;
83
+ }
84
+ const baseUrl = (options === null || options === void 0 ? void 0 : options.baseUrl) ?? detectMonacoBaseUrlFromScripts() ?? detectMonacoBaseUrlFromAmdRequire();
85
+ if (!baseUrl) return;
86
+ const workerUrl = makeWorkerUrl(baseUrl);
87
+ if (!workerUrl) return;
88
+ self.MonacoEnvironment = { getWorkerUrl() {
89
+ return workerUrl;
90
+ } };
91
+ } catch {}
92
+ }
93
+
94
+ //#endregion
3
95
  //#region src/preloadMonacoWorkers.legacy.ts
4
96
  async function preloadMonacoWorkers() {
5
97
  if (typeof window === "undefined" || typeof document === "undefined") return;
98
+ ensureMonacoWorkersLegacy();
6
99
  const env = self.MonacoEnvironment;
7
100
  const getWorkerUrl = env === null || env === void 0 ? void 0 : env.getWorkerUrl;
8
101
  if (typeof getWorkerUrl !== "function") return;
@@ -24,4 +117,8 @@ async function preloadMonacoWorkers() {
24
117
  }
25
118
 
26
119
  //#endregion
27
- export { RevealStrategy, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
120
+ //#region src/index.legacy.ts
121
+ ensureMonacoWorkersLegacy();
122
+
123
+ //#endregion
124
+ export { RevealStrategy, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, ensureMonacoWorkersLegacy, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stream-monaco",
3
3
  "type": "module",
4
- "version": "0.0.16",
4
+ "version": "0.0.17",
5
5
  "description": "A framework-agnostic library for integrating Monaco Editor with Shiki highlighting, optimized for streaming updates.",
6
6
  "author": "Simon He",
7
7
  "license": "MIT",