- 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
36 lines
1.1 KiB
TypeScript
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);
|
|
}
|