1- /* eslint-disable ember/new-module-imports, ember/no-test-import-export */
2-
1+ /* eslint-disable ember/no-test-import-export */
32import versionTest from './version-test' ;
43import { EMBER_VERSIONS_SUPPORTED } from './versions' ;
54import sendApps from './send-apps' ;
65import getApplications from './get-applications' ;
76import bootEmberInspector from './boot-ember-inspector' ;
87import setupInstanceInitializer from './setup-instance-initializer' ;
98import sendVersionMiss from './send-version-miss' ;
10-
11- let Ember ;
9+ import { guidFor , Application , VERSION } from '../utils/ember' ;
1210
1311function onReady ( callback ) {
1412 if (
@@ -36,27 +34,6 @@ export function onEmberReady(callback) {
3634 return ;
3735 }
3836
39- if ( ! Ember ) {
40- try {
41- Ember = requireModule ( 'ember/barrel' ) [ 'default' ] ;
42- } catch {
43- // noop
44- }
45- try {
46- Ember = Ember || requireModule ( 'ember' ) [ 'default' ] ;
47- } catch {
48- Ember = window . Ember ;
49- }
50- }
51-
52- if ( ! Ember ) {
53- return ;
54- }
55- // `Ember.Application` load hook triggers before all of Ember is ready.
56- // In this case we ignore and wait for the `Ember` load hook.
57- if ( ! Ember . RSVP ) {
58- return ;
59- }
6037 triggered = true ;
6138 callback ( ) ;
6239 } ;
@@ -74,21 +51,17 @@ export function startInspector(adapter) {
7451 // to determine when the application starts
7552 // but this definitely works
7653 function onApplicationStart ( callback ) {
77- if ( typeof Ember === 'undefined' ) {
78- return ;
79- }
80-
8154 const adapterInstance = new adapter ( ) ;
8255
8356 adapterInstance . onMessageReceived ( function ( message ) {
8457 if ( message . type === 'app-picker-loaded' ) {
85- sendApps ( adapterInstance , getApplications ( Ember ) ) ;
58+ sendApps ( adapterInstance , getApplications ( ) ) ;
8659 }
8760
8861 if ( message . type === 'app-selected' ) {
8962 let current = window . EmberInspector . _application ;
90- let selected = getApplications ( Ember ) . find (
91- ( app ) => Ember . guidFor ( app ) === message . applicationId ,
63+ let selected = getApplications ( ) . find (
64+ ( app ) => guidFor ( app ) === message . applicationId ,
9265 ) ;
9366
9467 if (
@@ -101,7 +74,7 @@ export function startInspector(adapter) {
10174 }
10275 } ) ;
10376
104- var apps = getApplications ( Ember ) ;
77+ var apps = getApplications ( ) ;
10578
10679 sendApps ( adapterInstance , apps ) ;
10780
@@ -112,7 +85,7 @@ export function startInspector(adapter) {
11285 let instance = app . __deprecatedInstance__ || applicationInstances [ 0 ] ;
11386 if ( instance ) {
11487 // App started
115- setupInstanceInitializer ( Ember , app , callback ) ;
88+ setupInstanceInitializer ( app , callback ) ;
11689 callback ( instance ) ;
11790 return true ;
11891 }
@@ -143,7 +116,7 @@ export function startInspector(adapter) {
143116 } ,
144117 } ) ;
145118 }
146- Ember . Application . initializer ( {
119+ Application . initializer ( {
147120 name : 'ember-inspector-booted' ,
148121 initialize : function ( app ) {
149122 setupInstanceInitializer ( app , callback ) ;
@@ -157,14 +130,25 @@ export function startInspector(adapter) {
157130 return ;
158131 }
159132
160- // If Ember doesn't exist, we should stop here to avoid issues with accessing `Ember.VERSION`
161- if ( ! Ember ) {
133+ /**
134+ * If we don't have a way to know the Ember version at this point
135+ * because the Ember app has not loaded and provided it somehow,
136+ * we can't continue (we need the version to know what version of
137+ * the Inspector to load).
138+ */
139+ if ( ! VERSION ) {
162140 return ;
163141 }
164142
165- if ( ! versionTest ( Ember . VERSION , EMBER_VERSIONS_SUPPORTED ) ) {
143+ /**
144+ * This is used to redirect to an old snapshot of the Inspector if the
145+ * inspected app uses an older Ember version than supported versions.
146+ * The code fits the Inspector supporting Ember back to 3.16: any version
147+ * before 3.16 is necessarily a classic Ember app with Ember defined.
148+ */
149+ if ( ( VERSION , ! versionTest ( VERSION , EMBER_VERSIONS_SUPPORTED ) ) ) {
166150 // Wrong inspector version. Redirect to the correct version.
167- sendVersionMiss ( Ember ) ;
151+ sendVersionMiss ( VERSION ) ;
168152 return ;
169153 }
170154
0 commit comments