This Week in Effect - 2024-08-23
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.6 has been released.
- The Effect community on Discord reached 3430+ members!
Technology
Here are all the technical changes that occurred last week.
Effect Core
- Add support for incrementing / decrementing a gauge (Feature)
- Fix type error when .pipe() has no arguments (Bug Fix)
- Fix Array.replaceOption signature (Bug Fix, next-minor)
- Refactor(Stream): left/right parameters and generic names (Refactor)
- Fix nested Config.array (Bug Fix)
- Preserve Array.replace Array.replaceOption non emptiness (Feature, next-minor)
- Preserve Array.modify and Array.modifyOption non emptiness (Feature, next-minor)
Effect Experimental
- Add VariantSchema.fields for accessing the fields (Feature)
- Guard against stale values in Model.DateTime fields (Feature)
- Add VariantSchema.fieldEvolve api (Feature)
- Make VariantSchema constructor apis internal (Enhancement)
- Ensure VariantSchema preserves opaque types (Bug Fix)
- Move VariantSchema.extract to factory, and copy type level behaviour (Bug Fix)
- Add VariantSchema.Union constructor (Feature)
Effect Platform
- Respond with 404 for NoSuchElementException in HttpServerRespondable (Bug Fix)
- Add binary support to KeyValueStore (Feature)
Effect SQL
- Add VariantSchema.fields for accessing the fields (Feature)
- Guard against stale values in Model.DateTime fields (Feature)
- Add Model.FieldOption & Model.Date (Feature)
- Update Model doc categories (Bug Fix)
- Add Model.makeRepository, for deriving a simple CRUD repo (Feature)
- Add Model.makeDataLoaders, for deriving CRUD data loaders (Feature)
- Infer Model repository id schema from id column name (Enhancement)
- Move VariantSchema.extract to factory, and copy type level behaviour (Bug Fix)
- Use DurationInput for Model makeDataLoaders window (Improvement)
- Enable multiple statements for sql-mysql2 (Feature)
- Add VariantSchema.Union constructor (Feature)
Effect Typeclass
- Typeclass: add let example (Documentation Update)
Effect CLI
General Chores
Community highlights
In the last week, we welcomed +50 new Effecters to our Discord community - we're very excited to have you all on board!
- Titouan Créac'h wrote about how he replaced tRPC with Effect/RPC in a Next.js app router application.
- Maxwell Brown and Michael Arnaldi aired two new episodes of 'Effect Cluster - Design Sync Session' on Twitch. The videos will soon be uploaded on the Effect YouTube Channel.
Effect content updates
-
Michael Arnaldi, author of Effect, blogged about the symmetries of the Effect and React mental models, emphasizing that as a React developer, you already know Effect to a great extent. Check out the blog post at the link below:
→ From React to Effect -
Meanwhile, the second episode of Effect Cluster - Design Sync Sessions is already available on YouTube:
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
Related Posts
This Week in Effect - 2024-08-16
Aug. 16th, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
Effect technical updates. 'The Problem With Error Handling in Typescript', video by Ethan Niser. Effect beginners course launch by Sandro Maglione.
Read more
This Week in Effect - 2024-08-30
Aug. 30th, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
Effect 3.7 release. 'Reimagining ContentLayer With Effect' by Maxwell Brown and Tim Smart ep.4
Read more