Estoy tratando de construir un patrón de decorador que debería tener 2 parámetros. El primer parámetro es la función que debe decorarse y el segundo es la matriz de funciones que debe aplicarse a la función principal.
Por ejemplo:
const decoratedFunc = decorate(shouldDecoratedFunc, [validate, confirmMessage("Are you sure")] function shouldDecoratedFunc(a, b, c) { return a + b + c; }El problema es que cuando construyo la función de decorar simplemente no puedo pasar los parámetros de la función que debería ser decorada a la función de decorar. Así que realmente no sé qué hacer. O cómo lograr esto.
¿Alguien puede ayudarme a construir algo como esto?
Lo mejor que pude hacer es a continuación y en realidad funciona.
El problema con este es que cuando quiero ejecutar la función que decoró condicionalmente, simplemente no puedo.
function decorator(target, decorators) { const name = target.name const descriptor = Object.getOwnPropertyDescriptor(target, "prototype") return (...args) => { decorators.forEach(func => { if (func instanceof Function) func(target.bind(this, ...args) ,name, descriptor) }) target.call(this, ...args) } }Estoy abierto a cualquier idea.