UNPKG

nitropage

Version:

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

47 lines (42 loc) 1.14 kB
import type { LocalOptions, S3Options } from "@npio/filesystem"; import { Config as AuthConfig } from "../auth/core/server"; import type { PrismaClientOptions } from "./prisma"; import { createGlobal } from "./util"; export type ServerConfig = { auth: AuthConfig & { salt: string }; database?: { prisma?: PrismaClientOptions; }; filesystem: { defaultDriver: "local" | "s3"; drivers: { local?: LocalOptions; s3?: S3Options; }; }; image: { aspectRatios: string[]; sizes: number[]; placeholder: { name: string; }; maxAge: number; quality: number; }; }; export type ServerConfigOptions = { auth?: Partial<AuthConfig>; database?: ServerConfig["database"]; filesystem?: Partial<Omit<ServerConfig["filesystem"], "drivers">> & { drivers?: { local?: Partial<LocalOptions>; s3?: Partial<S3Options>; }; }; image?: Partial<ServerConfig["image"]>; }; export const [useServerConfig, setServerConfig] = createGlobal<ServerConfig>("npServerConfig"); export const defineServerConfig = function (config: () => ServerConfigOptions) { return config; };