UNPKG

bknd

Version:

Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, React Router, Astro, Cloudflare, Bun, Node, AWS Lambda & more.

18 lines (17 loc) 936 B
import type { BkndConfig } from "bknd/adapter"; import { type BkndModeConfig } from "./shared"; import { type MaybePromise, type Merge } from ".."; export type BkndHybridModeOptions = { /** * Reader function to read the configuration from the file system. * This is required for hybrid mode to work. */ reader?: (path: string) => MaybePromise<string | object>; /** * Provided secrets to be merged into the configuration */ secrets?: Record<string, any>; }; export type HybridBkndConfig<Args = any> = BkndModeConfig<Args, BkndHybridModeOptions>; export type HybridMode<AdapterConfig extends BkndConfig> = AdapterConfig extends BkndConfig<infer Args> ? BkndModeConfig<Args, Merge<BkndHybridModeOptions & AdapterConfig>> : never; export declare function hybrid<Config extends BkndConfig, Args = Config extends BkndConfig<infer A> ? A : unknown>(hybridConfig: HybridMode<Config>): BkndConfig<Args>;