mafp
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

nycrc config on GitHub GitHub issues GitHub forks GitHub stars GitHub license

MaFP

Map object with native filter, map,reduce, every, and some methods. Zero Dependencies.

https://www.npmjs.com/package/mafp

Motivation

Maps don’t have these methods natively. One would first need to copy an iterator into an array [...iterator] before using .map, .filter, .reduce. MaFP allows you to use those methods natively.

Installation

npm install mafp

OR

yarn add mafp

Initialize

Javascript

const MaFP = require("mafp").default;
const test = new MaFP([
  ["A", true],
  ["B", false],
  ["C", true],
  ["D", true],
]);

TypeScript

import MaFP from "mafp";
 
// Diamond notation needed if no arguments are provided
const test = new MaFP<string, boolean>();
 
// OR with arguments, types are inferred.
const test = new MaFP([
  ["A", true],
  ["B", false],
  ["C", true],
  ["D", true],
]);

Usage

test.filter(val => val);
// MaFP [Map] { 'A' => true, 'C' => true, 'D' => true }
 
test.filterToArray(val => val);
// [ 'A', true ], [ 'C', true ], [ 'D', true ] ]
 
test.map(val => !val);
// MaFP [Map] { 'A' => false, 'B' => true, 'C' => false, 'D' => false }
 
test.mapToArray(val => !val);
// [ [ 'A', false ], [ 'B', true ], [ 'C', false ], [ 'D', false ] ]
 
test.reduce((acc, curr) => acc + Number(curr), 0);
// 3
 
test.every(val => val);
// false
 
test.some(val => val);
// true

Also works with .keys() and .values():

test.keys().filter(key => key !== 'B');
// [ 'A', 'C', 'D' ]
 
// ETC...

Package Sidebar

Install

npm i mafp

Weekly Downloads

2

Version

1.0.0

License

MIT

Unpacked Size

19.1 kB

Total Files

8

Last publish

Collaborators

  • nicholasjpaterno