stream-monaco 0.0.9 → 0.0.10

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/dist/index.cjs CHANGED
@@ -1998,6 +1998,12 @@ let languagesRegistered = false;
1998
1998
  let currentThemes = [];
1999
1999
  let currentLanguages = [];
2000
2000
  let themeRegisterPromise = null;
2001
+ let registrationQueue = Promise.resolve();
2002
+ function enqueueRegistration(task) {
2003
+ const next = registrationQueue.then(task, task);
2004
+ registrationQueue = next.then(() => void 0, () => void 0);
2005
+ return next;
2006
+ }
2001
2007
  function setThemeRegisterPromise(p) {
2002
2008
  return themeRegisterPromise = p;
2003
2009
  }
@@ -2074,27 +2080,29 @@ async function getOrCreateHighlighter(themes, languages$1) {
2074
2080
  * standalone renderer to use the new theme without recreating everything.
2075
2081
  */
2076
2082
  async function registerMonacoThemes(themes, languages$1) {
2077
- registerMonacoLanguages(languages$1);
2078
- if (themesRegistered && arraysEqual(themes, currentThemes) && arraysEqual(languages$1, currentLanguages)) {
2079
- const existing = highlighterCache.get(serializeThemes(themes));
2080
- return existing ? existing.promise : Promise.resolve(null);
2081
- }
2082
- const p = (async () => {
2083
- const highlighter = await getOrCreateHighlighter(themes, languages$1);
2084
- (0, __shikijs_monaco.shikiToMonaco)(highlighter, monaco_shim_exports);
2085
- themesRegistered = true;
2086
- currentThemes = themes.slice();
2087
- currentLanguages = languages$1.slice();
2088
- return highlighter;
2089
- })();
2090
- setThemeRegisterPromise(p);
2091
- try {
2092
- const res = await p;
2093
- return res;
2094
- } catch (e) {
2095
- setThemeRegisterPromise(null);
2096
- throw e;
2097
- }
2083
+ return enqueueRegistration(async () => {
2084
+ registerMonacoLanguages(languages$1);
2085
+ if (themesRegistered && arraysEqual(themes, currentThemes) && arraysEqual(languages$1, currentLanguages)) {
2086
+ const existing = highlighterCache.get(serializeThemes(themes));
2087
+ return existing ? existing.promise : Promise.resolve(null);
2088
+ }
2089
+ const p = (async () => {
2090
+ const highlighter = await getOrCreateHighlighter(themes, languages$1);
2091
+ (0, __shikijs_monaco.shikiToMonaco)(highlighter, monaco_shim_exports);
2092
+ themesRegistered = true;
2093
+ currentThemes = themes.slice();
2094
+ currentLanguages = languages$1.slice();
2095
+ return highlighter;
2096
+ })();
2097
+ setThemeRegisterPromise(p);
2098
+ try {
2099
+ const res = await p;
2100
+ return res;
2101
+ } catch (e) {
2102
+ setThemeRegisterPromise(null);
2103
+ throw e;
2104
+ }
2105
+ });
2098
2106
  }
2099
2107
  function registerMonacoLanguages(languages$1) {
2100
2108
  if (languagesRegistered && arraysEqual(languages$1, currentLanguages)) return;
package/dist/index.js CHANGED
@@ -1970,6 +1970,12 @@ let languagesRegistered = false;
1970
1970
  let currentThemes = [];
1971
1971
  let currentLanguages = [];
1972
1972
  let themeRegisterPromise = null;
1973
+ let registrationQueue = Promise.resolve();
1974
+ function enqueueRegistration(task) {
1975
+ const next = registrationQueue.then(task, task);
1976
+ registrationQueue = next.then(() => void 0, () => void 0);
1977
+ return next;
1978
+ }
1973
1979
  function setThemeRegisterPromise(p) {
1974
1980
  return themeRegisterPromise = p;
1975
1981
  }
@@ -2046,27 +2052,29 @@ async function getOrCreateHighlighter(themes, languages$1) {
2046
2052
  * standalone renderer to use the new theme without recreating everything.
2047
2053
  */
2048
2054
  async function registerMonacoThemes(themes, languages$1) {
2049
- registerMonacoLanguages(languages$1);
2050
- if (themesRegistered && arraysEqual(themes, currentThemes) && arraysEqual(languages$1, currentLanguages)) {
2051
- const existing = highlighterCache.get(serializeThemes(themes));
2052
- return existing ? existing.promise : Promise.resolve(null);
2053
- }
2054
- const p = (async () => {
2055
- const highlighter = await getOrCreateHighlighter(themes, languages$1);
2056
- shikiToMonaco(highlighter, monaco_shim_exports);
2057
- themesRegistered = true;
2058
- currentThemes = themes.slice();
2059
- currentLanguages = languages$1.slice();
2060
- return highlighter;
2061
- })();
2062
- setThemeRegisterPromise(p);
2063
- try {
2064
- const res = await p;
2065
- return res;
2066
- } catch (e) {
2067
- setThemeRegisterPromise(null);
2068
- throw e;
2069
- }
2055
+ return enqueueRegistration(async () => {
2056
+ registerMonacoLanguages(languages$1);
2057
+ if (themesRegistered && arraysEqual(themes, currentThemes) && arraysEqual(languages$1, currentLanguages)) {
2058
+ const existing = highlighterCache.get(serializeThemes(themes));
2059
+ return existing ? existing.promise : Promise.resolve(null);
2060
+ }
2061
+ const p = (async () => {
2062
+ const highlighter = await getOrCreateHighlighter(themes, languages$1);
2063
+ shikiToMonaco(highlighter, monaco_shim_exports);
2064
+ themesRegistered = true;
2065
+ currentThemes = themes.slice();
2066
+ currentLanguages = languages$1.slice();
2067
+ return highlighter;
2068
+ })();
2069
+ setThemeRegisterPromise(p);
2070
+ try {
2071
+ const res = await p;
2072
+ return res;
2073
+ } catch (e) {
2074
+ setThemeRegisterPromise(null);
2075
+ throw e;
2076
+ }
2077
+ });
2070
2078
  }
2071
2079
  function registerMonacoLanguages(languages$1) {
2072
2080
  if (languagesRegistered && arraysEqual(languages$1, currentLanguages)) return;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stream-monaco",
3
3
  "type": "module",
4
- "version": "0.0.9",
4
+ "version": "0.0.10",
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",