Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/strapi/codemods

A set of scripts to help migrate Strapi plugins (and in some cases Strapi applications) from v3 to v4
https://github.com/strapi/codemods

hacktoberfest hacktoberfest2022

Last synced: 11 days ago
JSON representation

A set of scripts to help migrate Strapi plugins (and in some cases Strapi applications) from v3 to v4

Lists

README

        

![@strapi/codemods](./preview.png)

# @strapi/codemods

> CLI to help you migrate your Strapi applications & plugins from v3 to v4.

## Features

- Migrate a Strapi application to v4
- Migrate a Strapi plugin to v4
- Migrate a Strapi application or a plugin's dependecies to v4

## Getting started

### 🖐 Requirements

Before running any commands, be sure you have initialized a git repository, the working tree is clean, you've pushed your code to GitHub, and you are on a new branch.

### 🕹 Usage

#### Migrate

_Usage with prompt_

```bash
npx @strapi/codemods migrate
```

The prompt will ask you:

- What do you want to migrate?
- `Application` (migrate folder structure + dependencies)
- `Plugin` (migrate folder structure + dependencies)
- `Dependencies` (on migrate dependencies)
- Where is the project located? (default: `./`).
- _(plugin only)_ Where do you want to create the v4 plugin

_Bypass the prompt_

To bypass the prompts use one of the following commands:

- `Application` migration

```bash
npx @strapi/codemods migrate:application
```

- `Plugin` migration

```bash
npx @strapi/codemods migrate:plugin [pathForV4Plugin]
```

> Note: if no `pathForV4Plugin` is provided it will be created at `-v4`

- `Dependencies` migration

```bash
npx @strapi/codemods migrate:dependencies
```

#### Transform

:warning: _This command will modify your source code. Be sure you have initialized a git repository, the working tree is clean, you've pushed your code to GitHub, and you are on a new branch._

```bash
npx @strapi/codemods transform
```

The prompt will ask two questions:

- What kind of transformation you want to perform:

- `find` -> `findMany`: Change `find` method to `findMany`

- `strapi-some-package` -> `@strapi/some-package`: Update strapi scoped imports

- `.models` -> `.contentTypes`: Change model getters to content types

- `strapi.plugins['some-plugin']` -> `strapi.plugin('some-plugin')`: Update top level plugin getters

- `strapi.plugin('some-plugin').controllers['some-controller']` -> `strapi.plugin('some-plugin').controller('some-controller')`: Use plugin getters

- Add arrow function for service export

- Add strapi to bootstrap function params

- Where is the file(s) or folder to transform

Enjoy 🎉