UNPKG

@overture-stack/lyric

Version:
53 lines (52 loc) 1.52 kB
import { NodePgDatabase } from 'drizzle-orm/node-postgres'; import type { DbConfig } from '@overture-stack/lyric-data-model'; import * as schema from '@overture-stack/lyric-data-model/models'; import type { AuthConfig } from '../middleware/auth.js'; import type { ResultOnCommit } from '../utils/types.js'; import { Logger } from './logger.js'; export type AuditConfig = { enabled: boolean; }; export type RecordHierarchyConfig = { pluralizeSchemasName: boolean; }; export type FeaturesConfig = { audit?: AuditConfig; recordHierarchy: RecordHierarchyConfig; }; export type SchemaServiceConfig = { url: string; }; export type LoggerConfig = { level?: string; file?: boolean; }; export type IdServiceConfig = { useLocal: boolean; customAlphabet: string; customSize: number; }; /** * Environment variables to configure internal and external resources * (database, external services, logger, etc) */ export type AppConfig = { auth: AuthConfig; db: DbConfig; features?: FeaturesConfig; idService: IdServiceConfig; logger: LoggerConfig; onFinishCommit?: (resultOnCommit: ResultOnCommit) => void; schemaService: SchemaServiceConfig; }; /** * Base Dependencies required for utils/services */ export interface BaseDependencies { db: NodePgDatabase<typeof schema>; features?: FeaturesConfig; idService: IdServiceConfig; logger: Logger; onFinishCommit?: (resultOnCommit: ResultOnCommit) => void; schemaService: SchemaServiceConfig; }