nuxt-surrealdb
Version:
A Nuxt module aimed to simplify the use of SurrealDB
47 lines (46 loc) • 1.16 kB
JavaScript
import { getCookie } from "h3";
import {
defuDbs,
getDatabasePreset
} from "#surrealdb/utils/overrides";
import {
useRuntimeConfig
} from "#imports";
let dbs;
export function useSurrealDatabases(event, databasePreset) {
if (dbs) {
if (!databasePreset) return dbs;
return dbs[databasePreset];
}
dbs = {
default: {}
};
const {
surrealdb: { databases: serverDbs },
public: { surrealdb: { databases } }
} = useRuntimeConfig(event);
for (const _db in { ...databases, ...serverDbs }) {
const db = _db;
dbs[db] = defuDbs(
serverDbs[db],
databases[db],
serverDbs.default,
databases.default
);
}
if (!databasePreset) return dbs;
return dbs[databasePreset];
}
export function useSurrealPreset(...args) {
if (typeof args[0] !== "undefined" && !("node" in args[0])) {
args.unshift(void 0);
}
let [event, overrides] = args;
const { auth } = useRuntimeConfig(event).public.surrealdb;
return getDatabasePreset({
authDatabase: auth.database,
databases: useSurrealDatabases(event),
overrides,
userToken: event ? getCookie(event, auth.cookieName) : void 0
});
}