import type { EntityConfiguration, EntityDatabaseAdapter, IEntityDatabaseAdapterProvider, } from '@expo/entity'; import { PostgresEntityDatabaseAdapter } from './PostgresEntityDatabaseAdapter.ts'; export interface PostgresEntityDatabaseAdapterConfiguration { /** * Maximum page size for pagination (first/last parameters). * If not specified, no limit is enforced. */ paginationMaxPageSize?: number; } export class PostgresEntityDatabaseAdapterProvider implements IEntityDatabaseAdapterProvider { constructor(private readonly configuration: PostgresEntityDatabaseAdapterConfiguration = {}) {} getDatabaseAdapter, TIDField extends keyof TFields>( entityConfiguration: EntityConfiguration, ): EntityDatabaseAdapter { return new PostgresEntityDatabaseAdapter(entityConfiguration, this.configuration); } }