modern-monaco 0.1.9 → 0.2.0

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
@@ -93,7 +93,7 @@ export default {
93
93
  },
94
94
  );
95
95
  return new Response(
96
- /* html */`
96
+ /* html */ `
97
97
  ${editorHTML}
98
98
  <script type="module">
99
99
  import { hydrate } from "https://esm.sh/modern-monaco";
@@ -337,8 +337,6 @@ export interface LSPLanguageConfig {
337
337
  compilerOptions?: ts.CompilerOptions;
338
338
  /** The global import map. */
339
339
  importMap?: ImportMap;
340
- /** The version of TypeScript from the CDN. Default: ">= 5.0.0" */
341
- tsVersion?: string;
342
340
  };
343
341
  }
344
342
  ```
@@ -348,7 +346,7 @@ export interface LSPLanguageConfig {
348
346
  modern-monaco uses [import maps](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type/importmap) to resolve **bare specifier** imports in JavaScript/TypeScript. By default, modern-monaco detects the `importmap` from the root `index.html` in the workspace.
349
347
 
350
348
  ```js
351
- const indexHtml = /* html */`<!DOCTYPE html>
349
+ const indexHtml = /* html */ `<!DOCTYPE html>
352
350
  <html>
353
351
  <head>
354
352
  <script type="importmap">
@@ -1,5 +1,5 @@
1
1
  // src/cache.ts
2
- import { defineProperty, openIDB, promisifyIDBRequest, toURL } from "./util.js";
2
+ import { defineProperty, openIDB, promisifyIDBRequest, toURL } from "./util.mjs";
3
3
  var IndexedDB = class {
4
4
  #db;
5
5
  constructor(name) {
@@ -1,21 +1,9 @@
1
- // src/lsp/index.ts
2
- function createWebWorker(url, name) {
3
- let workerUrl = url;
4
- if (url.origin !== location.origin) {
5
- workerUrl = URL.createObjectURL(new Blob([`import "${url.href}"`], { type: "application/javascript" }));
6
- }
7
- return new Worker(workerUrl, {
8
- type: "module",
9
- name: name ?? url.pathname.slice(1).split("/").slice(-2).join("/")
10
- });
11
- }
12
-
13
1
  // src/core.ts
14
- import { getExtnameFromLanguageId, getLanguageIdFromPath, grammars, initShiki, setDefaultWasmLoader, themes } from "./shiki.js";
15
- import { initShikiMonacoTokenizer, registerShikiMonacoTokenizer } from "./shiki.js";
16
- import { render } from "./shiki.js";
17
- import { getWasmInstance } from "./shiki-wasm.js";
18
- import { ErrorNotFound, Workspace } from "./workspace.js";
2
+ import { getExtnameFromLanguageId, getLanguageIdFromPath, grammars, initShiki, setDefaultWasmLoader, themes } from "./shiki.mjs";
3
+ import { initShikiMonacoTokenizer, registerShikiMonacoTokenizer } from "./shiki.mjs";
4
+ import { render } from "./shiki.mjs";
5
+ import { getWasmInstance } from "./shiki-wasm.mjs";
6
+ import { ErrorNotFound, Workspace } from "./workspace.mjs";
19
7
 
20
8
  // src/util.ts
21
9
  var dec = /* @__PURE__ */ new TextDecoder();
@@ -48,7 +36,7 @@ function promiseWithResolvers() {
48
36
  }
49
37
 
50
38
  // src/core.ts
51
- import { init as initLS } from "./lsp/language-service.js";
39
+ import { init as initLS } from "./lsp/language-service.mjs";
52
40
  var editorProps = [
53
41
  "autoDetectHighContrast",
54
42
  "automaticLayout",
@@ -256,7 +244,7 @@ async function lazy(options) {
256
244
  }
257
245
  }
258
246
  async function createEditor() {
259
- const monaco = await (monacoPromise ?? (monacoPromise = loadMonaco(highlighter, workspace, options?.lsp, onDidEditorWorkerResolve)));
247
+ const monaco = await (monacoPromise ?? (monacoPromise = loadMonaco(highlighter, workspace, options?.lsp)));
260
248
  const editor = monaco.editor.create(containerEl, renderOptions);
261
249
  if (workspace) {
262
250
  const storeViewState = () => {
@@ -334,8 +322,8 @@ async function lazy(options) {
334
322
  function hydrate(options) {
335
323
  return lazy(options);
336
324
  }
337
- async function loadMonaco(highlighter, workspace, lsp, onDidEditorWorkerResolve2) {
338
- const monaco = await import("./editor-core.js");
325
+ async function loadMonaco(highlighter, workspace, lsp) {
326
+ const monaco = await import("./editor-core.mjs");
339
327
  const lspProviderMap = { ...lspProviders, ...lsp?.providers };
340
328
  workspace?.setupMonaco(monaco);
341
329
  if (Object.keys(lspProviderMap).length > 0) {
@@ -345,31 +333,20 @@ async function loadMonaco(highlighter, workspace, lsp, onDidEditorWorkerResolve2
345
333
  const styleEl = document.createElement("style");
346
334
  styleEl.id = "monaco-editor-core-css";
347
335
  styleEl.media = "screen";
348
- styleEl.textContent = monaco.CSS;
336
+ styleEl.textContent = monaco.cssBundle;
349
337
  document.head.appendChild(styleEl);
350
338
  }
351
339
  Reflect.set(globalThis, "MonacoEnvironment", {
352
340
  getWorker: async (_workerId, label) => {
353
- let provider = lspProviderMap[label];
354
- if (!provider) {
355
- provider = Object.values(lspProviderMap).find((p) => p.aliases?.includes(label));
356
- }
357
- const url = provider ? (await provider.import()).getWorkerUrl() : monaco.getWorkerUrl();
358
- if (label === "typescript") {
359
- const tsVersion = lsp?.typescript?.tsVersion;
360
- if (tsVersion && (url.hostname === "esm.sh" || url.hostname.endsWith(".esm.sh"))) {
361
- url.searchParams.set("deps", `typescript@${tsVersion}`);
362
- }
363
- }
364
- const worker = createWebWorker(url, void 0);
365
- if (!provider) {
341
+ if (label === "editorWorkerService") {
342
+ const worker = monaco.createEditorWorkerMain();
366
343
  const onMessage = (e) => {
367
- onDidEditorWorkerResolve2?.();
368
344
  worker.removeEventListener("message", onMessage);
345
+ onDidEditorWorkerResolve();
369
346
  };
370
347
  worker.addEventListener("message", onMessage);
348
+ return worker;
371
349
  }
372
- return worker;
373
350
  },
374
351
  getLanguageIdFromUri: (uri) => getLanguageIdFromPath(uri.path),
375
352
  getExtnameFromLanguageId
@@ -452,7 +429,7 @@ async function loadMonaco(highlighter, workspace, lsp, onDidEditorWorkerResolve2
452
429
  }
453
430
  }
454
431
  if (lspProvider) {
455
- lspProvider.import().then(({ setup }) => setup(monaco, id, workspace, lsp?.[lspLabel], lsp?.formatting));
432
+ lspProvider.import().then(({ setup }) => setup(monaco, id, lsp?.[lspLabel], lsp?.formatting, workspace));
456
433
  }
457
434
  });
458
435
  });