Giter Club home page Giter Club logo

fp-ts-std's Introduction

fp-ts-std

The missing pseudo-standard library for fp-ts.

Documentation: samhh.github.io/fp-ts-std

Installation

The library is available on the npm registry under the same package name: fp-ts-std

fp-ts, newtype-ts, and monocle-ts are listed as peer dependencies.

fp-ts-std is published with both ES2015 and CJS modules, the former of which should tree shake well. Modern ES modules are not yet supported.

Node LTS - at time of writing v18 - and the latest evergreen browsers are supported.

Objectives

fp-ts-std aims to achieve the following objectives:

  • Flesh out what fp-ts is missing
  • Fill in the gaps between fp-ts and Ramda
  • Wrap JS APIs to be friendly, so that you never have to interact with null or undefined, or worry about a function throwing again

Ethos

fp-ts-std strives to adhere to the following principles:

  • Strict type-safety wherever possible, with risks well documented
  • All functions are curried
  • Functions are data-last as a rule
  • Functions are total unless explicitly prefixed with "unsafe" (with the exception of the Debug module)
  • Impure functions are appropriately signed with the IO and Task types
  • Lean towards Haskell naming conventions and idioms with an eye to fp-ts norms

Additionally, fp-ts-std enforces 100% testing coverage, and just about everything is documented with examples.

Contributing

Unreleased work is commit to the develop branch. master is the release branch and whence the documentation is generated.

All modules and exports must be annotated with JSDoc. This information is used to generate documentation. Simple, illustratory tests can also be included and will be checked during docs generation. For more information, see docs-ts.

fp-ts-std's People

Contributors

anthonyjoeseph avatar baoshan avatar forno avatar imcotton avatar imhoffd avatar jessekelly881 avatar magellol avatar miaxos avatar oliverjash avatar samhh avatar simonam avatar skeate avatar stefanocrmg avatar waynevanson avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.