Cara resumindo bastante... Todo tipo que não é primitivo no javascript ele sempre se passa como referência para o parametro, ou seja, se modificar o parametro dentro da function, o valor referido também é modificado. Quando, são tipo primitivos (inteiro, por exemplo) o javascript sempre passa o valor e nunca a referência e isso nunca acontece..
Para resolver seu problema você deve ou fazer uma copia do object e passar pro function ou reatribuir seu parametro com a modificação ou criar um novo object com os dados do antigo e passar os novos dados
export function refreshDB(db_name) {
const db = { name: db_name, color: "#000" }
console.log(db)
const new_db = resetTagColors(db)
console.log(new_db)
}
function resetTagColors(database) {
return {
...database,
color: ""
}
}
(Tentei explicar de uma forma bem resumida, algumas palavras que utilizei, talvez nem sejam adequadas, mas a logica é essa)