async function updateMysql({config}: {config: {
name: string;
}}) {}
async function updateMongo({config}: {config: {datasourceName: string;} }) {}
type Configs = {
mysql: {
name: string;
},
mongodb: {
datasourceName: string;
}
}
const dbTypes = [
{
type: 'mysql',
caller: updateMysql
},
{
type: 'mongodb',
caller: updateMongo
}
]
function processConfig(config: Configs[keyof Configs], dbType: keyof Configs) {
const typeConfig = dbTypes.find(({type}) => type === dbType)!;
if (dbType === 'mysql'){
typeConfig.caller({config: config as Configs['mysql']});
} else {
typeConfig.caller({config: config as Configs['mongodb']});
}
}
async function updateMysql({config}: {config: {
name: string;
}}) {}
async function updateMongo({config}: {config: {datasourceName: string;} }) {}
type Configs = {
mysql: {
name: string;
},
mongodb: {
datasourceName: string;
}
}
const dbTypes = [
{
type: 'mysql',
caller: updateMysql
},
{
type: 'mongodb',
caller: updateMongo
}
]
function processConfig(config: Configs[keyof Configs], dbType: keyof Configs) {
const typeConfig = dbTypes.find(({type}) => type === dbType)!;
if (dbType === 'mysql'){
typeConfig.caller({config: config as Configs['mysql']});
} else {
typeConfig.caller({config: config as Configs['mongodb']});
}
}