This Week in Effect - 2024-09-27
Hi Effecters!
Welcome back to This Week In Effect (TWIE) – your weekly update of the latest developments in the Effect community and ecosystem.
Effect is a powerful TypeScript library that helps developers create complex, synchronous, and asynchronous programs. One of the key features that sets Effect apart is how it leverages structured concurrency to provide features such as async cancellation and safe resource management, making it easier to build robust, scalable, and efficient programs.
Get started with Effect with our quick-start guide and documentation below:
Recent major updates:
- Effect is API stable with the Effect 3.0 release.
- Effect 3.8 has been released.
- The Effect community on Discord reached 3590+ members!
Technology
Here are all the technical changes from this week.
Effect Core
- Fix addFinalizerExit jsdocs (Documentation Update)
- Micro.EnvRef and Micro.Handle is subtype of Micro (Feature)
- Effect.provide(managedRuntime) and ManagedRuntime 'R, E' is subtype of Effect 'Runtime'R', E, never' (Feature, next-minor)
- Fix Unify for RcRef & Deferred (Bug Fix, next-minor)
- Pool is subtype of Effect (Feature, next-minor)
- Move ManagedRuntime.TypeId to fix circular imports (Refactor, next-minor)
- Effect.mapAccum & Array.mapAccum preserve non-emptiness (Feature, next-minor)
- Revert RcRef Unify change (Bug Fix, next-minor)
Effect Experimental
- Add VariantSchema fieldFromKey utility (Feature)
Effect Platform
- Only call process.exit in runMain if signal has been intercepted (Bug Fix)
- Add OpenApiJsonSchema module (Feature)
- Revert "only call process.exit in runMain if signal has been intercepted (Bug Fix)
- Add more description annotations (Improvement)
- Add support for watch mode in .runMain (Feature)
Effect Schema
- Remove internal sorting of property signatures (Bug Fix)
- Remove default json schema annotations from string, number and boolean (Improvement)
- Add description annotation to the encoded part of NumberFromString (Improvement)
- Fix json schema test (Bug Fix)
- Fix open api json schema test (Bug Fix)
- JSON Schema: handle refinements where the 'from' part includes a transformation (Bug Fix)
- Add more description annotations (Improvement)
Effect SQL
- Fix Model findById data loader (Bug Fix)
- Add VariantSchema fieldFromKey utility (Feature)
- Add libSQL package (Feature)
- Use decoded ids in sql resolvers (Feature)
Effect Vitest
- Add vitest layer api (Feature)
Community highlights
This past week, we welcomed 20+ new Effecters to our Discord community - we're very excited to have you all on board!
- We started unveiling our speakers' lineup for our upcoming Effect Meetup in San Francisco. Our first speaker is Elliot Dauber, Founding Engineer at Markprompt, who will share his experience about learning Effect while onboarding at a new job and its impact to their developer team.
- The second announced speaker is Maxwell Brown, Founding Engineer at Effectful Technologies, that will be sharing insights on using Effect to build AI agents.
- Mattia Manzati gave a talk at the React Alicante Conference about Effect/Schema and the benefits it brings to data validation.
Effect content updates
- Tim Smart was live on Twitch on Thursday with a new episode of Reimagining ContentLayer with Effect. The video will soon be available on our YouTube.
- The fifth episode of Effect Cluster - Design Sync Session has already been published on the Effect YouTube Channel.
Closing notes
That's all for this week. Thank you for being a vital part of our community. Your feedback is highly valued as we fine-tune this format. Feel free to share your thoughts, and we'll do our best to tailor it to the needs of our community.
Effect Community Team