The App Migration Helper is CLI tool for assisting with the migration of v1 App Framework apps to v2
The migrator executes a series of tasks to:
"frameworkVersion": "2.0"
Please refer to App Migration Scaffold for detailed documentation on developing, testing, building and deploying applications migrated to V2.
Option | Default | Required | Description |
---|---|---|---|
-p --path | Yes | The location of the v1 app | |
-r --replace-v1 | false | No | Whether to backup v1 files, and replace with v2 during migration. Backed up files will be moved to a v1 folder, alongside the new v2 files. |
-a --auto | false | No | Enables more end-to-end transformations of JavaScript, and CSS code. See the expanded Auto option section below for more details. |
Please note that auto transforms may not work as expected. Use with caution, and always test extensively after migration. For a better understanding of how auto transforms are expected to behave, look at tests for the migrate_app_js step tests. Transforms currently available:
zdSelectMenu
API available in v1.Source files are under src
, test files under src/test
. The codebase
currently makes use of ES6 features by way of the Typescript compiler. To that
end, all of the source code is written in Typescript. An added bonus is that the
package will ship with type declarations alongside the JavaScript.
You will need:
Yarn
NodeJS
brew install yarn && yarn install
Dependencies are declared via yarn
in the package.json
file.
Optionally install ts-node
and typescript
globally, like npm install -g ts-node typescript
.
Run ts-node src/index.ts migrate --path ~/path/to/v1/app/source
If not installing ts-node
and typescript
globally, reference the local
versions of those packages like ./node_modules/.bin/ts-node src/index.ts migrate --path ~/path/to/v1/app/source
After running yarn build
, it is possible to run the down-level version of the
Migrator like node ./lib/index.js migrate --path ~/path/to/v1/app/source
.
Similarly, the down-level tests can be run like ./node_modules/.bin/mocha ./lib/test/**/*.test.js
. Doing so effectively just demonstrates that the output
from the Typescript compiler is valid JavaScript for NodeJS.
yarn test
Tests are run using the mocha
test runner.
chai
is the assertion library. We make use of
chai-as-promised
to provide
more elegant assertions against async behaviour.
yarn test-watch
yarn build
yarn build-watch
We welcome contributions. First, please read the Pull Request Guidelines and Style Guide pages on our wiki.
The App Migrator will be deployed as a node package, and/or as a dependency of other projects.