UNPKG

fvi-node-utils

Version:

Freunde Von Idden - Node Utils Library

45 lines (36 loc) 924 B
'use strict' const collect = require('collect.js') const { toJson, toBase64 } = require('../objects') const flatmap = (f, a) => { return a.map(f).reduce((xs, ys) => [...xs, ...ys]) } /* * Para utilizar com arrays e funcoes async, * o filter do array nao funciona no * contexto async. */ const asyncFilter = async (asyncPredicate, xs) => { return await xs.reduce(async (acc, x) => { const result = await asyncPredicate(x) if (result) { ;(await acc).push(x) } return acc }, Promise.resolve([])) } const arrayToJson = array => { return array == null ? [] : array.map(toJson) } const arrayToBase64 = array => { return array == null ? [] : array.map(toBase64) } const chunk = (array, n) => array.slice(0, ((array.length + n - 1) / n) | 0).map((c, i) => array.slice(n * i, n * i + n)) module.exports = { chunk, flatmap, asyncFilter, arrayToBase64, arrayToJson, collect, }