bknd
Version:
Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, React Router, Astro, Cloudflare, Bun, Node, AWS Lambda & more.
62 lines (61 loc) • 1.76 kB
TypeScript
import type { AppPlugin, BkndConfig, MaybePromise, Merge } from "..";
export type BkndModeOptions = {
/**
* Whether the application is running in production.
*/
isProduction?: boolean;
/**
* Writer function to write the configuration to the file system
*/
writer?: (path: string, content: string) => MaybePromise<void>;
/**
* Configuration file path
*/
configFilePath?: string;
/**
* Types file path
* @default "bknd-types.d.ts"
*/
typesFilePath?: string;
/**
* Syncing secrets options
*/
syncSecrets?: {
/**
* Whether to enable syncing secrets
*/
enabled?: boolean;
/**
* Output file path
*/
outFile?: string;
/**
* Format of the output file
* @default "env"
*/
format?: "json" | "env";
/**
* Whether to include secrets in the output file
* @default false
*/
includeSecrets?: boolean;
};
/**
* Determines whether to automatically sync the schema if not in production.
* @default true
*/
syncSchema?: boolean | {
force?: boolean;
drop?: boolean;
};
};
export type BkndModeConfig<Args = any, Additional = {}> = BkndConfig<Args, Merge<BkndModeOptions & Additional>>;
export declare function makeModeConfig<Args = any, Config extends BkndModeConfig<Args> = BkndModeConfig<Args>>({ app, ..._config }: Config, args: Args): Promise<{
config: Omit<Config, "app">;
isProd: boolean | NonNullable<Config["isProduction"]>;
plugins: AppPlugin[];
syncSchemaOptions: (Config["syncSchema"] & object) | {
force: boolean;
drop: boolean;
};
}>;