Ember CLI: where to reopen framework classes

ember-cli, ember.js

Solution

I think the best way to execute modules that have side effects would be to create an initializer. Something like this:

// app/initializers/modify-model.js
import DS from 'ember-data';

let alreadyRun = false;

export default {
    name: 'modify-model',
    initialize() {
        if (alreadyRun) {
            return;
        } else {
            alreadyRun = true;
        }

        DS.Model.reopen({
            // ...
        });
    }
};

Initializers are automatically run by Ember-CLI, so there's no need to call them yourself.

EDIT: As Karim Baaba pointed out, it's possible for initializers to run more than once. For an easy way around that, I've included an `alreadyRun` flag.

Problem

I'd like to reopen Ember or Ember Data framework classes. Using Ember CLI, where is the right place to put these so that they get initialized property? Here's an example of something I'd like to do: ``` import DS from 'ember-data'; DS.Model.reopen({ rollback: function() { this._super(); // do some additional stuff } }); ```

Original source

Related problems