Security News
cURL Project and Go Security Teams Reject CVSS as Broken
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
@matechs/effect
Advanced tools
Matechs Effect is a typescript library inspired by scala's ZIO and Haskell's RIO architecture.
Matechs Effect is a typescript library inspired by scala's ZIO and Haskell's RIO architecture.
Docs at https://mikearnaldi.github.io/matechs-effect/modules/_matechs_effect.html
It aims to provide a strong foundational block to build typescript code in a more testable and standardized way.
This library is composed at its core by the @matechs/effect
package that exposes 2 effects
type Effect<R, E, A> = (r: R) => Wave<E, A>
The underlying Wave
is provided by Waveguide
.
You can think of this type as a computation that requires an environment R
to run.
The module exposes 2 instances of the typeclass type EffectMonad<T extends URIS3> = Monad3E<T> & MonadThrow3<T> & Bifunctor3<T>
:
effectMonad
for Effect<R, E, A>
concurrentEffectMonad
for Effect<R, E, A>
provides concurrent ap
Pipeable functions are also exported for both instances (default Effect
, parAp
, parApFirst
, parApSecond
for parallel)
Interesting integrations and usage examples can be found in packages/orm
, packages/http
, packages/rpc
, packages/tracing
For details about the additional types and overloads please refer to documentation in packages/effect
This package is a work in progress syntax and functions might change, feedback are welcome and contributions even more!
The primary difference with waveguide itself is in how we manage the R
parameter and in the utilities that we provide around environment management. The focus on this library is making environmental effects easy while providing valuable integrations out of the box where Waveguide
itself poses primary focus around the underlying Wave<E, A>
@matechs/tracing
: provides integration with opentracing-js@matechs/http
: provides integration with axios@matechs/orm
: provides integration with typeorm@matechs/rpc
: no boilerplate rpc for your effects@matechs/express
: provides integration with express@matechs/graceful
: utility to handle graceful exitThis library would have not been feasibly possible without the strong foundations of fp-ts and Waveguide & huge thanks to the Authors.
Another huge thanks goes to both the scala community (ZIO in specific) and the haskell community (RIO & Polysemy) from which inspiration is taken.
All of the above projects are advised!
FAQs
![weekly-downloads](https://badgen.net/npm/v/@matechs/effect) ![weekly-downloads](https://badgen.net/npm/dw/@matechs/effect) ![weekly-downloads](https://badgen.net/npm/dm/@matechs/effect) ![weekly-downloads](https://badgen.net/npm/dy/@matechs/effect)
The npm package @matechs/effect receives a total of 174 weekly downloads. As such, @matechs/effect popularity was classified as not popular.
We found that @matechs/effect demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.
Security News
Biden's executive order pushes for AI-driven cybersecurity, software supply chain transparency, and stronger protections for federal and open source systems.