UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

1 lines 2.1 kB
{"version":3,"file":"adapter-factory.mjs","names":[],"sources":["../../../src/libs/db/adapter-factory.ts"],"sourcesContent":["import type {\n\tEnvironmentVariables,\n\tRuntimeArtifactProvider,\n} from \"../runtime/types.js\";\nimport type DatabaseAdapter from \"./adapter-base.js\";\n\nexport type DatabaseAdapterOptionsFactory<TOptions> = (\n\tenv: EnvironmentVariables,\n) => TOptions | Promise<TOptions>;\n\nexport type DatabaseAdapterFactory<\n\tTAdapter extends DatabaseAdapter = DatabaseAdapter,\n> = {\n\tadapter: string;\n\tresolve: (env: EnvironmentVariables) => TAdapter | Promise<TAdapter>;\n\thooks?: {\n\t\truntime?: RuntimeArtifactProvider;\n\t};\n};\n\nexport type DatabaseAdapterCreator<\n\tTAdapter extends DatabaseAdapter = DatabaseAdapter,\n> = DatabaseAdapterFactory<TAdapter> & {\n\t__lucidDatabaseAdapterCreator: true;\n};\n\nexport const createDatabaseAdapterFactory = <\n\tTAdapter extends DatabaseAdapter = DatabaseAdapter,\n>(props: {\n\tadapter: string;\n\tresolve: (env: EnvironmentVariables) => TAdapter | Promise<TAdapter>;\n\thooks?: DatabaseAdapterFactory<TAdapter>[\"hooks\"];\n}): DatabaseAdapterFactory<TAdapter> => ({\n\tadapter: props.adapter,\n\tresolve: props.resolve,\n\thooks: props.hooks,\n});\n\nexport const createDatabaseAdapterCreator = <\n\t// biome-ignore lint/suspicious/noExplicitAny: preserves overloaded adapter creator signatures\n\tTCreator extends (...args: any[]) => unknown,\n\tTAdapter extends DatabaseAdapter = DatabaseAdapter,\n>(\n\tcreator: TCreator,\n\tprops: {\n\t\tadapter: string;\n\t\tresolve: (env: EnvironmentVariables) => TAdapter | Promise<TAdapter>;\n\t\thooks?: DatabaseAdapterFactory<TAdapter>[\"hooks\"];\n\t},\n): TCreator & DatabaseAdapterCreator<TAdapter> =>\n\tObject.assign(creator, {\n\t\tadapter: props.adapter,\n\t\tresolve: props.resolve,\n\t\thooks: props.hooks,\n\t\t__lucidDatabaseAdapterCreator: true as const,\n\t});\n"],"mappings":"AA0BA,MAAa,EAEX,IAIuC,CACxC,QAAS,EAAM,QACf,QAAS,EAAM,QACf,MAAO,EAAM,KACd,GAEa,GAKZ,EACA,IAMA,OAAO,OAAO,EAAS,CACtB,QAAS,EAAM,QACf,QAAS,EAAM,QACf,MAAO,EAAM,MACb,8BAA+B,EAChC,CAAC"}