nestapp/src/modules/config/utils.ts
2025-06-08 14:26:04 +08:00

28 lines
780 B
TypeScript

import { isNil } from 'lodash';
import { ConnectionOption, ConnectionRst } from './types';
export const createConnectionOptions = <T extends RecordAny>(
config: ConnectionOption<T> | ConnectionOption<T>[],
) => {
const options = (
Array.isArray(config) ? config : [{ ...config, name: 'default' }]
) as ConnectionRst<T>;
if (options.length <= 0) {
return undefined;
}
const names = options.map(({ name }) => name);
if (!names.includes('default')) {
options[0].name = 'default';
}
return options
.filter(({ name }) => !isNil(name))
.reduce((o, n) => {
const oldNames = o.map(({ name }) => name) as string[];
return oldNames.includes(n.name) ? o : [...o, n];
}, []);
};