ramda-lens-map
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

ramda-lens-map

Dependency Status devDependency Status Greenkeeper badge Build Status Npm Version License Commitizen friendly Badges

A lens for ramda which lets you focus on a key in a Map.

Installation

npm i ramda-lens-map

Usage

You can use ramda-lens-map like any other lens from ramda. For instance, to set the value in a Map:

import { set } from 'ramda';
import lensMap from 'ramda-lens-map';
 
const myMap = new Map();
const myNewMap = set(lensMap('foo'), 'bar', myMap);

myNewMap now has a key of 'foo' with a value of 'bar'. The original map is completely unaffected.

Advanced Usage

ramda uses Laarhoven Lenses which are composable. Consider the following example:

import {
  compose,
  construct,
  lensIndex,
  set,
  times,
} from 'ramda';
import lensMap from 'ramda-lens-map';
 
const myMaps = times(construct(Map), 3); // Construct an array of three Maps
const myNewMaps = set(compose(lensIndex(1), lensMap('foo')), 'bar', myMaps);

myNewMaps is a new array where the first and third Map objects are unaffected and referentially equal to the first and third Map objects in myMaps. The second Map object in myNewMaps is a brand new Map with a key 'foo' set to a value 'bar'. See src/lens-map.test.ts for a working example of lens composition.

Caveats

  • This package only provides a lens. Functions such as evolve are unaffected.
  • There is no analog for dissoc. As far as I'm aware there is no way to drop the value focused by a lens with any ramda functions.

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i ramda-lens-map

Weekly Downloads

0

Version

1.0.1

License

MIT

Unpacked Size

11.8 kB

Total Files

20

Last publish

Collaborators

  • knpwrs