stream-monaco 0.0.22 → 0.0.37

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
@@ -151,6 +151,18 @@ yarn add stream-monaco
151
151
 
152
152
  Note: Vue is optional. If you don't use Vue, you don't need to install it.
153
153
 
154
+ ### Example apps
155
+
156
+ - `examples/streaming-demo` — Vue 3 + Vite demo with streaming, diff, and diff UX routes
157
+ - `examples/react-demo` — React + Vite demo with in-place theme/language switching and `appendCode()` streaming
158
+
159
+ Quick start:
160
+
161
+ ```bash
162
+ pnpm -C examples/streaming-demo dev
163
+ pnpm -C examples/react-demo dev
164
+ ```
165
+
154
166
  ### Basic usage (Vue)
155
167
 
156
168
  ```vue
@@ -682,6 +694,8 @@ import { preloadMonacoWorkers } from 'stream-monaco/legacy'
682
694
  preloadMonacoWorkers()
683
695
  ```
684
696
 
697
+ The default `stream-monaco` and `stream-monaco/legacy` entry modules intentionally run a best-effort Monaco worker setup during import. The package metadata marks only those published entry files as side-effectful so tree-shaking stays correct for the rest of the library.
698
+
685
699
  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:
686
700
 
687
701
  ```ts
@@ -721,9 +735,9 @@ pnpm build
721
735
 
722
736
  ### Clearing shiki highlighter cache
723
737
 
724
- The library caches Shiki highlighters internally to avoid recreating them for the same theme combinations. In long-running apps that dynamically create many combinations, you can clear the cache to free memory or reset state (e.g., in tests or on shutdown):
738
+ The library caches Shiki highlighters internally to avoid recreating them for the same theme combinations. In long-running apps that dynamically create many combinations, you can clear the cache to free memory or fully reset the shared highlighter state (e.g., in tests or on shutdown):
725
739
 
726
- - `clearHighlighterCache()` — clears the internal cache
740
+ - `clearHighlighterCache()` — clears cached highlighters and resets the shared Monaco/Shiki highlighter state
727
741
  - `getHighlighterCacheSize()` — returns number of cached entries
728
742
 
729
743
  Call `clearHighlighterCache()` only when highlighters are no longer needed; otherwise, the cache improves performance by reusing instances.
package/README.zh-CN.md CHANGED
@@ -56,6 +56,18 @@ npm install stream-monaco
56
56
  yarn add stream-monaco
57
57
  ```
58
58
 
59
+ ### 示例工程
60
+
61
+ - `examples/streaming-demo`:Vue 3 + Vite 示例,包含 streaming、diff、diff UX 路由
62
+ - `examples/react-demo`:React + Vite 示例,演示不重建编辑器的主题/语言切换与 `appendCode()` 流式追加
63
+
64
+ 快速启动:
65
+
66
+ ```bash
67
+ pnpm -C examples/streaming-demo dev
68
+ pnpm -C examples/react-demo dev
69
+ ```
70
+
59
71
  ### 基础使用(Vue)
60
72
 
61
73
  #### 简单示例
@@ -887,6 +899,8 @@ import { preloadMonacoWorkers } from 'stream-monaco/legacy'
887
899
  preloadMonacoWorkers()
888
900
  ```
889
901
 
902
+ 默认的 `stream-monaco` 与 `stream-monaco/legacy` 入口在模块求值时会做一次 best-effort 的 Monaco worker 安装。包元数据只把这些已发布入口文件标记为有 side effects,其余内部模块仍保持正常 tree-shaking。
903
+
890
904
  #### 2. Diff 编辑器流式更新时内容区空白
891
905
 
892
906
  确保在调用 `createEditor` / `createDiffEditor` 之前已正确配置 Monaco 的 workers(建议尽早调用 `preloadMonacoWorkers()`)。
@@ -939,9 +953,9 @@ pnpm build
939
953
 
940
954
  ### Clearing shiki highlighter cache
941
955
 
942
- The library caches shiki highlighters internally to avoid recreating them for the same theme combinations. In long-running applications that may dynamically create many distinct theme combinations, you can clear the cache to free memory or reset state (for example in tests or on app shutdown):
956
+ The library caches shiki highlighters internally to avoid recreating them for the same theme combinations. In long-running applications that may dynamically create many distinct theme combinations, you can clear the cache to free memory or fully reset the shared highlighter state (for example in tests or on app shutdown):
943
957
 
944
- - `clearHighlighterCache()` — clears the internal cache
958
+ - `clearHighlighterCache()` — clears cached highlighters and resets the shared Monaco/Shiki highlighter state
945
959
  - `getHighlighterCacheSize()` — returns number of cached entries
946
960
 
947
961
  Call `clearHighlighterCache()` when you are certain highlighters are no longer needed (for example during teardown), otherwise leaving the cache enabled provides a performance benefit by reusing previously-created highlighters.
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_preloadMonacoWorkers_shared = require('./preloadMonacoWorkers.shared-D9riw4LN.cjs');
1
+ const require_preloadMonacoWorkers_shared = require('./preloadMonacoWorkers.shared-C0_StL1Z.cjs');
2
2
 
3
3
  //#region src/ensureMonacoWorkers.ts
4
4
  function ensureMonacoWorkers() {
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { RevealStrategy, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, editorWorkerPath, getOrCreateHighlighter, registerMonacoThemes, uniqueWorkerPaths, useMonaco, workerPathByLabel } from "./preloadMonacoWorkers.shared-B-P1keRz.js";
1
+ import { RevealStrategy, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, editorWorkerPath, getOrCreateHighlighter, registerMonacoThemes, uniqueWorkerPaths, useMonaco, workerPathByLabel } from "./preloadMonacoWorkers.shared-BRnjKKQj.js";
2
2
 
3
3
  //#region src/ensureMonacoWorkers.ts
4
4
  function ensureMonacoWorkers() {
@@ -1,4 +1,4 @@
1
- const require_preloadMonacoWorkers_shared = require('./preloadMonacoWorkers.shared-D9riw4LN.cjs');
1
+ const require_preloadMonacoWorkers_shared = require('./preloadMonacoWorkers.shared-C0_StL1Z.cjs');
2
2
  const monaco_editor_esm_vs_basic_languages_cpp_cpp = require_preloadMonacoWorkers_shared.__toESM(require("monaco-editor/esm/vs/basic-languages/cpp/cpp"));
3
3
  const monaco_editor_esm_vs_basic_languages_javascript_javascript = require_preloadMonacoWorkers_shared.__toESM(require("monaco-editor/esm/vs/basic-languages/javascript/javascript"));
4
4
  const monaco_editor_esm_vs_basic_languages_powershell_powershell = require_preloadMonacoWorkers_shared.__toESM(require("monaco-editor/esm/vs/basic-languages/powershell/powershell"));
@@ -1,4 +1,4 @@
1
- import { RevealStrategy, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, monaco_shim_exports, processedLanguage, registerMonacoThemes, useMonaco, workerPathByLabel } from "./preloadMonacoWorkers.shared-B-P1keRz.js";
1
+ import { RevealStrategy, clearHighlighterCache, defaultRevealDebounceMs, detectLanguage, getOrCreateHighlighter, monaco_shim_exports, processedLanguage, registerMonacoThemes, useMonaco, workerPathByLabel } from "./preloadMonacoWorkers.shared-BRnjKKQj.js";
2
2
  import { conf, language } from "monaco-editor/esm/vs/basic-languages/cpp/cpp";
3
3
  import { conf as conf$1, language as language$1 } from "monaco-editor/esm/vs/basic-languages/javascript/javascript";
4
4
  import { conf as conf$2, language as language$2 } from "monaco-editor/esm/vs/basic-languages/powershell/powershell";