• Goto To Location Href

    Codemod Description

    This codemod is designed to replace specific patterns in TypeScript files with updated code logic. It transforms instances of goto($A) into window.location.href = $A; when the $A value is a URL starting with http:// or https://. This refactor makes external navigation more explicit by using window.location.href.

  • Add Status To Error Handling

    This codemod improves error handling in SvelteKit by updating the way errors are returned in the load function. In SvelteKit 1, errors were handled inconsistently, often missing the status property or failing to trigger the handleError hook. SvelteKit 2 standardizes error handling by automatically including the status and message properties in error responses.

  • Event Handling On Change

    This codemod automates the update of your onChange event handler function to support the new Descendant[] type and selection handling introduced in version 0.104.

  • Insert Nodes

    Theis transformation ensures that calls to Transforms.insertNodes in the updated API remain functional and behave identically to their usage in the older API (v0.88) while adhering to the new, more explicit parameterization.

  • Schema Validation

    This transformation involves modifying how a paragraph block type is handled in a schema-like structure by replacing its static configuration with a runtime validation function (isValidNode).

    Before

  • With React Integration

    This codemod transforms the usage of withReact(createEditor()) into a useMemo-based structure, which wraps the editor creation and introduces an inline-checking function (isInline) for the editor instance. This transformation optimizes the creation of the editor object by memoizing it.

  • Editor State

    This codemod migrates from using useContext(EditorContext) to the new useSlate() hook in Slate. It transforms the editor state management approach and adds new state hooks.

  • Cursor Selection Handling

    This codemod shows how to migrate cursor and selection handling from Slate v0.88 to v0.104, including the Preventing runtime errors from null selections.

  • Editor Node

    This codemod transforms Editor.node usage into Editor.nodes format. It also handles cases with both destructuring and non-destructuring .The new API returns an iterator of nodes instead of a single node, requiring changes to existing code patterns.

  • Editor Has Path

    This guide covers the migration of Editor.hasPath usage from Slate.js v0.88 to v0.104. The API has changed from a property-based check to a function call pattern, requiring updates to existing code.

  • Editor Has Block

    Transform Editor.hasBlock to Editor.nodes

    This codemod replaces occurrences of Editor.hasBlock with the equivalent Editor.nodes structure. The transformation updates the code to use a more modern API, ensuring compatibility and improved functionality.

  • Custom Renderers

    This codemod updates the renderElement function to include TypeScript typings and adds a default case for rendering unsupported element types.

  • React 17 Default Props To Params

    Example

    This codemod turns X into Y. It also does Z. Note: this is a contrived example. Please modify it.

  • React Router/6/UseHistory To UseNavigate

    This codemod migrates useHistory to useNavigate in React Router codebases. It replaces useHistory imports and updates all instances of history.push, history.replace, go, goBack, and goForward to align with the useNavigate API.

  • React Router/6/Switch To Routes

    This codemod updates Switch components to Routes in React Router, in line with React Router v6 and newer. It also adjusts the imports, replacing Switch with Routes in react-router-dom import statements.

  • React Router/6/Migrate StaticRouter Import

    This codemod updates imports of StaticRouter to use the react-router-dom/server package instead of react-router-dom, in line with updated React Router requirements.

  • React Router/6/Seperate Link State Prop

    This codemod simplifies the Link component by transforming its to prop from an object with a pathname to a string. It removes the unnecessary object wrapper around the pathname, maintaining the state prop as is.

  • React Router/6/Replace UseRouteMatchWithUseMatch

    This codemod updates useRouteMatch calls to the newer useMatch function in react-router-dom. It also adjusts any arguments passed to useRouteMatch, changing strict to end and sensitive to caseSensitive. Additionally, it ensures that imports are updated to reflect the removal of useRouteMatch.

  • React Router/6/Reorder Matchpath Args

    This codemod reorders the arguments in the matchPath function calls. It switches the position of the string path and the second callback argument, improving consistency and readability.

  • React Router/6/Remove ActiveStyleprops

    This codemod updates NavLink components that use separate style and activeStyle props to the modern isActive function in react-router-dom. It simplifies the logic by combining the two props into a single style prop with conditional styling.