@lucidcms/core
Version:
The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.
28 lines (27 loc) • 1.55 kB
text/typescript
import DatabaseAdapter from "./adapter-base.mjs";
import { EnvironmentVariables, RuntimeArtifactProvider } from "../runtime/types.mjs";
//#region src/libs/db/adapter-factory.d.ts
type DatabaseAdapterOptionsFactory<TOptions> = (env: EnvironmentVariables) => TOptions | Promise<TOptions>;
type DatabaseAdapterFactory<TAdapter extends DatabaseAdapter = DatabaseAdapter> = {
adapter: string;
resolve: (env: EnvironmentVariables) => TAdapter | Promise<TAdapter>;
hooks?: {
runtime?: RuntimeArtifactProvider;
};
};
type DatabaseAdapterCreator<TAdapter extends DatabaseAdapter = DatabaseAdapter> = DatabaseAdapterFactory<TAdapter> & {
__lucidDatabaseAdapterCreator: true;
};
declare const createDatabaseAdapterFactory: <TAdapter extends DatabaseAdapter = DatabaseAdapter>(props: {
adapter: string;
resolve: (env: EnvironmentVariables) => TAdapter | Promise<TAdapter>;
hooks?: DatabaseAdapterFactory<TAdapter>["hooks"];
}) => DatabaseAdapterFactory<TAdapter>;
declare const createDatabaseAdapterCreator: <TCreator extends (...args: any[]) => unknown, TAdapter extends DatabaseAdapter = DatabaseAdapter>(creator: TCreator, props: {
adapter: string;
resolve: (env: EnvironmentVariables) => TAdapter | Promise<TAdapter>;
hooks?: DatabaseAdapterFactory<TAdapter>["hooks"];
}) => TCreator & DatabaseAdapterCreator<TAdapter>;
//#endregion
export { DatabaseAdapterCreator, DatabaseAdapterFactory, DatabaseAdapterOptionsFactory, createDatabaseAdapterCreator, createDatabaseAdapterFactory };
//# sourceMappingURL=adapter-factory.d.mts.map