app-to-addon-migrator

2.2.2 • Public • Published

app-to-addon-migrator

Build and Deploy Coverage Status semantic-release npm version

An opinionated cli tool to migrate Ember components from app to addons within a Yarn workspace.

NOTE: This cli tool works only with the following conventional folder structure for your Ember app.

|-app
|-packages
| |-addons
| |-engines
| | |-dashboards-engine
| | |-tickets-engine

Assumptions made by this tool

  • Your Ember app lives in the root of your project folder.
  • Engines live under packages/engines folder.
  • Addons live under packages/addons folder.
  • You are using Yarn workspaces.
  • You are using POD structure for your components.

Install

npm i -g app-to-addon-migrator

Usage

1. ateam (wizard UI)

ateam

ateam demo

2. atam (classic CLI)

atam [entity] [entity-name] [dest-folder]
atam route default packages/engines/dashboards-engine

After running the above command, the route default from app/routes/default.js will be moved to packages/engines/dashboards-engine/addon/routes/default.js

Dry-run

If you just want to see/verify the movement use the --dry-run or -d option.

atam route default packages/engines/dashboards-engine -d

This will print something like (without actually copying the files):

Moving route.js
---------------
app/routes/helpdesk/default.js
packages/engines/dashboards-engine/addon/routes/default.js


Moving route template.hbs
-------------------------
app/templates/helpdeskdefault.hbs
packages/engines/dashboards-engine/addon/templates/default.hbs

...

Folder namespace

If your source entities are namespaced within a folder you can use the -f option to specify the same before copying. Say for example you want to move a component called widget from app/components/dashboards

atam component widget packages/engines/dashboards-engine -f dashboards

Commands:

  atam adapter [adapter-name]               Copy an adapter from app to addon
  [destination]
  atam component [component-name]           Copy a component from app to addon
  [destination]
  atam constant [constant-name]             Copy a constant from app to addon
  [destination]
  atam helper [helper-name] [destination]   Copy a helper from app to addon
  atam mixin [mixin-name] [destination]     Copy a mixin from app to addon
  atam model [model-name] [destination]     Copy a model from app to addon
  atam route [route-name] [destination]     Copy a route with controller from
                                            app to addon
  atam routex [route-name] [destination]    Copy a route and its dependent
                                            components from app to addon
  atam service [storage-name]               Copy a storage from app to addon
  [destination]
  atam storage [storage-name]               Copy a storage from app to addon
  [destination]
  atam util [util-name] [destination]       Copy a util from app to addon
  atam validator [validator-name]           Copy a validator from app to addon
  [destination]

Options:
  --version      Show version number                                   [boolean]
  --help         Show help                                             [boolean]
  --dry-run, -d  Dry Run: Verify the movement without executing        [boolean]
  --pods, -p     Specify that the source components use PODS structure
                                                       [boolean] [default: true]


References

Package Sidebar

Install

npm i app-to-addon-migrator

Weekly Downloads

1

Version

2.2.2

License

MIT

Unpacked Size

64.7 kB

Total Files

32

Last publish

Collaborators

  • rajasegar