Skip to content

Commit

Permalink
fix(markdown): make sure messages are serializable
Browse files Browse the repository at this point in the history
  • Loading branch information
nsarrazin committed Feb 26, 2025
1 parent 05af052 commit 4f155c4
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 9 deletions.
4 changes: 3 additions & 1 deletion src/lib/components/chat/MarkdownRenderer.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@
}
resolve(event.data.tokens);
};
worker.postMessage({ content, sources, type: "process" } as IncomingMessage);
worker.postMessage(
JSON.parse(JSON.stringify({ content, sources, type: "process" })) as IncomingMessage
);
});
} else {
return processTokens(content, sources);
Expand Down
10 changes: 3 additions & 7 deletions src/lib/utils/marked.ts
Original file line number Diff line number Diff line change
Expand Up @@ -156,13 +156,9 @@ function createMarkedInstance(sources: WebSearchSource[]): Marked {
html: (html) => escapeHTML(html),
},
gfm: true,
breaks: true,
});
}

export function getMarked(sources: WebSearchSource[]): Marked {
return createMarkedInstance(sources);
}

type CodeToken = {
type: "code";
lang: string;
Expand All @@ -175,7 +171,7 @@ type TextToken = {
};

export async function processTokens(content: string, sources: WebSearchSource[]): Promise<Token[]> {
const marked = getMarked(sources);
const marked = createMarkedInstance(sources);
const tokens = marked.lexer(content);

const processedTokens = await Promise.all(
Expand All @@ -199,7 +195,7 @@ export async function processTokens(content: string, sources: WebSearchSource[])
}

export function processTokensSync(content: string, sources: WebSearchSource[]): Token[] {
const marked = getMarked(sources);
const marked = createMarkedInstance(sources);
const tokens = marked.lexer(content);
return tokens.map((token) => {
if (token.type === "code") {
Expand Down
2 changes: 1 addition & 1 deletion src/lib/workers/markdownWorker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ async function processMessage() {
try {
const { content, sources } = nextMessage;
const processedTokens = await processTokens(content, sources);
postMessage({ type: "processed", tokens: processedTokens } satisfies OutgoingMessage);
postMessage(JSON.parse(JSON.stringify({ type: "processed", tokens: processedTokens })));
} finally {
isProcessing = false;

Expand Down

0 comments on commit 4f155c4

Please sign in to comment.