Skip to content
This repository has been archived by the owner. It is now read-only.
A set of utility scripts, written using jscodeshift, that can be used by community members and Facebook alike to upgrade Relay APIs in an automated fashion.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
jest
test
transforms
.eslintignore
.eslintrc
.gitattributes
.gitignore
.travis.yml
CONTRIBUTING.md
LICENSE
PATENTS
README.md
package.json

README.md

relay-codemod Build Status

This repository contains a collection of codemod scripts based for use with JSCodeshift that help update Relay APIs.

Setup & run

  • npm install -g jscodeshift
  • git clone https://github.com/relayjs/relay-codemod.git or download a zip file from https://github.com/relayjs/relay-codemod/archive/master.zip
  • jscodeshift -t <codemod-script> <file>
  • Use the -d option for a dry-run and use -p to print the output for comparison

Included scripts

upgrade-store-api-0.8

jscodeshift -t relay-codemod/transforms/upgrade-store-api-0.8.js <file>

Updates method calls on Relay.Store that were removed in Relay 0.8.0:

  • Relay.Store.update => Relay.Store.commitUpdate

upgrade-requires-1.0

jscodeshift -t relay-codemod/transforms/upgrade-requires-1.0.js <file>

Replaces requires to /classic for upgrading to 1.0.0:

  • require('react-relay') => require('react-relay/classic')
  • from 'react-relay' => from 'react-relay/classic'

migrate-to-modern-1.0

jscodeshift -t relay-codemod/transforms/migrate-to-modern-1.0.js <file>

Attempts (in a crude way) to migrate classic APIs to modern ones.

Caveats for initial version:

  • Only translates fragment containers
  • Only works if react-relay is imported/requried as "Relay"
  • Assumes object spread operator is ok to use

Recast options

Options to recast's printer can be provided through the printOptions command line argument

  • jscodeshift -t transform.js <file> --printOptions='{"quote":"double"}'
You can’t perform that action at this time.