feat(esmole): store, sources, registry, manager, backend binders
This commit is contained in:
1 parent
42712d508c
commit
889e844768
11 files changed
+330
No files matched your search
@@ -0,0 +1,18 @@
|
||||
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)
|
||||
})
|
||||
}
|
||||
Reference in new issue
Block a user