Use case
Framework
Owner
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)
intowindow.location.href = $A;
when the$A
value is a URL starting withhttp://
orhttps://
. This refactor makes external navigation more explicit by usingwindow.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 newDescendant[]
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 auseMemo
-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 newuseSlate()
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 intoEditor.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
toEditor.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
touseNavigate
in React Router codebases. It replacesuseHistory
imports and updates all instances ofhistory.push
,history.replace
,go
,goBack
, andgoForward
to align with theuseNavigate
API.React Router/6/Switch To Routes
This codemod updates
Switch
components toRoutes
in React Router, in line with React Router v6 and newer. It also adjusts the imports, replacingSwitch
withRoutes
inreact-router-dom
import statements.React Router/6/Migrate StaticRouter Import
This codemod updates imports of
StaticRouter
to use thereact-router-dom/server
package instead ofreact-router-dom
, in line with updated React Router requirements.React Router/6/Seperate Link State Prop
This codemod simplifies the
Link
component by transforming itsto
prop from an object with apathname
to a string. It removes the unnecessary object wrapper around thepathname
, maintaining thestate
prop as is.React Router/6/Replace UseRouteMatchWithUseMatch
This codemod updates
useRouteMatch
calls to the neweruseMatch
function inreact-router-dom
. It also adjusts any arguments passed touseRouteMatch
, changingstrict
toend
andsensitive
tocaseSensitive
. Additionally, it ensures that imports are updated to reflect the removal ofuseRouteMatch
.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 separatestyle
andactiveStyle
props to the modernisActive
function inreact-router-dom
. It simplifies the logic by combining the two props into a singlestyle
prop with conditional styling.