Olá,
Acredito que tenha feito o processo da aula direitinho, mas na hora de rodar a decorator inspect não apareceu no meu console. Alguém pode me ajudar?
Aqui meu código:
export function inspecionar() {
return function(
target: any,
propertyKey: string,
descriptor: PropertyDescriptor
) {
const metodoOriginal = descriptor.value;
descriptor.value = function(...args: any[]) {
console.log(`--- Método ${propertyKey}`);
console.log(`----- parâmetros: ${JSON.stringify(args)}`);
const retorno = metodoOriginal.apply(this, args);
console.log(`-------- retorno: ${JSON.stringify(retorno)}`);
return retorno;
};
return descriptor;
}
}
E caso seja útil, a view.ts:
import { inspecionar } from "../decorators/inspecionar.js";
import { logarTempoDeExecucao } from "../decorators/logar-tempo-de-execucao.js";
export abstract class View<T> {
protected elemento: HTMLElement;
private escapar = false;
constructor(seletor: string, escapar?: boolean) {
const elemento = document.querySelector(seletor);
if (elemento) {
this.elemento = elemento as HTMLElement;
} else {
throw Error(`Seletor ${seletor} não existe no DOM. Verifique`);
}
if (escapar) {
this.escapar = escapar;
}
}
@inspecionar()
@logarTempoDeExecucao(true)
public update(model: T): void {
let template = this.template(model);
if (this.escapar) {
template = template
.replace(/<script>[\s\S]*?<\/script>/, '');
}
this.elemento.innerHTML = template;
}
protected abstract template(model: T): string;
}
Agradeço desde já!