This Week in Effect - 2024-06-28
Hi Effecters!
Welcome back to This Week In Effect (TWIE), a weekly update to keep you in the loop with all the latest developments in the Effect community and ecosystem.
Effect is a powerful TypeScript library designed to help 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.
To get started with Effect, explore our quick-start guide and documentation below.
We want to make it easy for you to find everything you need to fully enjoy your Effect journey and actively engage with the community! In this blog post series, you'll find all the significant developments from the previous week, such as Discord discussions, noteworthy posts, YouTube content, and technical advancements.
Recent major updates
- Effect is now API stable with the Effect 3.0 release.
- Effect 3.4 has been released.
- Our community on Discord reached 3110+ members!
- Published the last talk from Effect Days 2024 on the Effect YouTube channel.
Technology
Here are all the technical changes that occurred last week.
Effect Core
- Enhance JSDocs for error tapping APIs with examples (Documentation Update)
- Add missing TypeLambda to Micro module (Feature)
- Reuse centralized do-notation code in Micro module (Refactor)
- Update to typescript 5.5 (Optimization)
- Align the Micro.catchIf signature with Effect.catchIf (Refactor)
- Support unification for Micro module (Feature)
- Support this argument for Micro.gen (Feature)
- Cleanup signal "abort" event handler in Micro.runFork (Bug Fix)
- Micro: add zipWith (Feature)
- Micro: update fromOption to change the failure type to NoSuchElementException (Improvement)
- Remove global AbortController from Micro (Bug Fix)
- Fix using unions with Match.withReturnType (Bug Fix)
- Feat: add Config.Config.Success (Feature, next-minor)
Effect Platform
- Add HttpMiddleware.cors (Feature)
- Coerce primitive types in UrlParams input (Improvement)
- Add Layer based api for creating HttpRouter's (Feature)
- Platform README: Minor formatting changes (Documentation Update)
- Add HttpRouter.Tag.unwrap api (Feature)
- Update to typescript 5.5 (Optimization)
- Docs: remove adapter examples (Documentation Update)
- Add HttpServerRespondable trait (Feature)
- Add HttpClientResponse.matchStatus* apis (Feature)
- Add HttpServerRequest.toURL api (Feature)
- Add some common services to HttpRouter.Default (Feature)
- Add mount apis to HttpRouter.Service (Feature)
- Filter undefined from UrlParams Input (Improvement)
- Remove the stack from HttpServerError.RouteNotFound (Bug Fix)
- Fix assignability of HttpMiddleware in HttpRouter.use (Bug Fix)
Effect Opentelemetry
- Update to typescript 5.5 (Optimization)
- Docs: remove adapter examples (Documentation Update)
Effect Experimental
- Update to typescript 5.5 (Optimization)
- Docs: remove adapter examples (Documentation Update)
- Fix deadlock in @effect/experimental dataLoader (Bug Fix)
Effect SQL
- Update to typescript 5.5 (Optimization)
- Docs: remove adapter examples (Documentation Update)
- Feature: add cloudflare @effect/sql-d1 package (Feature, next-minor)
Effect Cluster
- Update to typescript 5.5 (Optimization)
- Docs: remove adapter examples (Documentation Update)
Effect Schema
- Add make constructor to Class-based APIs (Feature)
- Fix error message display for composite errors when overwrite = false (Bug Fix)
- Update README.md with examples of extending schemas (Documentation Update)
- Add refineTypeId unique symbol to the refine interface to ensure correct inference of Fields in the Class APIs (Bug Fix)
- Revert the 0.67.22 patch as it is causing issues with other array filters (Bug Fix)
- Update to typescript 5.5 (Optimization)
- Special case S.parseJson to generate JSON Schemas by targeting the "to" side of transformations (Feature)
- Generate JSON Schemas correctly for a schema created by extending two refinements using the extend API, ensuring their JSON Schema annotations are preserved. (Enhancement)
Effect CLI
- Update to typescript 5.5 (Optimization)
- Docs: remove adapter examples (Documentation Update)
- Ensure help documentation always respects the cli configuration (Bug Fix)
Effect Printer
- Update to typescript 5.5 (Optimization)
Effect RPC
- Update to typescript 5.5 (Optimization)
Effect Typeclass
- Update to typescript 5.5 (Optimization)
Effect Vitest
- Update to typescript 5.5 (Optimization)
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!
- JSNation posted a recap of all the Open Source Awards Winners. We're very grateful for the nomination and the community support that made it possible for Effect to win The Most Exciting Use of Technology award.
- Michael Arnaldi joined the London Node.js User Group at the Cloudflare offices, where he showcased a new feature of the Effect bot: the Dad Joke.
- This week, the Evryg team successfully organized the second Effect Paris Meetup, featuring a large turnout and excellent talks. We are thrilled to see such an active French-speaking Effect community, and look forward to future meetups!
- Milad Vafaeifard, creator of Sign Language Tech and Effect advocate, gave a talk about Effect at the JSConf Budapest. We can't wait to watch it!
- Sandro Maglione reminded us of one of the main benefits of Effect: fewer packages installed, fewer dependencies to maintain.
Content update
- The Effect Days conference closing keynote was released on Monday: 'Effect: The Origin Story' by Michael Arnaldi. In this talk, Michael reflects on the journey of creating the open-source library, Effect, and the vibrant community that has formed around it. Developed using TypeScript and functional programming concepts, Effect has thrived also thanks to the community's organic growth and contributions.
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-06-21
Jun. 21st, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
Effect 3.4 & Schema 0.68.0 release. 'Discriminated Unions in TypeScript, Effect, and ArkType' by David Blass. Michael Arnaldi joining the London Node.js group
Read more
This Week in Effect - 2024-07-05
Jul. 5th, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
Technical updates in Effect. 'Effect, The Missing TypeScript Standard Library' by Tomáš Horáček.
Read more