@vizydrop/logger
Version:
Vizydrop predefined logger based on winston v3
37 lines (30 loc) • 981 B
JavaScript
/*********************************************************************
* © Copyright IBM Corp. 2025
*********************************************************************/
function create(initialAdditionalFields) {
let additionalFields = {...initialAdditionalFields};
function add(fields) {
additionalFields = {
...additionalFields,
...fields,
};
}
function getCurrentValues() {
if (!additionalFields) {
return {};
}
return Object.entries(additionalFields).reduce((acc, [key, value]) => {
acc[key] = typeof value === `function` ? value() : value;
return acc;
}, {});
}
function remove(fields) {
if (fields && Array.isArray(fields)) {
fields.forEach((fieldName) => {
delete additionalFields[fieldName];
});
}
}
return {add, remove, getCurrentValues};
}
module.exports = {create};