nuxt-surrealdb
Version:
A Nuxt module aimed to simplify the use of SurrealDB
57 lines (54 loc) • 1.47 kB
JavaScript
import { defineNuxtModule, createResolver, addPlugin, addImportsDir, addServerImportsDir } from '@nuxt/kit';
import { defu } from 'defu';
const module = defineNuxtModule({
meta: {
name: "nuxt-surrealdb",
configKey: "surrealdb",
compatibility: {
nuxt: ">=3.10.0"
}
},
defaults: {
auth: {
adminMaxAge: 60 * 60 * 24 * 7,
database: "default",
sessionName: "nuxt-session",
cookieName: "nuxt-surrealdb",
sameSite: "lax"
},
databases: {
default: {
host: "",
ws: "",
NS: "",
DB: "",
SC: "",
AC: ""
}
}
},
setup(options, nuxt) {
const { resolve } = createResolver(import.meta.url);
const runtimeDir = resolve("./runtime");
nuxt.options.build.transpile.push(runtimeDir);
nuxt.options.alias["#surrealdb"] = runtimeDir;
nuxt.options.runtimeConfig.public.surrealdb = defu(
nuxt.options.runtimeConfig.public.surrealdb,
{
auth: options.auth,
databases: options.databases
}
);
nuxt.options.runtimeConfig.surrealdb = defu(
nuxt.options.runtimeConfig.surrealdb,
options.server,
{
databases: nuxt.options.runtimeConfig.public.surrealdb.databases
}
);
addPlugin(resolve(runtimeDir, "plugin"));
addImportsDir(resolve(runtimeDir, "composables"));
addServerImportsDir(resolve(runtimeDir, "server", "utils"));
}
});
export { module as default };