Effection Extensions
thefrontside/effectionxA collection of reusable, community-created extensions - ranging from small packages to complete frameworks - that show the best practices for handling common JavaScript tasks with Effection.
Frameworks
Packages
- @effectionx/bddA BDD (Behavior-Driven Development) testing harness for Deno that integrates seamlessly with Effection operations. This package provides a familiar describe/it/beforeEach API that works natively with…
- @effectionx/chainThere are some use-cases for Promise for which there is not a 1:1 analogue in Effection. One of these is the "promise chaining" behavior of the Promise constructor itself using then(), catch(), and f…
- @effectionx/context-apiOften called "Algebraic Effects" or "Contextual Effects", Context apis let you access an operation via the context in a way that it can be easily (and contextually) wrapped with middleware.
- @effectionx/convergeRecognize a desired state and synchronize on when that state has been achieved. This package is a port of @bigtest/convergence adapted for Effection structured concurrency.
- @effectionx/effect-tsBidirectional interop between Effect-TS and Effection. Why? Effect and Effection are both powerful libraries for managing side effects in TypeScript, but they have different philosophies and…
- @effectionx/fsFile system operations for Effection programs. This package wraps Node.js fs/promises APIs as Effection Operations with structured concurrency support.
- @effectionx/fxA collection of utility functions to streamline asynchronous workflows.
- @effectionx/jsonl-storeJSONL Streaming Store provides an easy way to store documents in JSONL files. This is useful when you need cache responses from HTTP requests for later processing. This API focuses on providing…
- @effectionx/nodeNode.js-specific utilities for Effection programs. This package provides adapters for working with Node.js streams and event emitters using structured concurrency.
- @effectionx/processExecute and manage system processes with structured concurrency. A library for spawning and controlling child processes in Effection programs.
- @effectionx/rafSubscribe to a stream of Request Animation Frame updates.
- @effectionx/signalsCollection of immutable state containers for primitive data types. About One way to think about Effection operation is as composable components of asyncrony. They are conceptually similar to React…
- @effectionx/stream-helpersA collection of type-safe stream helpers built on top of Effection for efficient and controlled stream processing. Included Helpers Filter The filter helper narrows a stream by only passing through…
- @effectionx/stream-yamlA helper that parses a stream of strings as YAML documents. Composes well with @effectionx/stream-helpers. This example shows how to read the contents of a YAML file as a stream with Node and…
- @effectionx/task-bufferManages concurrent task execution by enforcing a maximum limit on simultaneously active operations.
- @effectionx/test-adapterAn abstract helper for integrating Effection with testing frameworks.
- @effectionx/timeboxConstrain any operation to complete within a certain time.
- @effectionx/tinyexecEffection compatible wrapper around tinyexec package.
- @effectionx/vitestAdapter to add an effection scope to the test suite to allow writing a function* () {} test function.
- @effectionx/watchWatch is a very simple tool that does one thing: run a command, and every time source files change in a directory, shutdown the current invocation gracefully and restart it. deno -A jsr:@effectionx…
- @effectionx/websocketA streamlined WebSocket client for Effection programs that transforms the event-based WebSocket API into a clean, resource-oriented stream. Why Use this API? Traditional WebSocket API require…
- @effectionx/workerEasily use Web Workers to offload CPU-intensive computations or manage external processes. A library for seamlessly integrating Web Workers with Effection programs.