Clan is a super succinct, no-dependency set of utilities with a slightly opinionated collection of features that integrate particularly well when used together. As of v1.0.0, it is now written in TypeScript and bundled with FuseBox.
yarn add clan-fp# ornpm install --save clan-fp
Check out the tests in the src folder for examples of code.
npm run test
Caught a bug?
- Fork this repository to your own GitHub account and then clone it to your local device
- Install the dependencies:
- Bundle the source code and watch for changes:
After that, you'll find the code in the
- fp.ts - functional composition and transducers
- model.ts - a rules-based and constructor/type-based engine that validates deeply-nested data structures; basically, an ORM that validates POJOs for attack vectors on a server (i.e. parse your incoming networked data sources).
- batch.ts - a functional abstraction for a
fetch()that deduplicates on-the-wire requests, batching parallel requests together
- observable.ts - an extremely powerful, efficient, memory-friendly state cascading paradigm that enables all sorts of asynchronous, functional, and lazy-evaluation paradigms
- worker.ts - a quick, observable-friendly abstraction to creating web worker threads via blobs/blob URLs, pushing dependency code to them, and even spreading work to multiple workers in parallel and streaming the output back to one method. Works very nicely with observables as both input and output pipes.
- prop.ts - a tiny implementation that acts like Underscore's
_.get(object, path); grab nested properties with a "CSS selector" from an object tree; returns that value or null if not found.
- server.ts - an observable-based, lightweight and cache-friendly streaming server.
- Matthew Keas, @matthiasak. Need help / support? Create an issue or ping on Twitter.