0.0.3 • Published 7 years ago

ember-cashay-twiddle-demo v0.0.3

Weekly downloads
1
License
MIT
Repository
github
Last release
7 years ago

ember-cashay-twiddle-demo

This is a wrapper addon for ember-cashay!

See it live!

Why a wrapper addon?

When you add an addon to Twiddle, it spawns a Docker container (via Amazon ECS) that installs the addon in a blank Ember project. The project is then built and persisted to Amazon S3. That's the end of the story. Any usage of the addon from that point on will reference the pre-built resource.

For simple addons, this works out great: the addon is only built once, so reloads are fast since Twiddle is only rebuilding the application code.

However, for more complex addons—any addon that affects the build itself (via broccoli and friends)—this is problematic. The vanilla project with the addon is built without any notion of an app-specific config, file structure, assets, etc. It can then be confusing to add the addon to Twiddle, adjust an ENV config, and see nothing change.

The workaround for this is an addon wrapper. The wrapper adds a default blueprint that injects "app-specific" files and configs. While these injected files and configs will not be modifyable in Twiddle, it at least gives us the ability to create a demo of our addons without hacking the crap out of the addon itself.

Specifically

  • This addon specifies a default blueprint
  • The default blueprint brings in the target addon via addPackagesToProject
  • The default blueprint creates files (that will be consumed by the target addon's build via treeForApp). These files are specific to a scenario appropriate for a Twiddle demonstration