A biblioteca LummaScriptify é uma coleção de utilitários JavaScript que estende funcionalidades nativas de tipos como Number
, String
, Array
, Date
e Object
, além de fornecer funções úteis para manipulação de formulários, cookies, datas, strings, entre outros. Ela foi projetada para simplificar tarefas comuns no desenvolvimento web.
Para instalar a biblioteca via NPM, execute o seguinte comando:
npm install @chroma-studio/lummascriptify
Após a instalação, você pode importar a biblioteca em seu projeto:
import { Cookie } from '@chroma-studio/lummascriptify';
Para usar a biblioteca diretamente no navegador, adicione o seguinte script no seu HTML:
<script src="https://cdn.jsdelivr.net/npm/@chroma-studio/lummascriptify@<version>/dist/index.min.js"></script>
A biblioteca LummaScriptify está licenciada sob a Licença LummaScriptify Proprietária.
Permissões:
- Uso pessoal e em projetos internos.
- Modificação do código para uso pessoal.
Restrições:
- Distribuição pública ou comercial sem autorização expressa.
- Uso em projetos de terceiros sem licença válida.
Para obter uma licença comercial, entre em contato: oseias.d.gomes@gmail.com.
A biblioteca é dividida em várias categorias de utilitários. Abaixo estão as principais funcionalidades:
Formata um número como moeda ou decimal.
Parâmetros:
currency
(boolean): Setrue
, formata como moeda. Padrão:false
.
Retorno:
string
: Número formatado.
Exemplo:
(1234.56).toMoney(); // "1.234,56"
(1234.56).toMoney(true); // "R$ 1.234,56"
Arredonda um número com base na precisão especificada.
Parâmetros:
precision
(number): Precisão do arredondamento (0: padrão, 1: floor, 2: ceil). Padrão:0
.
Retorno:
number
: Número arredondado.
Exemplo:
(123.456).toRound(); // 123
(123.456).toRound(1); // 123 (floor)
(123.456).toRound(2); // 124 (ceil)
Define a precisão decimal de um número.
Parâmetros:
precision
(number): Número de casas decimais. Padrão:2
.
Retorno:
number
: Número com a precisão definida.
Exemplo:
(123.456789).decimalPrecision(2); // 123.46
Divide um array em subarrays de tamanho especificado.
Parâmetros:
divisao
(number): Tamanho de cada subarray.
Retorno:
Array<Array>
: Array de subarrays.
Exemplo:
[1, 2, 3, 4, 5, 6].divide(2); // [[1, 2], [3, 4], [5, 6]]
Formata uma data para o padrão brasileiro.
Parâmetros:
showTime
(boolean): Setrue
, inclui a hora. Padrão:true
.base
(string): Texto base para separar data e hora. Padrão:'às'
.
Retorno:
string
: Data formatada.
Exemplo:
new Date().toDefault(); // "01/01/2023 às 12:00"
new Date().toDefault(false); // "01/01/2023"
Converte uma string para booleano.
Retorno:
boolean | null
: Valor booleano ounull
se a string não for válida.
Exemplo:
"true".parseBool(); // true
"false".parseBool(); // false
Converte uma string para o formato de título.
Parâmetros:
sigla
(boolean): Setrue
, mantém siglas em maiúsculas. Padrão:false
.tamanho
(number): Tamanho mínimo para considerar uma sigla. Padrão:3
.
Retorno:
string
: String formatada como título.
Exemplo:
"hello world".toTitleCase(); // "Hello World"
"NASA".toTitleCase(true); // "NASA"
Verifica se a string é nula ou vazia.
Retorno:
boolean
:true
se a string for nula ou vazia.
Exemplo:
"".isNullOrEmpty(); // true
"hello".isNullOrEmpty(); // false
Valida um documento (CPF, CNPJ, RG, CNH).
Parâmetros:
tipo
(string): Tipo de documento ('cpf'
,'cnpj'
,'rg'
,'cnh'
).
Retorno:
boolean
:true
se o documento for válido.
Exemplo:
"123.456.789-09".isValidDocument('cpf'); // true
Formata um documento (CPF, CNPJ, RG, CNH, telefone).
Parâmetros:
tipo
(string): Tipo de documento ('cpf'
,'cnpj'
,'rg'
,'cnh'
,'telefone'
).
Retorno:
string
: Documento formatado.
Exemplo:
"12345678909".formatDocument('cpf'); // "123.456.789-09"
Verifica se um objeto é nulo ou vazio.
Retorno:
boolean
:true
se o objeto for nulo ou vazio.
Exemplo:
({}).isNullOrEmpty(); // true
({ key: 'value' }).isNullOrEmpty(); // false
Verifica se todos os atributos de um objeto estão vazios.
Retorno:
boolean
:true
se todos os atributos estiverem vazios.
Exemplo:
({ key: '' }).atributosVazios(); // true
Verifica se todos os atributos de um objeto estão preenchidos.
Retorno:
boolean
:true
se todos os atributos estiverem preenchidos.
Exemplo:
({ key: 'value' }).atributosPreenchidos(); // true
Serializa um formulário HTML para um objeto JSON.
Parâmetros:
html
(string): Seletor do formulário.
Retorno:
Object
: Objeto JSON com os dados do formulário.
Exemplo:
const formData = serializeJson('#meuFormulario');
Serializa um formulário HTML para um objeto JSON complexo.
Parâmetros:
html
(string): Seletor do formulário.
Retorno:
Object
: Objeto JSON complexo com os dados do formulário.
Exemplo:
const formData = serializeJsonComplex('#meuFormulario');
Converte uma string para booleano.
Parâmetros:
str
(string): String a ser convertida.
Retorno:
boolean | null
: Valor booleano ounull
se a string não for válida.
Exemplo:
parseBool("true"); // true
Gera um UUID (Identificador Único Universal).
Retorno:
string
: UUID gerado.
Exemplo:
uuid(); // "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"
Gera uma string aleatória.
Parâmetros:
length
(number): Tamanho da string. Padrão:10
.
Retorno:
string
: String aleatória.
Exemplo:
getString(5); // "aBc12"
Soma os valores de uma propriedade CSS (height ou width) de elementos selecionados.
Parâmetros:
propriedade
(string): Propriedade CSS a ser somada ('height'
ou'width'
). Padrão:'height'
.seletores
(string): Seletores dos elementos.
Retorno:
number
: Soma dos valores da propriedade.
Exemplo:
sumElements('height', '.minhaClasse'); // 300
Compara duas datas.
Parâmetros:
inicial
(string | Date): Data inicial.dtFinal
(string | Date): Data final.
Retorno:
Object
: Objeto com os resultados da comparação.isBefore
(boolean):true
se a data inicial for anterior à final.isSame
(boolean):true
se as datas forem iguais.
Exemplo:
compareDates('2023-01-01', '2023-12-31'); // { isBefore: true, isSame: false }
Obtém os atributos data-*
de um elemento HTML.
Parâmetros:
html
(string): Seletor do elemento.
Retorno:
Object
: Objeto com os atributosdata-*
.
Exemplo:
const data = getData('#meuElemento');
Pausa a execução por um determinado tempo.
Parâmetros:
ms
(number): Tempo em milissegundos.
Retorno:
Promise
: Promise que resolve após o tempo especificado.
Exemplo:
await sleep(1000); // Pausa por 1 segundo
Preenche um formulário com dados.
Parâmetros:
formulario
(string): Seletor do formulário.data
(Object): Dados para preencher o formulário.
Exemplo:
populate('#meuFormulario', { nome: 'João', idade: 30 });
Verifica se uma string é um elemento HTML válido.
Parâmetros:
str
(string): String a ser verificada.
Retorno:
boolean
:true
se a string for um elemento HTML válido.
Exemplo:
isHTMLElement('<div></div>'); // true
Converte uma data URL para um Blob.
Parâmetros:
dataURL
(string): Data URL a ser convertida.
Retorno:
Blob
: Blob gerado.
Exemplo:
const blob = dataURLToBlob('data:image/png;base64,...');
Converte uma string base64 para um Blob.
Parâmetros:
base64
(string): String base64 a ser convertida.mimeType
(string): Tipo MIME do Blob.
Retorno:
Blob
: Blob gerado.
Exemplo:
const blob = base64ToBlob('base64string', 'image/png');
Verifica se uma cor hexadecimal é clara ou escura.
Parâmetros:
hex
(string): Cor hexadecimal.
Retorno:
string
:'#fff'
se a cor for escura,'#000'
se for clara.
Exemplo:
isLightOrDark('#ffffff'); // '#000'
Verifica se um valor é um objeto.
Parâmetros:
value
(any): Valor a ser verificado.
Retorno:
boolean
:true
se o valor for um objeto.
Exemplo:
isObject({}); // true
Gera um número aleatório entre um mínimo e um máximo.
Parâmetros:
min
(number): Valor mínimo.max
(number): Valor máximo.
Retorno:
number
: Número aleatório gerado.
Exemplo:
getRandom(1, 10); // 7
Aqui está a documentação completa para a classe Cookie, incluindo descrições detalhadas de cada método, parâmetros, retornos e exemplos de uso:
A classe Cookie
fornece métodos para manipulação de cookies no navegador. Ela permite definir, obter, remover e limpar cookies de forma simples e eficiente.
Define um cookie com um nome, valor e opções configuráveis.
Parâmetros:
name
(string): Nome do cookie.value
(string): Valor do cookie.options
(object): Opções do cookie (opcional).session
(boolean): Setrue
, o cookie será de sessão (expira ao fechar o navegador).days
(number): Duração do cookie em dias.secure
(boolean): Setrue
, o cookie será seguro (HTTPS apenas).
Exemplo:
Cookie.Set('username', 'Oséias', { days: 7, secure: true });
Obtém o valor de um cookie pelo nome.
Parâmetros:
name
(string): Nome do cookie.
Retorno:
string | null
: Valor do cookie ounull
se o cookie não existir.
Exemplo:
const username = Cookie.Get('username'); // "Oséias"
Obtém todos os cookies armazenados no navegador.
Retorno:
Array<{ key: string, value: string }>
: Array de objetos com chave e valor dos cookies.
Exemplo:
const cookies = Cookie.GetAll();
console.log(cookies); // [{ key: 'username', value: 'Oséias' }, ...]
Remove um cookie pelo nome.
Parâmetros:
name
(string): Nome do cookie.
Exemplo:
Cookie.Erase('username'); // Remove o cookie 'username'
Remove todos os cookies armazenados no navegador.
Retorno:
Promise<boolean>
: Promise que resolve comtrue
se todos os cookies foram removidos.
Exemplo:
Cookie.Clear().then(() => console.log('Todos os cookies foram removidos!'));
// Define um cookie que expira em 7 dias
Cookie.Set('theme', 'dark', { days: 7 });
// Define um cookie de sessão (expira ao fechar o navegador)
Cookie.Set('session_id', '12345', { session: true });
// Define um cookie seguro (HTTPS apenas)
Cookie.Set('secure_token', 'abc123', { secure: true });
const theme = Cookie.Get('theme'); // "dark"
const sessionId = Cookie.Get('session_id'); // "12345"
Cookie.Erase('theme'); // Remove o cookie 'theme'
Cookie.Clear().then(() => {
console.log('Todos os cookies foram removidos!');
});
const cookies = Cookie.GetAll();
cookies.forEach(cookie => {
console.log(`${cookie.key}: ${cookie.value}`);
});
- Nome e Valor: Codificados usando
encodeURIComponent
para garantir que caracteres especiais sejam tratados corretamente. - Expiração: Se
days
for fornecido, o cookie expira após o número especificado de dias. Caso contrário, é um cookie de sessão. - Segurança: Se
secure
fortrue
, o cookie só será enviado em conexões HTTPS.
- Tamanho Máximo: Cookies têm um limite de tamanho de ~4KB por domínio.
- Número Máximo: A maioria dos navegadores permite ~50 cookies por domínio.
- Use Cookies Seguros: Sempre que possível, defina cookies como seguros (
secure: true
) para evitar que sejam enviados em conexões HTTP não criptografadas. - Evite Armazenar Dados Sensíveis: Cookies não são o local ideal para armazenar informações confidenciais, como senhas ou tokens de autenticação.
- Limpe Cookies Desnecessários: Remova cookies que não são mais úteis para liberar espaço e melhorar a privacidade do usuário.
Se você deseja contribuir para o desenvolvimento desta biblioteca, sinta-se à vontade para abrir issues ou pull requests no repositório oficial.
Este projeto está licenciado sob a Licença LummaScriptify Proprietária.
Permissões:
- Uso pessoal e em projetos internos.
- Modificação do código para uso pessoal.
Restrições:
- Distribuição pública ou comercial sem autorização expressa.
- Uso em projetos de terceiros sem licença válida.
Para obter uma licença comercial, entre em contato: oseias.d.gomes@gmail.com.
Se você precisa de uma licença que permita o uso fechado da LummaScriptify em projetos comerciais, entre em contato para obter uma licença comercial personalizada: oseias.d.gomes@gmail.com.