• Stars
    star
    1,524
  • Rank 30,745 (Top 0.7 %)
  • Language
    TypeScript
  • License
    ISC License
  • Created almost 7 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Functional programming library for TypeScript - https://gigobyte.github.io/purify/

Purify logo

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:

$ npm install purify-ts

or

$ yarn add purify-ts

Documentation

You can find the documentation on the official site.

Ecosystem

Inspired by

More Repositories

1

HLTV

The unofficial HLTV Node.js API
TypeScript
394
star
2

ui-stack

πŸ” A Chrome extension that lets you inspect a website's framework and libraries
TypeScript
177
star
3

react-document-title-decorator

A clean way to handle tab titles in your React application
JavaScript
22
star
4

ts-react-express-starter

Starter app for a full-stack Purify TypeScript application with auth
TypeScript
19
star
5

pyarray

A node module for manipulating arrays just like how you would in Python!
JavaScript
7
star
6

UltraFighter

A javascript brawler/platformer game with multiplayer
TypeScript
6
star
7

programming-lore

A collection of historically significant fragments about software development
5
star
8

js-category-theory

Algebraic structures and category theory definitions in JavaScript
JavaScript
5
star
9

Haskell

Everything haskell - snippets, notes and exercises
Haskell
4
star
10

composable-ramda

Fun with proxies
JavaScript
4
star
11

MyToolbox

*Legacy* Site for sharing, discussing and keeping track of programming tools
JavaScript
3
star
12

Listeo

Platform for sharing and creating video playlists from multiple sources
TypeScript
3
star
13

Listeo-Graveyard

4 attempts to make an idea of mine a reality with a grand total of 4 different languages
JavaScript
2
star
14

redux-form-reducer

Dead simple form reducer inspired by Angular https://gigobyte.github.io/redux-form-reducer/
JavaScript
1
star
15

YoursTruly

My personal website/portfolio http://stanislav-iliev.herokuapp.com/
JavaScript
1
star
16

aoc

Advent of Code 2023
JavaScript
1
star
17

Scheme

Exercises from Structure and Interpretation of Computer Programs
Scheme
1
star
18

UltraPlay-Task

AngularJS project for UltraPlay
JavaScript
1
star
19

BotCreator

Command-line program for creating scripts that interact with the mouse, keyboard and more
Python
1
star
20

iso8601-duration

Convert between ISO-8601 durations strings and Duration values https://package.elm-lang.org/packages/gigobyte/iso8601-duration/latest/
Elm
1
star