/MyLib

My NodeJS Lib

Primary LanguageJavaScript

Build Status

Minha Lib

Obrigado por acessar esse repositório. Ele é basicamente um espaço no qual eu escrevo algumas funções em JavaScript de conforme for surgindo as necessidades. Eu sei que existem várias outras bibliotecas enormes e muito melhores, como RamdaJS e Lodash. Mas, você sabe né? Nada é tão bom quanto escrever o nosso próprio código.

Contribuições

Você é livre para contribuir, claro, E é fácil! Basta fazer um fork do projeto, codar e fazer um PR.

Instalação

Fácil!

npm install --save MateusGabi/MyLib

ou

yarn add https://github.com/MateusGabi/MyLib

Documentação

Existe várias funções que podem ser utilizadas.

Uso

import L from 'mylibjs'; // ou
import { mul, div } from 'mylibjs'; // ou

const L = require('mylibjs'); // ou
const { mul, div } = require('mylibjs');

Funções

All

Verifica se todos os itens de um array se aplicam a uma regra. Recebe uma função de verificação e um array.

const { all } = require('mylibjs');

const isEven = i => i % 2 !== 0
const isOdd = i => i % 2 == 0

all(isEven)([0, 1, 2])         // returns false
all(isOdd)([0, 1, 2])          // returns false
all(isEven)([1])               // returns true
all(isOdd)([1])                // returns false
all(isEven)([1, 3, 5])         // returns true
all(isOdd)([])                 // returns false

Div

Operação matemática de divisão.

const { div } = require('mylibjs');

const a = 10;
const b = 5;

const x = div(b)(a); // a/b = 2

console.log(x); // 2

// other example
const half = div(2);
const y = [1, 2, 3, 4, 5].map(half); // [0.5, 1, 1.5, 2, 2.5]

Group By

Agrupa um array de objetos por um atributo. Recebe um nome de um atributo e um array de objetos. Retorna um objeto.

const { groupBy } = require('mylibjs');

const users = [
  {
    age: 12,
    name: 'Alice',
    gender: 'female',
  },
  {
    age: 11,
    name: 'Bob',
    gender: 'male',
  },
  {
    age: 12,
    name: 'Charles',
    gender: 'male',
  },
  {
    age: 13,
    name: 'Diana',
    gender: 'female',
  },
  {
    age: 13,
    name: 'Eddard',
  },
];

const result = groupBy('gender')(users);

console.log('Result', result);
// {
//   female: [
//     { age: 12, name: 'Alice', gender: 'female' },
//     { age: 13, name: 'Diana', gender: 'female' }
//   ],
//   male: [
//     { age: 11, name: 'Bob', gender: 'male' },
//     { age: 12, name: 'Charles', gender: 'male' }
//   ],
//   undefined: [
//     { age: 13, name: 'Eddard' }
//   ]
// }

Has

Verifica se existe um atributo em um objeto. Recebe um nome de um atributo e um objeto. Retorna boolean.

const { has } = require('mylibjs');

has('name')(null); // false
has('name')({}); // false
has('name')({ name: undefined }); // false
has('name')({ name: null }); // false
has('name')({ name: 'Alice' }); // true
has('age')({ age: 12 }); // true
has('age')({ age: 0 }); // true

Mul

Operação matemática de multiplicação.

const { mul } = require('mylibjs');

const a = 10;
const b = 5;

const x = mul(b)(a); // a*b = 50

console.log(x); // 50

// other example
const double = mul(2);
const y = [1, 2, 3, 4, 5].map(double); // [2, 4, 6, 8, 10]

Pairs

Essa função é muito interessante caso você precise fazer um this or that. Basicamente ele recebe um array e retorna um novo array em que cada posição é um array de pares.

const { pairs } = require('mylibjs');

const arr = ['a', 'b', 'c'];
const _pairs = pairs(arr);
 
console.log(_pairs);
// [['a', 'b'], ['a', 'c'], ['b', 'c']]

Pipe

Essa é a função mais legal. Ela recebe um objeto e um array de funções e aplica as funções nesse objeto de forma sequencial. Funciona semelhante a uma linha de produção de uma fábrica. Retorna um objeto.

const { pipe, sum, mul } = require('mylibjs');

const val = pipe(
  10,
  sum(2), // 12
  mul(3) // 36
);

console.log(val); // 36

Sub

Operação matemática de subtração.

const { sub } = require('mylibjs');

const a = 10;
const b = 5;

const x = sub(b)(a); // a - b = 5

console.log(x); // 5

Sum

Operação matemática de subtração.

const { sum } = require('mylibjs');

const a = 10;
const b = 5;

const x = sub(b)(a); // a + b = 15

console.log(x); // 15