@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
JavaScript
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