2.12.0 • Published 5 years ago

@mountainpasstech/mpjs v2.12.0

Weekly downloads
2
License
ISC
Repository
-
Last release
5 years ago

@mountainpass/mpjs

A general JavaScript library for manipulating arrays, objects etc.

Modules:

  • amount: Functions related to formatting amounts and money.
  • str: Functions related to formatting amounts and money.
  • timing: Functions related to waiting and time.
  • validate: Functions related to validating
  • xs: Functions related to arrays and arrays of objects etc.

Links

Note: Dueto the way curried functions are exported and how autodoc tools work, some functions are documented as variables rather than functions. Of course all named functions are variables, so whatever...

Install

npm i -S @mountainpasstech/mpjs

Import

// e.g. to sort an array by key:
import {sortBy} from "@mountainpasstech/mpjs/xs";
// Or
const {sortBy} = require("@mountainpasstech/mpjs/xs");

Dev/Test

$ npm install && npm test

Why?

Another library? Because we keep writing the same damn JavaScript. This is one level up from something like underscore, Ramda etc and includes very common functionality found across our webapps. E.g. when sorting an array of objects by key, why have to remember:

// Ramda
import {ascend, prop, sortWith} from "ramda";

const myArr = [{x: 1}, {x: 3}, {x: 1}];
expect(sortWith([ascend(prop("id"))], myArr).toEqual([
  {x: 1}, {x: 1}, {x: 3}]
);

When we could do this:

import {sortBy} from "mpjs/xs";

const myArr = [{x: 1}, {x: 3}, {x: 1}];
expect(sortBy("x", myArr)).toEqual([{x: 1}, {x: 1}, {x: 3}]);

Note, when applicable, all functions are curried, which makes for more modular, reusable, and composable functions. In general the data to be worked on will be the last parameter in order to faciliate composition (piping):

const myArr = [{x: 1}, {x: 3}, {x: 1}];

// Pass one less arg than expected to create a partially applied function, `sortByX`.
// if you have to sort an array of objects by "x" a few different times.
const sortByX = sortBy("x");
expect(sortByX(myArr)).toEqual([{x: 1}, {x: 1}, {x: 3}]);

// sort by "x" a few other times in some other place in your app.
2.12.0

5 years ago

2.11.0

5 years ago

2.10.0

5 years ago

2.9.0

5 years ago

2.8.3

5 years ago

2.8.1

5 years ago

2.8.0

5 years ago

2.7.0

5 years ago

2.6.0

5 years ago

2.5.0

5 years ago

2.4.0

5 years ago

2.3.1

5 years ago

2.3.0

5 years ago

2.2.0

5 years ago

2.1.0

5 years ago

2.0.0

5 years ago

1.0.4

5 years ago

1.0.2

5 years ago

1.0.3

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago