Skip to content

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.

License

Notifications You must be signed in to change notification settings

leonardopn/toolkit-extra

Repository files navigation

toolkit-extra

npm npm

GitHub Issues GitHub Pull Requests Última Atualização GitHub Forks GitHub Stars

codecov

TypeScript Status PRs Welcome

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.

💡 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.

📣 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.

💽 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

🎉 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 }

🔎 Módulos

Estes são os módulos e suas respectivas documentações para cada função.

  • Address
  • 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 tamanho n 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 array n 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
  • String
  • 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.

🤝 Contribuição

Para contribuir com a biblioteca é simples. Siga esses passos:

  1. Clone o repositório.
  2. Crie uma branch a partir de develop no padrão git-flow.
  3. Implemente suas ideias, soluções, correções, etc.
  4. Abra um PR.

📝 Licença

Este projeto está sob licença MIT. Veja o arquivo LICENSE.md para mais detalhes.

Feito com ❤️ por Leonardo Petta do Nascimento

About

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.

Resources

License

Stars

Watchers

Forks

Packages

No packages published