Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/samhh/fp-ts-std
The missing pseudo-standard library for fp-ts.
https://github.com/samhh/fp-ts-std
Last synced: 3 months ago
JSON representation
The missing pseudo-standard library for fp-ts.
- Host: GitHub
- URL: https://github.com/samhh/fp-ts-std
- Owner: samhh
- License: mit
- Created: 2020-10-19T14:30:15.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-05-03T11:15:00.000Z (9 months ago)
- Last Synced: 2024-10-01T18:18:43.225Z (4 months ago)
- Language: TypeScript
- Homepage: https://samhh.github.io/fp-ts-std/
- Size: 1.77 MB
- Stars: 207
- Watchers: 5
- Forks: 27
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-fp-ts - samhh/fp-ts-std - missing pseudo-standard library (Domain modeling in TypeScript by Benoit Ruiz)
README
# fp-ts-std
The missing pseudo-standard library for [fp-ts](https://gcanti.github.io/fp-ts/).
Documentation: [samhh.github.io/fp-ts-std](https://samhh.github.io/fp-ts-std/)
## Installation
The library is available on the npm registry under the same package name: [fp-ts-std](https://www.npmjs.com/package/fp-ts-std)
fp-ts, [newtype-ts](https://gcanti.github.io/newtype-ts/), and [monocle-ts](https://gcanti.github.io/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, Bun, and recent 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 normsAdditionally, 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](https://github.com/gcanti/docs-ts).