toolkit-extra
v1.2.0
Published
Biblioteca com funções extras ao javascript que eu sempre preciso em meus projetos.
Downloads
18
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-extra
ou
pnpm i toolkit-extra
:tada: Uso
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 }
: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 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.
:handshake: Contribuição
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.
: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