Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/canjs/can-migrate
CLI & codemod scripts for upgrading to CanJS 3, 4 and 5
https://github.com/canjs/can-migrate
Last synced: 6 days ago
JSON representation
CLI & codemod scripts for upgrading to CanJS 3, 4 and 5
- Host: GitHub
- URL: https://github.com/canjs/can-migrate
- Owner: canjs
- License: mit
- Created: 2017-03-15T15:02:32.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-11-23T01:57:38.000Z (almost 3 years ago)
- Last Synced: 2024-10-16T05:31:33.506Z (24 days ago)
- Language: JavaScript
- Homepage: https://canjs.com/doc/guides/upgrade/using-codemods.html
- Size: 895 KB
- Stars: 7
- Watchers: 3
- Forks: 3
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-codemods - can-migrate - CLI & codemod scripts for upgrading to CanJS 3, 4 and 5. (Misc / ant-design)
README
# can-migrate
[![npm version](https://badge.fury.io/js/can-migrate.svg)](https://www.npmjs.com/package/can-migrate)
[![Build Status](https://travis-ci.org/canjs/can-migrate.svg?branch=master)](https://travis-ci.org/canjs/can-migrate)
[![Greenkeeper badge](https://badges.greenkeeper.io/canjs/can-migrate.svg)](https://greenkeeper.io/)CLI & codemod scripts for upgrading to CanJS 3 to 6.
## Usage
Check out the [Using Codemods guide on canjs.com](https://canjs.com/doc/guides/upgrade/using-codemods.html) for an overview of this project, how to install `can-migrate`, how to use the CLI, and recommendations for how to migrate your app.
## Generate template and tests
There is now a quick and easy way to create a transform and the associated tests and diff files. Running:
```
./bin/can-migrate-generate.js --can-version=6
```
Will either add the files to an existing folder or create a folder and add the files. It will create `transform.js` | `transform-test.js` | `transform-input.js` | `transform-output.js` as well as adding the information into the `transforms.json`.## transforms.json
There is one entry in the array per type of template/test required to generate the transforms.
The current groups of transforms are:- Component Rename: rename parts of a component
- can.extend: swap out extend for assign or deep-assign
- can-data: swap out .data() for domData
- Replace imports/requires: Replace existing import/require statements and replace any references in the code
- Replace can.*: Replace can.* methods and add the corresponding import/require```
[
{
"copy": [ // Copy these files from src
{
"input": "...", // Source filename
"output: "...", // Destination filename
"type": "fixture|test|transform" // Type of copy determines where the destination file ends up (more on that below)
}
],
"generate": [ // Generate output from the template in src using "transforms
{
"template": "...", // Source filename
"outputPath: "...", // Destination filename
"type": "fixture|test|transform" // Type of copy determines where the destination file ends up (more on that below)
}
],
"transforms": [
{
"shortName": "component", // Short name of the transform for debugging and template filename generation
"oldSourceValues": [ // List of ways this component could be imported/required. Used to replace these with newer component import
"can/component/",
"can/component/component",
"can/component/component.js"
],
"newSourceValue": "can-component", // The new value of the import/require
"exampleLocalName": "MyComponent" // The example local name to include in generate documentation
"oldObjectName": "can", // Object name to look for
"oldPropertyName": "addEvent", // Property name to look for
"newPropertyName": addEventListener, // What should replace the object.property (false for nothing, could be a complex replacement like mutate.appendChild)
"sourceValue": "can-construct" // Key to look up the configurable naming in config.json
}
]
}
]
```## Types
- __test__: Copied to `lib`, file is added to `test/test.js`.
- __fixture__ : Copied to `test/fixtures`
- __transform__: Copied to `lib/transforms`