Estoy usando winston como registrador y en él tiene un espacio de nombres de format y una función al mismo tiempo, por lo que puedo llamar a format() y acceder a otras funciones a través del espacio de nombres format.someFunction() como se ilustra en el código a continuación. Ahora me pregunto cómo puedo crear un objeto como este yo mismo.
const isRequest = format((info, _opts) => { if (info.isRequest) { return info } return false }) export const logger = createLogger({ level: 'info', format: format.combine( format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), format.printf((info) => { return `${info.timestamp} ${info.level}: ${info.message}` }) ), transports: [ new transports.File({ filename: errorLog, level: 'error' }), new transports.File({ filename: requestLog, format: format.combine(isRequest()) }), new transports.File({ filename: combinedLog }) ], exceptionHandlers: [ new transports.File({ filename: exceptionsLog }) ] })Es la expresión de la función de JavaScript. Si lo exportas, funciona más o menos igual. Espero que esto sea lo que quieres decir.
Más sobre expresión de función
let sayHello = function() { console.log("Hello") } sayHello.sayWorld = function() { console.log("World") } sayHello(); sayHello.sayWorld();