lundi 26 octobre 2015

How do I convert these initializers to instance initializers when upgrading from ember.js 1.11.3 to 1.12 to remove the deprecation warnings?

I'm in the process of upgrading our ember/ember-cli version from 1.11.3 to 1.12, in prep for hitting 1.13 and 2.0 soon after.

However, I'm having some trouble deciphering exactly what has changed wrt initializers and instance-initializers... have looked over the docs and read quite a lot of posts, but still not clear on how these work. I'm particularly confused about the difference between application.register and container.register, and when I should be using application, container, or instance.

Going from ember.js 1.11.3 to ember.js 1.12, ember-cli 0.2.2 to ember-cli 0.2.7

My initializers are fairly simple, can someone help me convert them? A brief overview or link to such on how exactly ember works during the initialization / instance-initialization process would also be helpful.

Here are my existing initializers from 1.11.3:

initializers/auth.js

import Ember from 'ember';
import Session from 'simple-auth/session';
import CustomAuthenticator from 'soxhub-client/authenticators/soxhub';
import CustomAuthorizer from 'soxhub-client/authenticators/soxhub';

export default {
  name: 'authentication',
  before: 'simple-auth',

  initialize: function(container, application) {
    Session.reopen({
        user: function() {
            var userId = this.get('user_id');
            if (!Ember.isEmpty(userId)) {
              return container.lookup('store:application').find('user', userId);
            }
        }.property('accountId')
    });

    console.log('registering authenticator on container');
    container.register('authenticator:soxhub', CustomAuthenticator);
    container.register('authorizer:soxhub', CustomAuthorizer);
  }
};

initializers/inject-session-into-service.js

    import Ember from 'ember';

    export default {
        name: 'inject-session-into-service',
        after: 'simple-auth',

        initialize: function(container, application) {
            console.log('ran initializer for sesion');
            application.inject('service:pusher', 'session', 'simple-auth-session:main');
        }
    };

initializers/inject-store-into-component.js

export default {
  name: "injectStoreIntoComponent",
  after: "store",

  initialize: function(container, application) {
    console.log('injecting store onto component');
    // container.typeInjection('component', 'store', 'store:main');
    application.inject('component', 'store', 'store:application');
  }
};




Aucun commentaire:

Enregistrer un commentaire