Estaba creando mi propio decorador para registrar los parámetros de entrada y el resultado de salida para cada método. Por cierto, si uso el decorador con el decorador @Mutation . Ocurre error según el orden de uso.
Mi decorador se parece a:
export const Log = (): MethodDecorator => (target: Object, propertyKey: string, descriptor: PropertyDescriptor) => { const originalMethod = descriptor.value descriptor.value = async function (...args) { console.log(args); // Write input log const result = originalMethod.apply(this, args); console.log(result); // Write output log return result; } return descriptor; }Uso:
@Mutation(() => Question, { name: 'question' }) @Log() async question(@Args('input') input: QuestionInput): Promise<Question> { return await this.questionService.createOne({ ...input }); } No ocurre un error si uso decoradores @Mutation() -> @Log() orden. Pero @Log() -> @Mutation() no funciona.
¿Qué debo revisar primero? ¿Hay alguna otra idea para registrar la entrada y salida de un método?