Edo Limburg 40ccbbad1a Add storage, dedup modules and infrastructure configuration
- Add storage module with SQLite persistence via better-sqlite3
- Add deduplication module for feed item dedup
- Add infrastructure directory for deployment config
- Add .env.example for environment variables
- Update dependencies: kysely, better-sqlite3, pg
2026-05-05 21:59:50 +02:00

36 lines
1.1 KiB
TypeScript

/**
* Database infrastructure exports.
* Provides configured database instance and schema management.
*/
import { createDatabase } from './connection.js';
import { loadConfig, validateConfig, type DatabaseConfig } from './config.js';
import { migrate, reset } from './schema.js';
import type { Database } from './database.js';
import type { Kysely } from 'kysely';
// Export types
export type { Database, FeedItemTable, SeenIdTable } from './database.js';
export type { DatabaseConfig, DatabaseType, SqliteConfig, PostgresConfig, PostgresUrlConfig } from './config.js';
// Export functions for creating database instances
export { createDatabase, loadConfig, validateConfig, migrate, reset };
/**
* Get a configured database instance.
* Uses environment variables for configuration.
*/
export function getDatabase(): Kysely<Database> {
const config = loadConfig();
validateConfig(config);
return createDatabase(config);
}
/**
* Get a database instance with explicit config (for testing).
*/
export function getDatabaseWithConfig(config: DatabaseConfig): Kysely<Database> {
validateConfig(config);
return createDatabase(config);
}