19 lines
880 B
TypeScript
19 lines
880 B
TypeScript
import { createRegistry as coreCreate, type Registry } from '@dbmole/core'
|
|
import { type ConnectionConfig, connectionConfigSchema } from './schema.js'
|
|
import { readConfigFile, readEnvConnections } from './sources.js'
|
|
import { readStore, writeStore } from './store.js'
|
|
|
|
export type EsRegistry = Registry<ConnectionConfig>
|
|
export type RegistryOptions = { storePath: string; configPath?: string; env?: NodeJS.ProcessEnv }
|
|
|
|
export const createRegistry = (options: RegistryOptions): EsRegistry => {
|
|
const env = options.env ?? process.env
|
|
return coreCreate<ConnectionConfig>({
|
|
schema: connectionConfigSchema,
|
|
readStore: () => readStore(options.storePath),
|
|
writeStore: (configs) => writeStore(options.storePath, configs),
|
|
readConfigFile: () => readConfigFile(options.configPath),
|
|
readEnvConnections: () => readEnvConnections(env)
|
|
})
|
|
}
|