@designliquido/delegua
Version:
Linguagem de programação simples e moderna usando português estruturado.
40 lines • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Decorador = void 0;
/**
* Um decorador é um construto especial que, em código, existe antes de uma declaração, e
* na avaliação sintática, é colocado juntamente com a próxima declaração.
*/
class Decorador {
constructor(hashArquivo, linha, nome, atributos) {
this.linha = linha;
this.hashArquivo = hashArquivo;
this.nome = nome;
this.atributos = atributos;
}
async aceitar(visitante) {
return Promise.reject(new Error('Este método não deveria ser chamado.'));
}
paraTexto() {
let atributos = '';
for (const chave in this.atributos) {
if (!Object.prototype.hasOwnProperty.call(this.atributos, chave)) {
continue;
}
const valor = this.atributos[chave];
const valorTexto = valor && typeof valor === 'object' && typeof valor.paraTexto === 'function'
? valor.paraTexto()
: valor;
atributos += `${chave}=${valorTexto} `;
}
if (atributos.length > 0) {
return `<decorador nome=${this.nome} ${atributos.slice(0, -1)} />`;
}
return `<decorador nome=${this.nome} />`;
}
paraTextoSaida() {
throw new Error('Método não implementado.');
}
}
exports.Decorador = Decorador;
//# sourceMappingURL=decorador.js.map