Purify

Functional programming library for TypeScript

README

Purify logo
</h3

Build Status Coverage Status Built with Typescript


What is purify?


Purify is a library for functional programming in TypeScript.
Its purpose is to allow developers to use popular patterns and abstractions that are available in most functional languages.
It is also Fantasy Land conformant.

Core values


- Elegant and developer-friendly API - purify's design decisions are made with developer experience in mind. Purify doesn't try to change how you write TypeScript, instead it provides useful tools for making your code easier to read and maintain without resolving to hacks or scary type definitions.

- Type-safety - While purify can be used in vanilla JavaScript, it's entirely written with TypeScript and type safety in mind. While TypeScript does a great job at preventing runtime errors, purify goes a step further and provides utility functions for working with native objects like arrays in a type-safe manner.

- Emphasis on practical code - Higher-kinded types and other type-level features would be great additions to this library, but as of right now they don't have reasonable implementations in TypeScript. Purify focuses on being a library that you can include in any TypeScript project and favors instance methods instead of functions, clean and readable type definitions instead of advanced type features and a curated API instead of trying to port over another language's standard library.

How to start?


Purify is available as a package on npm. You can install it with a package manager of your choice:

  1. ```
  2. $ npm install purify-ts
  3. ```

or

  1. ```
  2. $ yarn add purify-ts
  3. ```

Documentation


You can find the documentation on the official site.

Ecosystem


- purify-ts-extra-codec - Extra utility codecs
- chai-purify - Chai assert helpers
- purifree - A fork that allows you to program in a point-free style, and adds a few new capabilities

Inspired by


- Elm