markdown-code-state.ts 586 B

12345678910111213141516171819202122
  1. import type { MarkdownToken } from "./markdown-worker-protocol"
  2. export type RenderedCodeState = {
  3. language: string
  4. generation: number
  5. stableCount: number
  6. unstable: MarkdownToken[]
  7. raw: string
  8. }
  9. export function shouldResetCodeTokens(
  10. previous: RenderedCodeState | undefined,
  11. next: { language: string; generation: number; stableCount: number; raw: string },
  12. ) {
  13. return (
  14. !previous ||
  15. previous.language !== next.language ||
  16. previous.generation !== next.generation ||
  17. next.stableCount < previous.stableCount ||
  18. !next.raw.startsWith(previous.raw)
  19. )
  20. }