UNPKG

nitropage

Version:

A free and open source, extensible visual page builder based on SolidStart.

40 lines (34 loc) 1.02 kB
import { getUser } from "#lib/auth/server"; import { useDatabase } from "#lib/server/prisma"; import { getSettings as getSettings_ } from "#lib/server/settings"; import { createAsync, query, useParams } from "@solidjs/router"; export const getSettings = query(async function ( this: any, params: { projectId?: string; pageId?: string; inherit?: boolean } = { inherit: true, }, ) { "use server"; await getUser({ assert: {} }); const db = useDatabase(); const page = params.pageId ? await db.nitroPage.findUniqueOrThrow({ where: { id: params.pageId, }, }) : undefined; const projectId = params.projectId || (params.inherit ? page?.projectId : undefined); return await getSettings_({ inherit: params.inherit, projectId, pageId: params.pageId, }); }, "np-settings"); export const useProjectSettings = () => { const params = useParams(); return createAsync(() => getSettings({ projectId: params.project }), { deferStream: true, }); };