• Remix Js/V2/Migration Recipe

    This recipe is a set of codemods that will help migrate to Remix.js v2.

  • Remix Js/V2/Webpack V2 Migrate Dev Server Port

    In your remix.config.js, rename devServerPort to future.v2_dev.port.

  • Remix Js/V2/Typescript 2 Update Links Function And Property Names

    Route links properties should all be the React camelCase values instead of HTML lowercase values.

  • Remix Js/V2/Rename Browser Build Directory

    In your remix.config.js, rename browserBuildDirectory to assetsBuildDirectory.

    Before

  • Remix Js/V2/Remix Run 1 Use Transition To Use Navigation

    This hook is now called useNavigation to avoid confusion with the recent React hook by the same name. It also no longer has the type field and flattens the submission object into the navigation object itself.

  • Remix Js/V2/Remix 1 Use Route Error Codemod

    In v1, a thrown Response rendered the closest CatchBoundary while all other unhandled exceptions rendered the ErrorBoundary. In v2 there is no CatchBoundary and all unhandled exceptions will render the ErrorBoundary, response or otherwise.

  • Remix Js/V2/Remix 1 Replace Response With Create Readable Stream

    ne place this is likely to surface and require a change is your app/entry.server.tsx file, where you'll also need to convert the Node PassThrough into a web ReadableStream via createReadableStreamFromReadable

  • Remix Js/V2/Remix 1 Add Meta V1 Wrapper

    Using the metaV1 function, you can pass in the meta function's arguments and the same object it currently returns. This function will use the same merging logic to merge the leaf route's meta with its direct parent route meta before converting it to an array of meta descriptors usable in v2.

  • Remix Js/V2/Nodejs Module Exports Server Build Directory To Path

    In your remix.config.js, rename serverBuildDirectory to serverBuildPath and specify a module path, not a directory.

  • Remix Js/V2/Fetcher Submission Properties Flattening

    Like useNavigation, useFetcher has flattened the submission and removed the type field.

  • Remix Js/V2/Add Matches Param And Array Return To Meta Export

    Instead of returning an object from meta, you will now return an array of descriptors and manage the merge yourself. This brings the meta API closer to links, and it allows for more flexibility and control over how meta tags are rendered.

  • Valtio/V2/Migration Recipe

    This recipe provides a collection of codemods to help you migrate your codebase to Valtio v2. These codemods are designed to streamline the transition process by automating common code transformations due to behavioral changes in Valtio v2.

  • Valtio/V2/Use Snapshot Migration

    This codemod automates the migration of Valtio code to accommodate changes in the behavior of useSnapshot(). In recent updates, useSnapshot() has been modified for better compatibility with useMemo and the upcoming React compiler. This codemod updates your code to ensure optimal performance and compatibility with these changes.

  • Valtio/V2/Deep Clone Proxy Objects

    In Valtio v2, the behavior of the proxy(obj) function has changed. In v1, proxy(obj) was a pure function that deeply copied the object obj. In v2, proxy(obj) is an impure function that deeply modifies obj. This codemod updates your code to accommodate these changes by incorporating deepClone to ensure that objects are deeply copied as they were in v1.

  • Msw/2/Upgrade Recipe

    This recipe is a set of codemods that will upgrade your project from using msw v1 to v2.

  • Msw/2/Response Usages

    To send a response from MSW handler, one would previously use something like res(ctx.text("Hello world")). In msw v2, this is achieved by returning a native WebAPI Response object. msw v2 conveniently exposes a HttpResponse function that has useful methods for creating just that object with a desired body. This codemod replaces the old res calls with the new HttpResponse function calls and a bunch of ctx utilities that usually go with it. See examples below.

  • Msw/2/Req Passthrough

    A new way of calling a passthrough is available in msw v2. This codemod replaces req.passthrough() calls with the new way of doing that using exported function.

  • Msw/2/Print Handler

    A new way of listing all handlers is preferred in msw v2. This codemod replaces printHandlers() calls with the new way of doing that.

  • Msw/2/Lifecycle Events Signature

    In msw v2, lifecycle events callback methods have changed their signature. This codemod replaces usages if its arguments with the new ones.