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.
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.5 has been released.
- Our community on Discord reached 3240+ members!
- All talks from Effect Days 2024 are available on the Effect YouTube channel.
Technology
Here are all the technical changes that occurred last week.
Effect Core
- 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)
Effect SQL
- 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)
Effect Platform
- 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)
Effect Experimental
- Update dependencies (Improvement)
- Replace /platform RefailError with use of the "cause" property (Improvement)
- Allow ignoring empty lines when unpacking Ndjson (Feature)
Effect Cluster
- Fix: typo in DurableExecutionJournal.ts (Bug Fix)
- Update dependencies (Improvement)
Effect Schema
- 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)
Effect RPC
- Improve transformation accuracy in Router.toHandler (Improvement)
Effect Vitest
- Update dependencies (Improvement)
Effect CLI
- Update dependencies (Improvement)
- Feat: allow equals sign in aliased parameter values. (Feature)
Effect Opentelemetry
General Chores
- 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)
Community highlights
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. :)
- 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.
Effect content update
- 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.
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-07-12
Jul. 12th, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
Effect 3.5 release. 'Effect, A Functional Foundation For TypeScript' by Michael Arnaldi.
Read more
This Week in Effect - 2024-07-26
Jul. 26th, 2024
By Davide Scognamiglio, Mirela Prifti, Michael Arnaldi
Effect Schema 0.69 release.'What is Concurrency?' by Ethan Niser. 'Reimagining Contentlayer' ep. 2 by Michael Arnaldi and Maxwell Brown.
Read more