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.
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.
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.
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-extra
ou
pnpm i toolkit-extra
Por ser uma biblioteca de utilitários, optei por fazer uma biblioteca
commonjs
para 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 }
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 tamanhon
já 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 arrayn
vezes.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.
Para contribuir com a biblioteca é simples. Siga esses passos:
- Clone o repositório.
- Crie uma branch a partir de
develop
no padrão git-flow. - Implemente suas ideias, soluções, correções, etc.
- Abra um PR.
Este projeto está sob licença MIT. Veja o arquivo LICENSE.md para mais detalhes.
Feito com ❤️ por Leonardo Petta do Nascimento