ECMAScript 2021 introduces Promise.any() and AggregateError

ECMAScript 2021 introduces Promise.any() method which accepts an iterable of promises and waits for the first promise to fulfill, and its result becomes the outcome. If all the passed promises are rejected, it returns an AggregateError.

Rails 7 adds Marginalia to Query Logs

With this update, Marginalia SQL comments are added to Rails as a native feature!

Rails 7 adds support for ActiveStorage expiring URLs

Rails 7 adds the `expires_in` option in the ActiveStorage URL helper for generating expiring URLs.

Keep the React app responsive even during large screen updates with startTransition API introduced in React 18

The newly introduced startTransition API helps to improve the user interactions by categorizing the state updates as urgent and non-urgent.

Rails 7 adds ActiveRecord::Relation#structurally_compatible?

Rails 7 adds ActiveRecord::Relation#structurally_compatible? to provide an easy way to check if two relations are structurally compatible before running `or` or `and` query on it.

Rails 7 adds attributes_for_database to return attributes as they would be in the database

Before this update, serializing an ActiveRecord object led to funny outcomes. Let's dive in!

Rails 7 allows anything that responds to `#to_str` into redirect_to

Rails 7 adds support for redirecting using any arguments that respond_to `#to_str`.

ECMAScript 2021 introduces replaceAll method and numeric separators

ECMAScript 2021 introduces the replaceAll() method to replace all occurrences of a substring in a string with another string and numeric separators to allow a separator character between digits.

Rails 7 optimizes remove_columns to use a single SQL statement when supported

Rails 7 remove_columns will now trigger a single SQL statement to remove all columns if the database supports it, instead of querying multiple SQL statements for removing individual columns.

Rails 7 now consistently renders button_to

Rails 7 introduced a config that helps button_to consistently render out to the button HTML tag.