eff
effect
Our great sponsors
eff | effect | |
---|---|---|
5 | 25 | |
64 | 3,920 | |
- | 16.8% | |
0.0 | 9.9 | |
over 3 years ago | about 7 hours ago | |
Python | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
eff
-
How to implement effect handlers in a tree-walking interpreter?
If your language has closures, you can turn effect handlers into callbacks executed down the stack if needed. At least, this is how I hacked it in Python in eff library.
effect
-
A better way to handle errors in JavaScript
Just use a library that already contains this and more functional programming idioms, like fp-ts or its successor, Effect [0]. It is a little more complex to learn but much more robust that simply implementing your own Result and other types.
-
Building React Components Using Unions in TypeScript
effect-ts
- Alternatives to scala FP
-
Functions vs. Procedures: Keep them separate.
But could we manage to achieve the same (avoid the same side-effect pollution), but entirely without handling it through the type system? Could we even manage to do it in JavaScript/TypeScript? Even without Haskell-ist wizardry like effect-ts?
- Javascript futures and Result monads belong together
-
What DI framework are you using?
I inject services with https://github.com/Effect-TS/effect and Layers
-
Introduction
I have chosen fp-ts since it is the tool I am the most familiar with but there are others out there, for example effect-ts.
-
State of Scala.js frameworks
FYI there's a ZIO "port" for Typescript (https://github.com/Effect-TS/core) so if you want, you can still write pure FP code in frontend too. I haven't tried it yet though, I myself am a backend engineer and only play with frontend stuff for personal projects, when I've got some time.
-
The case for TS+
// file: IO.ts export class IO { constructor(readonly io: () => A) {} } export const succeed = (a: A) => new IO(() => a); export const succeedWith = (a: () => A) => new IO(a); export function map(f: (a: A) => B): (self: IO) => IO { return (self: IO) => new IO(() => f(self.io())); } export function flatMap(f: (a: A) => IO): (self: IO) => IO { return (self) => new IO(() => f(self.io()).io()); } export function zip(b: IO): (self: IO) => IO<[A, B]> { return (self) => new IO(() => [self.io(), b.io()]); } export function run(self: IO) { return self.io(); } // file: Function.ts // omitted definition of pipe, long https://github.com/Effect-TS/core/blob/master/packages/system/src/Function/pipe.ts // file: USE.ts import * as IO from "./IO"; import { pipe } from "./Function"; export const program = pipe( IO.succeed(0), IO.map((n) => n + 1), IO.flatMap((r) => IO.succeedWith(() => { console.log(`result: ${r}`); }) ) ); IO.run(program);
-
GraphQL error handling to the max with Typescript, codegen and fp-ts
In order to make our throwing and unsafe APIs into safe data fetching functions, we'll use data types and techniques from the Functional Programming paradigm. In particular, we'll use the fp-ts library (but you can choose the FP library of your choice, e.g. purify, effect, monio, and others).
What are some alternatives?
fp-ts - Functional programming in TypeScript
pratica - 🥃 Functional Algebraic Data Types
tyrian - Elm-inspired Scala UI library.
eslint-plugin-functional - ESLint rules to disable mutation and promote fp in JavaScript and TypeScript.
Index - âš¡ Pattern Matching in Typescript
contentlayer - Contentlayer turns your content into data - making it super easy to import MD(X) and CMS content in your app
FxTS - A functional programming library for TypeScript/JavaScript
appy - A functional wrapper around Fetch API
ZIO - ZIO — A type-safe, composable library for async and concurrent programming in Scala
ts-protoc-gen - Protocol Buffers Compiler (protoc) plugin for TypeScript and gRPC-Web.
matechs-effect - A Fully-fledged functional effect system for typescript with a rich standard library [Moved to: https://github.com/Effect-TS/core]
crocks - A collection of well known Algebraic Data Types for your utter enjoyment.