UNPKG

@emigrate/cli

Version:

Emigrate is a tool for managing database migrations. It is designed to be simple yet support advanced setups, modular and extensible.

31 lines 1.26 kB
import process from 'node:process'; import { cosmiconfig, defaultLoaders } from 'cosmiconfig'; const commands = ['up', 'list', 'new', 'remove']; const canImportTypeScriptAsIs = Boolean(process.isBun) || typeof Deno !== 'undefined'; const getEmigrateConfig = (config) => { if ('default' in config && typeof config.default === 'object' && config.default !== null) { return config.default; } if (typeof config === 'object' && config !== null) { return config; } return {}; }; export const getConfig = async (command, forceImportTypeScriptAsIs = false) => { const explorer = cosmiconfig('emigrate', { // eslint-disable-next-line @typescript-eslint/naming-convention loaders: forceImportTypeScriptAsIs || canImportTypeScriptAsIs ? { '.ts': defaultLoaders['.js'] } : undefined, }); const result = await explorer.search(); if (!result?.config) { return {}; } const config = getEmigrateConfig(result.config); const commandConfig = config[command]; for (const command of commands) { // eslint-disable-next-line @typescript-eslint/no-dynamic-delete delete config[command]; } return { ...config, ...commandConfig }; }; //# sourceMappingURL=get-config.js.map