@designliquido/delegua
Version:
Linguagem de programação simples e moderna usando português estruturado.
202 lines • 7.25 kB
JavaScript
;
/**
* Biblioteca padrão para a manipulação de textos.
*
* Contém as principais funções para lidar com textos.
*
* @author André G.
*/
Object.defineProperty(exports, "__esModule", { value: true });
const excecoes_1 = require("../../../excecoes");
// Constantes úteis
/**
* Conjunto de todas as letraas minúsculas
*/
module.exports.letras_minusculas = 'abcdefghijklmnopqrstuvwxyz';
/**
* Conjunto de todas as letraas maiúsculas
*/
module.exports.letras_maiusculas = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
/**
* Conjunto de todas as letraas
*/
module.exports.letras = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
/**
* Conjunto de todas os dígitos
*/
module.exports.digitos = '0123456789';
/**
* Conjuto de pontuções
*/
module.exports.pontuacoes = '!"' + "#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";
// Funções de Manipulação de textos.
/**
* Converte otexto passado para maiúsculo.
*
* @param {string} texto o texto a ser convertido.
* @return {string} a string convertida.
*/
module.exports.maiusculo = function (texto) {
if (typeof texto !== 'string') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O parâmetro passado deve ser um texto');
}
return texto.toUpperCase();
};
/**
* Converte o texto passado para minúsculo.
*
* @param {string} texto o texto a ser convertido.
* @return {string} a string convertida.
*/
module.exports.minusculo = function (texto) {
if (typeof texto !== 'string') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O parâmetro passado deve ser um texto');
}
return texto.toLowerCase();
};
/**
* Verifica se um texto possui um subtexto.
*
* @param {string} texto o texto a ser checado.
* @param {string} subtexto o subtexto a ser proucurado.
* @return {boolean} verdadeiro se o texto possui o subtexto falso caso contrário.
*/
module.exports.contem = function (texto, subtexto) {
if (typeof texto !== 'string') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O parâmetro passado deve ser um texto');
}
if (typeof subtexto !== 'string') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O segundo parâmetro também deve ser um texto');
}
return texto.includes(subtexto);
};
/**
* Posiciona os argumentos fornecidos no texto.
*
* Note que: o texto precisa estar na forma `"Meu texto {}"`
* onde o `{}` será substituído pelo primeiro argumento da função.
*
* Ex.: `textos.formate("Texto {} {} ", "número", 1)` -> `"Texto número 1"`.
*
* @param {string} texto o texto a ser formatado.
* @param {any[]} argumentos vetor de argumentos a serem posicionados.
* @return {string} o texto formatado.
*/
module.exports.formate = function (texto, ...argumentos) {
if (typeof texto !== 'string') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O parâmetro passado deve ser um texto');
}
for (let i = 0; i < argumentos.length; i++) {
let value = argumentos[i];
if (typeof value === 'boolean') {
value = value ? 'verdadeiro' : 'falso';
}
if (value === null) {
value = 'nulo';
}
if (typeof value === 'object') {
value = '<dicionário>';
}
texto = texto.replace('{}', value);
}
return texto;
};
/**
* Divide o texto passado no em um vetor de subtextos.
*
* @param {string} texto o texto a ser dividido.
* @param {string} separador o texto usado para a divisão.
* @param {number} limite um inteiro que limita o número de divisões.
*
* @returns {string[]} um vetor contendo os textos divididos.
*/
module.exports.dividir = function (texto, separador = '', limite = Number.MAX_SAFE_INTEGER) {
if (typeof texto !== 'string') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O parâmetro passado deve ser um texto');
}
if (typeof separador !== 'string') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O separador passado deve ser um texto');
}
if (typeof limite !== 'number') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O limite passado deve ser um número');
}
return texto.split(separador, limite);
};
/**
* Retorna o tamanho de um texto.
*
* @param {string} texto o texto para obter o tamanho.
* @return {number} o tamanho do texto.
*/
module.exports.tamanho = function (texto) {
if (typeof texto !== 'string') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O parâmetro passado deve ser um texto');
}
return texto.length;
};
/**
* Repete um texto fornecido.
*
* @param {string} texto o texto para obter o tamanho.
* @param {number} contador o número de cópias.
* @return {string} um texto com o número de cópias do texto fornecido.
*/
module.exports.repita = function (texto, contador = 0) {
if (typeof texto !== 'string') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O parâmetro passado deve ser um texto');
}
if (typeof contador !== 'number') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O contador passado deve ser um número');
}
return texto.repeat(contador);
};
/**
* Substitui em um texto fornecido o padrão indicado por um novo valor.
*
* @param {string} texto o texto para obter o tamanho.
* @param {string} texto_buscado o texto ou expressão regular para ser substituído.
* @param {string} novo_texto o novo texto para substituição.
* @return {string} um novo texto com os valores substituídos.
*/
module.exports.substituir = function (texto, texto_buscado, novo_texto) {
if (typeof texto !== 'string') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O parâmetro passado deve ser um texto');
}
if (typeof texto_buscado !== 'string') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O padrão passado deve ser um texto');
}
if (typeof novo_texto !== 'string') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O novo valor deve ser um texto');
}
return texto.replace(texto_buscado, novo_texto);
};
/**
* Busca um subtexto em um texto.
*
* @param {string} texto o texto original.
* @param {string} texto_buscado o texto que deve ser buscado ou expressão regular.
*
* @returns {number} o índice da primeira ocorrência no texto fornecido ou -1 caso contrário.
*/
module.exports.busca = function (texto, texto_buscado) {
if (typeof texto !== 'string') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O parâmetro passado deve ser um texto');
}
if (typeof texto_buscado !== 'string') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O padrão passado deve ser um texto');
}
return texto.search(texto_buscado);
};
/**
* Remove espaços em branco no começo e no fim do texto.
*
* @param {string} texto o texto original.
* @returns {number} um texto sem espaços em ambos os lados.
*/
module.exports.apara = function (texto) {
if (typeof texto !== 'string') {
throw new excecoes_1.ErroEmTempoDeExecucao(this.token, 'O parâmetro passado deve ser um texto');
}
return texto.trim();
};
//# sourceMappingURL=textos.js.map