📢 Happy to announce that i'm now part of @EffectTS_ open source team core members. I'll help maintain the sql subset packages i contributed to. I'd like to thank @thefubhy and @MichaelArnaldi and the rest of effect team for welcoming me in this amazing project.
This Week in Effect - 2024-07-19
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 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.
To get started, below you’ll find links to our documentation as well as our guide for installing Effect. Enjoy!
Recent major updates:
- Effect is API stable with the Effect 3.0 release.
- Effect 3.5 has been released.
- Our community on Discord reached 3240+ members!
- All talks from Effect Days 2024 are available on the Effect YouTube channel.
Here are all the technical changes that occurred last week.
- Render nested causes in Cause.pretty (Improvement)
- If performance.timeOrigin is 0, use performance.now() directly in Clock (Improvement)
- Add support for Refinements to Predicate.or (Feature)
- Update dependencies (Improvement)
- Use “unbounded” buffer for Stream.fromEventListener (Improvement)
- Changed Stream.groupByKey JSDoc category from utils to grouping (Refactor)
- Correctly exclude symbols from Record.keys (Bug Fix)
- Fix YieldableError rendering on bun (Bug Fix)
- Forbid usage of property “name” in Effect.Tag (Bug Fix)
- Implement Struct.keys as a typed alternative to Object.keys (Feature, next-minor)
- Feat(Stream): add Stream.onStart api (Feature, next-minor)
- Add Stream.asyncPush api (Feature, next-minor)
- Feat(Stream): onEnd (Feature, next-minor)
- Update dependencies (Improvement)
- Replace /platform RefailError with use of the “cause” property (Improvement)
- Sql-kysely: fix error handling in internal executeCommit (Bug Fix, next-minor)
- Update dependencies (Improvement)
- Refactor & simplify /platform backing workers (Refactor)
- Replace /platform RefailError with use of the “cause” property (Improvement)
- Add NodeHttpServerRequest.toServerResponse for accessing the raw node response (Feature)
- Allow creating browser WorkerRunner from a MessagePort (Feature)
- Ensure /platform HttpApp.toWebHandler runs Stream’s with the current runtime (Bug Fix)
- Remove cjs /platform dependencies (Improvement)
- Update dependencies (Improvement)
- Replace /platform RefailError with use of the “cause” property (Improvement)
- Allow ignoring empty lines when unpacking Ndjson (Feature)
- Fix: typo in DurableExecutionJournal.ts (Bug Fix)
- Update dependencies (Improvement)
- Update dependencies (Improvement)
- Align schema readme Schema.message -> Schema.annotations (Documentation Update)
- Fix: Correct Handling of JSON Schema Annotations in Refinements (Bug Fix)
- JSON Schema: change default behavior for property signatures containing undefined (Bug Fix)
- Remove type-level error message from optional signature (Bug Fix)
- Add “Naming Conventions” doc section (Documentation Update)
- Move Arbitrary / Pretty / JSON Schema / Equivalences to top level sections (Documentation Update)
- Improve transformation accuracy in Router.toHandler (Improvement)
- Update dependencies (Improvement)
- Update dependencies (Improvement)
- Feat: allow equals sign in aliased parameter values. (Feature)
- Disable bun test suite
- Use pkg.pr.new for snapshots (Optimization)
- Do not use compact mode as it is broken (Bug Fix)
- Make sure snapshot URLs are split on the last @ character (Bug Fix)
In the last week, we welcomed +40 new Effecters to our Discord community - we’re very excited to have you all on board!
-
Ecyrbe, Tech Lead and creator of Zodios, joined the Effect core team and will bring his experience to further improve the SQL subset packages.
-
We are proud of our team’s growth and the many talented individuals it continues to attract, and we’re happy to see it doesn’t go unnoticed. :)
Replying to @ecyrbedev I love how Effect has become a magnet for a lot of the best typescript wizards, haha
-
Hono gets a new Effect Schema Validator middleware thanks to the work of Günther Brunner. Günther first introduced the Effect Schema PR at the Hono conference in June 2024.
The @EffectTS_ Schema PR I introduced at @honojs Conference is now merged! Hono gets a new Effect Schema Validator middleware. Just a small start on exploring ways to integrate both ecosystems. Check it out & share your thoughts: github.com/honojs/middlew…
- Michael Arnaldi and Maxwell Brown went live on Wednesday with Reimagining Contentlayer showing the latest Effect superpowers. The video will be available soon on the Effect YouTube Channel. In the meantime, you can watch it on Mike’s Twitch.
Will be live with @imax153 on twitch.tv/mikearnaldi in about 10 minutes to reimagine Contentlayer thanks to the latest Effect superpowers
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