qwikifiers / qwik-ui

Qwik's official Headless and styled component library
https://qwikui.com
MIT License
604 stars 135 forks source link

[🐞] shiki -> TypeError: onigBinding.UTF8ToString is not a function #876

Closed maiieul closed 1 week ago

maiieul commented 2 months ago

Which package is affected?

Headless Kit

Describe the bug

When switching between headless routes (e.g. /combobox, /select, /collapsible) multiple times in preview, I get:

TypeError: onigBinding.UTF8ToString is not a function at throwLastOnigError (file:///Users/maieul/dev/qwik-ui/node_modules/.pnpm/@shikijs+core@1.6.0/node_modules/@shikijs/core/dist/index.mjs:4677:38) at new OnigScanner (file:///Users/maieul/dev/qwik-ui/node_modules/.pnpm/@shikijs+core@1.6.0/node_modules/@shikijs/core/dist/index.mjs:4883:13) at createOnigScanner (file:///Users/maieul/dev/qwik-ui/node_modules/.pnpm/@shikijs+core@1.6.0/node_modules/@shikijs/core/dist/index.mjs:5024:12) at Object.createOnigScanner (file:///Users/maieul/dev/qwik-ui/node_modules/.pnpm/@shikijs+core@1.6.0/node_modules/@shikijs/core/dist/index.mjs:5358:20) at Grammar.createOnigScanner (file:///Users/maieul/dev/qwik-ui/node_modules/.pnpm/@shikijs+core@1.6.0/node_modules/@shikijs/core/dist/textmate.mjs:2275:30) at new CompiledRule (file:///Users/maieul/dev/qwik-ui/node_modules/.pnpm/@shikijs+core@1.6.0/node_modules/@shikijs/core/dist/textmate.mjs:1270:32) at RegExpSourceList._resolveAnchors (file:///Users/maieul/dev/qwik-ui/node_modules/.pnpm/@shikijs+core@1.6.0/node_modules/@shikijs/core/dist/textmate.mjs:1260:16) at RegExpSourceList.compileAG (file:///Users/maieul/dev/qwik-ui/node_modules/.pnpm/@shikijs+core@1.6.0/node_modules/@shikijs/core/dist/textmate.mjs:1237:56) at IncludeOnlyRule.compileAG (file:///Users/maieul/dev/qwik-ui/node_modules/.pnpm/@shikijs+core@1.6.0/node_modules/@shikijs/core/dist/textmate.mjs:728:57) at prepareRuleSearch (file:///Users/maieul/dev/qwik-ui/node_modules/.pnpm/@shikijs+core@1.6.0/node_modules/@shikijs/core/dist/textmate.mjs:2107:30) node:internal/webstreams/writablestream:982 new ERR_INVALID_STATE.TypeError('WritableStream is closed')); ^

TypeError [ERR_INVALIDSTATE]: Invalid state: WritableStream is closed at writableStreamDefaultWriterWrite (node:internal/webstreams/writablestream:982:7) at WritableStreamDefaultWriter.write (node:internal/webstreams/writablestream:503:12) at f (file:///Users/maieul/dev/qwik-ui/dist/apps/website/server/entry.preview.js:234:2593) at Object.write (file:///Users/maieul/dev/qwik-ui/dist/apps/website/server/entry.preview.js:234:2980) at Object.write (file:///Users/maieul/dev/qwik-ui/dist/apps/website/server/entry.preview.js:25:13234) at file:///Users/maieul/dev/qwik-ui/dist/apps/website/server/entry.preview.js:25:13320 at Array.forEach () at (file:///Users/maieul/dev/qwik-ui/dist/apps/website/server/entry.preview.js:25:13307) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async Promise.all (index 1) { code: 'ERR_INVALID_STATE' }

Node.js v20.15.1

Reproduction

qwik-ui.com

Steps to reproduce

System Info

System:
    OS: macOS 14.5
    CPU: (8) arm64 Apple M2
    Memory: 2.89 GB / 24.00 GB
    Shell: 3.7.1 - /opt/homebrew/bin/fish
  Binaries:
    Node: 22.2.0 - /opt/homebrew/bin/node
    npm: 10.7.0 - /opt/homebrew/bin/npm
    pnpm: 9.5.0 - /usr/local/bin/pnpm
    bun: 1.1.0 - ~/.bun/bin/bun
  Browsers:
    Chrome: 126.0.6478.127
    Safari: 17.5

Additional Information

Not sure when and where this could have been introduced, if it's some code in Qwik UI, Shiki, or Qwik core...

I'll try to update shiki and Qwik, maybe it'll fix it 🤞

Otherwise another idea is to use the regular SSG adopter. That would allow us to use Shiki normally!

thejackshelton commented 1 month ago

I think the fix here is putting shiki in the exclude array of the optimizeDeps vite config.