toolkit-extra
v1.2.0
Published
Biblioteca com funções extras ao javascript que eu sempre preciso em meus projetos.
Downloads
16
Readme
toolkit-extra
Biblioteca com vários módulos de funções rápidas que não estão disponíveis no JavaScript, mas aposto que você adoraria que estivessem.
:bulb: Motivação
Sabe aqueles arquivos cheios de funções utilitárias que você criou em um projeto e fica copiando e colando sempre para outro projeto? Então, eu me cansei disso e criei minha biblioteca para agrupar essas funções.
Em todos os projetos que trabalhei, em algum momento entrava em uma repetição chata de criar uma pasta utils/GRUPO_DE_FUNÇÕES/index.ts, buscar o arquivo de funções de algum outro projeto, copiar e colar no novo projeto. Com o tempo, comecei a notar muita repetição de código e até pior, código que deveria fazer a mesma coisa, mas em versões diferentes e sem testes.
Então parei um tempo da minha vida para trazer as funções mais utilizadas em meus projetos para cá, adicionar testes e comentá-las.
:mega: AVISO IMPORTANTE
O foco dessa biblioteca sempre foi resolver MEUS problemas de código, então ao criá-la, tentei solucioná-los antes de realmente tentar fornecê-los para uma comunidade. No entanto, ainda é um objetivo tornar essa biblioteca madura o suficiente para esse propósito. Então, você está livre para me aconselhar nessa jornada e contribuir se possível.
:minidisc: Instalação
Para instalar a biblioteca, é necessário que você tenha instalado algum gerenciador de pacotes como npm, yarn ou pnpm.
npm i toolkit-extra ou
yarn add toolkit-extraou
pnpm i toolkit-extra:tada: Uso
Por ser uma biblioteca de utilitários, optei por fazer uma biblioteca
commonjspara poder fornecer compatibilidade com vários tipos de ambientes e evitar problemas.
Cada função está dentro de um módulo ou grupo de funções. Então, para usar uma função, recomendo que você faça da seguinte forma:
CommonJS
const { omitUndefinedProps } = require("toolkit-extra/object");
omitUndefinedProps({ foo: 1, bar: undefined }); // { foo: 1 }ESM
import { omitUndefinedProps } from "toolkit-extra/object";
omitUndefinedProps({ foo: 1, bar: undefined }); // { foo: 1 }Se preferir, pode importar diretamente do módulo principal, porém isso pode resultar em uma importação um pouco mais pesada do que a importação modular.
CommonJS
const { omitUndefinedProps } = require("toolkit-extra");
omitUndefinedProps({ foo: 1, bar: undefined }); // { foo: 1 }ESM
import { omitUndefinedProps } from "toolkit-extra";
omitUndefinedProps({ foo: 1, bar: undefined }); // { foo: 1 }:mag_right: Módulos
Estes são os módulos e suas respectivas documentações para cada função.
- Address
getBrazilianStateByInitials- Busca um estado brasileiro pela sua inicial.getBrazilianStateByName- Busca um estado brasileiro pelo seu nome.getBrazilianStates- Função que retorna um array com todos os estados brasileiros.
- Array
deleteDuplicate- Função que remove elementos duplicados do array e retorna um novo array só com itens únicos.generateArray- Função que cria um array de tamanhonjá preenchido com valores.getMinMax- Função que retorna o valor mínimo e máximo de um array de números.repeatArray- Função que pega um array inicial e repete seu conteúdo em um novo arraynvezes.isArrayTyped- Função que valida se todos os elementos de um array são de um determinado tipo.moveElement- Função que move um elemento para outra posição dentro de um array.
- Math
average- Função para calcular a média de valores em um array de números.mode- Função que diz qual é a moda inclusa em um array de números. (Números que mais se repetem).verifyPAPresence- Função que verifica se um número está presente em uma Progressão Aritmética (PA).
- Object
isClassInstance- Verifica se o valor passado é uma instância de classe.omitProp- Omite propriedades de um objeto.omitUndefinedProps- Remove propriedades undefined de um objeto em todos os níveis de aninhamento.
- Random
getRandomNumber- Função que gera um número aleatório entre dois números.
- Regex
verifyMaskedBrazilianPhones- Valida um número de telefone brasileiro com mascaras (XX) XXXX-XXXX ou (XX) XXXXX-XXXX.
- String
capitalizeFirstLetterOfEachWord- Maiusculiza a primeira letra de cada palavra no texto fornecido.formatCNPJ- Formata uma string de CNPJ adicionando pontuação.getNameInitials- Função que retorna as iniciais do nome fornecido.hideEmail- Oculta parte do email fornecido.isUrl- Verifica se o texto fornecido é uma URL válida.
- Timeout
sleep- Função parecida com a função timeout do javascript, porém, retorna uma promise.timeoutAsync- Função timeout para aguardar um tempo determinado porém, é assíncrona.
- uuid
v4- Função que gera um UUID v4.
:handshake: Contribuição
Para contribuir com a biblioteca é simples. Siga esses passos:
- Clone o repositório.
- Crie uma branch a partir de
developno padrão git-flow. - Implemente suas ideias, soluções, correções, etc.
- Abra um PR.
:memo: Licença
Este projeto está sob licença MIT. Veja o arquivo LICENSE.md para mais detalhes.
Feito com :heart: por Leonardo Petta do Nascimento
