nuxt-surrealdb
Version:
A Nuxt module aimed to simplify the use of SurrealDB
28 lines (27 loc) • 798 B
JavaScript
import { createWasmWorkerEngines } from "@surrealdb/wasm";
import WorkerAgent from "@surrealdb/wasm/worker?worker";
import { Surreal, Value } from "surrealdb";
import { markRaw } from "vue";
import { defineNuxtPlugin } from "#imports";
export default defineNuxtPlugin({
name: "surrealdb:memory",
enforce: "pre",
parallel: true,
setup(nuxtApp) {
const { memory: { wasmEngine } = {} } = nuxtApp.$config.public.surrealdb || {};
const client = new Surreal({
engines: createWasmWorkerEngines({
...wasmEngine,
createWorker: () => new WorkerAgent()
}),
codecOptions: {
valueDecodeVisitor: (value) => value instanceof Value ? markRaw(value) : value
}
});
return {
provide: {
surrealMemory: client
}
};
}
});