/clipanion-v3-codemod

Clipanion v2 to v3 codemod

Primary LanguageTypeScriptMIT LicenseMIT

clipanion-v3-codemod

Clipanion v2 to v3 codemod

npm GitHub Actions Node Workflow License


clipanion-v3-codemod is a Clipanion v2 to v3 codemod written with jscodeshift. It can migrate most Clipanion v2 code, with a few exceptions (warnings will be emitted):

  • static schema (and Command.Schema) - has to be manually migrated to Typanion
  • multiple option decorators on the same class property - this isn't supported by Clipanion v3

Features

  • Transforms Command.* class property decorators into Option.* class property initializers
  • Transforms Command.Path decorators into static paths
  • Transforms Command.Entries.* to Builtins.*Command
  • Transforms Command.addPath fallback usage into push calls to the Command.paths static property
  • Transforms Command.addOption fallback usage into Option.* initializers

Installation

Using Yarn:

yarn add clipanion-v3-codemod jscodeshift -D

Using npm:

npm install clipanion-v3-codemod jscodeshift -D

TypeScript type definitions are included out-of-the-box.

Usage

Using with Yarn:

yarn jscodeshift -t $(yarn node -p "require.resolve('clipanion-v3-codemod')") <path>

Using with npx:

npx jscodeshift -t $(node -p "require.resolve('clipanion-v3-codemod')") <path>