transy

Composable transform functions which could be reused for Array, Event, Stream, Channel, etc.

Usage no npm install needed!

<script type="module">
  import transy from 'https://cdn.skypack.dev/transy';
</script>

README

transy

Composable transform functions which could be reused for Array, Event, Stream, Channel, etc.

Inspiration

It's based on clojure's transduce. Some awesome posts explained it in Javascript worth reading:

Install

npm install transy

Example

var ty = require('transy')

function inc(x) {
    return x + 1
}

function isEven(x) {
    return x % 2 === 0
}

var xform = ty.compose(
    ty.take(5),
    ty.map(inc),
    ty.filter(isEven),
    ty.reverse()
)

console.log(ty.array(xform, [1, 2, 3, 4, 5, 6, 7]))

// => [ 6, 4, 2 ]

Note

To be frankly, the transy is kind of a subset of transducer since it used less info than tranduce, therefore, you should be able to convert any transy function to transducer.

API Document

compose

var ty = require('transy')

ty.compose(
    ty.map(),
    ty.filter(),
    ty.map()
)

chain

var ty = require('transy')

ty.chain(c => c
    .map()
    .filter()
    .map()
)