Use comlink without vite-plugin-comlink
For some reason the vite-plugin-comlink doesn't seem to work in this constellation. I tried to reproduce in a new vite project and there it did work. But also, the plugin does some horrible magic by replacing a non-existant constructor `ComLinkWorker()` with the `wrap()` method and then the only real benefit is, that we wouldn't need to write the `expose()` method in the worker. So for that reason I'm removing the plugin and using the comlink package directly.main
parent
ff9f3517ec
commit
0701303563
|
@ -69,7 +69,6 @@
|
||||||
"@vitejs/plugin-react": "^4.0.2",
|
"@vitejs/plugin-react": "^4.0.2",
|
||||||
"babel-plugin-formatjs": "^10.5.3",
|
"babel-plugin-formatjs": "^10.5.3",
|
||||||
"typescript": "^4.9.5",
|
"typescript": "^4.9.5",
|
||||||
"vite": "^4.4.1",
|
"vite": "^4.4.1"
|
||||||
"vite-plugin-comlink": "^3.0.5"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { expose } from "comlink";
|
||||||
import * as methods from ".";
|
import * as methods from ".";
|
||||||
import { OpenAIMessage } from "../chat/types";
|
import { OpenAIMessage } from "../chat/types";
|
||||||
import { ChatHistoryTrimmer, ChatHistoryTrimmerOptions } from "./chat-history-trimmer";
|
import { ChatHistoryTrimmer, ChatHistoryTrimmerOptions } from "./chat-history-trimmer";
|
||||||
|
@ -14,3 +15,5 @@ export function countTokensForText(text: string) {
|
||||||
export function countTokensForMessages(messages: OpenAIMessage[]) {
|
export function countTokensForMessages(messages: OpenAIMessage[]) {
|
||||||
return methods.countTokensForMessages(messages);
|
return methods.countTokensForMessages(messages);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
expose({ runChatTrimmer, countTokensForText, countTokensForMessages });
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
|
import { wrap } from "comlink";
|
||||||
import { OpenAIMessage } from "../chat/types";
|
import { OpenAIMessage } from "../chat/types";
|
||||||
import type { ChatHistoryTrimmerOptions } from "./chat-history-trimmer";
|
import type { ChatHistoryTrimmerOptions } from "./chat-history-trimmer";
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import tokenizer from "./worker?worker&url";
|
import tokenizer from "./worker?worker&url";
|
||||||
|
|
||||||
const worker = new ComlinkWorker<typeof import("./worker")>(
|
const worker = wrap<typeof import("./worker")>(
|
||||||
new URL(tokenizer, import.meta.url)
|
new Worker(new URL(tokenizer, import.meta.url), { type: "module" })
|
||||||
);
|
);
|
||||||
|
|
||||||
export async function runChatTrimmer(
|
export async function runChatTrimmer(
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import react from "@vitejs/plugin-react";
|
import react from "@vitejs/plugin-react";
|
||||||
import { defineConfig } from "vite";
|
import { defineConfig } from "vite";
|
||||||
import { comlink } from "vite-plugin-comlink";
|
|
||||||
|
|
||||||
export default defineConfig(() => {
|
export default defineConfig(() => {
|
||||||
return {
|
return {
|
||||||
|
@ -35,10 +34,6 @@ export default defineConfig(() => {
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
comlink(),
|
|
||||||
],
|
],
|
||||||
worker: {
|
|
||||||
plugins: [comlink()],
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue