lambda.lenses

1.0.0 • Public • Published

lambda.lenses

Kmett style lenses in your face!

  • API
module.exports = {
    lensPath,
    lensIndex,
    lensProp,
    set,
    view,
    over
}
const user = { id: 1, name: 'foo' }

const propName = prop('name')(user)

const assocName = assoc('name')('bar')(user)

const toUpper = str => str.toUpperCase()

const cubed = num => num ** 3

const idLens = lensProp('id')

const viewId = view(idLens, user) // > 1

const setId = set(idLens, 2, user) // > { id: 2, name: "foo" }

const cubedId = over(idLens, cubed, setId) // > { id: 8, name: "foo" }

const nameLense = lensProp('name')

const getName = view(nameLense, user) // > "foo"

const setName = set(nameLense, 'flavio', user) // > { id: 1, name: "flavio" }

const capName = over(nameLense, toUpper, setName) // > { id: 1, name: "FLAVIO" }

Readme

Keywords

none

Package Sidebar

Install

npm i lambda.lenses

Weekly Downloads

0

Version

1.0.0

License

ISC

Unpacked Size

4.43 kB

Total Files

5

Last publish

Collaborators

  • tarasowski