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 +8 -0
- package/dist/index.cjs +19 -6
- package/dist/index.d.cts +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +19 -7
- package/dist/index.legacy.cjs +98 -0
- package/dist/index.legacy.d.cts +6 -1
- package/dist/index.legacy.d.ts +6 -1
- package/dist/index.legacy.js +98 -1
- package/package.json +1 -1
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/
|
|
4
|
-
|
|
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 (
|
|
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
|
-
|
|
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
|
-
|
|
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/
|
|
4
|
-
|
|
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 (
|
|
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
|
-
|
|
33
|
+
//#region src/index.ts
|
|
34
|
+
ensureMonacoWorkers();
|
|
35
|
+
|
|
36
|
+
//#endregion
|
|
37
|
+
export { RevealStrategy, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, ensureMonacoWorkers, getOrCreateHighlighter, preloadMonacoWorkers, registerMonacoThemes, useMonaco };
|
package/dist/index.legacy.cjs
CHANGED
|
@@ -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;
|
package/dist/index.legacy.d.cts
CHANGED
|
@@ -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
|
-
|
|
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 };
|
package/dist/index.legacy.d.ts
CHANGED
|
@@ -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
|
-
|
|
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 };
|
package/dist/index.legacy.js
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
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",
|