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
TypeScript
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>;