diff --git a/wxt.config.ts b/wxt.config.ts
index c64d594..58787f9 100644
--- a/wxt.config.ts
+++ b/wxt.config.ts
@@ -1,6 +1,59 @@
import { defineConfig } from 'wxt';
import tailwindcss from '@tailwindcss/vite';
-import path from 'path';
+import path from 'node:path';
+
+// These are matched in the plugin to inject stubs
+const defineFunctions = [
+ 'defineBackground',
+ 'defineContentScript',
+ 'defineUnlistedScript',
+ 'defineWxtPlugin',
+ 'defineAppConfig',
+];
+
+// Stub function definitions to inject
+const stubs = `
+function defineBackground(arg) {
+ if (arg == null || typeof arg === "function") return { main: arg };
+ return arg;
+}
+function defineContentScript(options) { return options; }
+function defineUnlistedScript(options) { return options; }
+function defineWxtPlugin(setup) { return { name: 'plugin', setup }; }
+function defineAppConfig(config) { return config; }
+`;
+
+function createBetterLectioPlugin() {
+ return {
+ name: 'betterlectio-stubs',
+ enforce: 'pre' as const,
+ transformInclude(id: string) {
+ // Only transform project entrypoints, not node_modules
+ return !id.includes('node_modules') && /\.[jt]sx?$/.test(id);
+ },
+ async transform(code: string, id: string) {
+ // Find any undefined identifiers that match our stubs
+ const identifiersNeeded = new Set<string>();
+ const varPattern = /\b([a-zA-Z_$][a-zA-Z0-9_$]*)\b/g;
+ let match;
+ while ((match = varPattern.exec(code)) !== null) {
+ if (defineFunctions.includes(match[1])) {
+ identifiersNeeded.add(match[1]);
+ }
+ }
+
+ if (identifiersNeeded.size === 0) return;
+
+ // Inject stub functions
+ const newCode = stubs + code;
+
+ return {
+ code: newCode,
+ map: null
+ };
+ },
+ };
+}
// See https://wxt.dev/api/config.html
export default defineConfig({
@@ -70,7 +123,7 @@ export default defineConfig({
],
},
vite: () => ({
- plugins: [tailwindcss()],
+ plugins: [tailwindcss(), createBetterLectioPlugin()],
resolve: {
alias: {
'@': path.resolve(__dirname, './'),
Kan godt være at det er mig som er dum
Siden firefox version var meget gammel valgte jeg at prøve at bygge den med
bun.Men fik en error:
Jeg køre dog på NixOS, prøvede også i en Arch distrobox, men fik også en error.
Jeg satte opencode på den og den lavede nogle ændringer som fik `bun install` til at virke:
(Gad ikke lave en PR, da jeg ikke selv har læst kode, fik dog er virkene version ud af det)
Opencode sagde problemet var:
Vigtig tig, jeg kørte
git clonepå dette repo, da det er det der står under:Installation > From Source, så det kan godt være at det er meningen atmainikke skal virke lige nu. (så burde guiden dog, måske ændres)