Skip to content

Commit 1808631

Browse files
authored
modernize ember debug (#2475)
1 parent 6821f55 commit 1808631

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+1391
-4318
lines changed

ember-cli-build.js

+17-16
Original file line numberDiff line numberDiff line change
@@ -104,22 +104,32 @@ module.exports = function (defaults) {
104104

105105
let emberDebug = 'ember_debug';
106106

107+
let sourceMap = new Funnel('node_modules/source-map/dist', {
108+
files: ['source-map.js'],
109+
destDir: 'ember-debug/deps',
110+
});
111+
112+
const backburner = new Funnel('node_modules/backburner.js/dist/es6', {
113+
files: ['backburner.js'],
114+
destDir: 'ember-debug/deps',
115+
});
116+
107117
emberDebug = new Funnel(emberDebug, {
108118
destDir: 'ember-debug',
109119
include: ['**/*.js'],
110-
exclude: [
111-
'vendor/loader.js',
112-
'vendor/source-map.js',
113-
'vendor/startup-wrapper.js',
114-
],
120+
exclude: ['vendor/startup-wrapper.js', 'vendor/loader.js'],
115121
});
116122

123+
emberDebug = mergeTrees([sourceMap, backburner, emberDebug]);
124+
117125
emberDebug = new Babel(emberDebug, {
118126
moduleIds: true,
119127
getModuleId: getRelativeModulePath,
120128
plugins: [
129+
['@babel/plugin-transform-class-properties'],
130+
['@babel/plugin-transform-class-static-block'],
121131
['module-resolver', { resolvePath: resolveRelativeModulePath }],
122-
['transform-es2015-modules-amd', { noInterop: true }],
132+
['@babel/plugin-transform-modules-amd', { noInterop: true }],
123133
],
124134
});
125135

@@ -149,21 +159,12 @@ module.exports = function (defaults) {
149159
],
150160
});
151161

152-
let sourceMap = new Funnel('ember_debug', {
153-
srcDir: 'vendor',
154-
files: ['source-map.js'],
155-
});
156-
157162
const loader = new Funnel('ember_debug', {
158163
srcDir: 'vendor',
159164
files: ['loader.js'],
160165
});
161166

162-
sourceMap = map(sourceMap, '**/*.js', function (content) {
163-
return `(function() {\n${content}\n}());`;
164-
});
165-
166-
emberDebug = mergeTrees([loader, startupWrapper, sourceMap, emberDebug]);
167+
emberDebug = mergeTrees([startupWrapper, emberDebug, loader]);
167168

168169
emberDebug = concatFiles(emberDebug, {
169170
headerFiles: ['loader.js'],

ember_debug/adapters/basic.js

+31-36
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,15 @@
11
/* eslint no-console: 0 */
22
import { onReady } from 'ember-debug/utils/on-ready';
3+
import BaseObject from '../utils/base-object';
34

4-
import { A } from 'ember-debug/utils/ember/array';
5-
import EmberObject, { computed } from 'ember-debug/utils/ember/object';
6-
import { Promise, resolve } from 'ember-debug/utils/rsvp';
7-
8-
export default EmberObject.extend({
5+
export default class BasicAdapter extends BaseObject {
96
init() {
10-
resolve(this.connect(), 'ember-inspector').then(
11-
() => {
12-
this.onConnectionReady();
13-
},
14-
null,
15-
'ember-inspector'
16-
);
7+
Promise.resolve(this.connect()).then(() => {
8+
this.onConnectionReady();
9+
}, null);
1710

1811
this._messageCallbacks = [];
19-
},
12+
}
2013

2114
/**
2215
* Uses the current build's config module to determine
@@ -25,17 +18,21 @@ export default EmberObject.extend({
2518
* @property environment
2619
* @type {String}
2720
*/
28-
environment: computed(function () {
29-
return requireModule('ember-debug/config')['default'].environment;
30-
}),
21+
get environment() {
22+
if (!this.__environment) {
23+
this.__environment =
24+
requireModule('ember-debug/config')['default'].environment;
25+
}
26+
return this.__environment;
27+
}
3128

3229
debug() {
3330
return console.debug(...arguments);
34-
},
31+
}
3532

3633
log() {
3734
return console.log(...arguments);
38-
},
35+
}
3936

4037
/**
4138
* A wrapper for `console.warn`.
@@ -44,14 +41,14 @@ export default EmberObject.extend({
4441
*/
4542
warn() {
4643
return console.warn(...arguments);
47-
},
44+
}
4845

4946
/**
5047
Used to send messages to EmberExtension
5148
5249
@param {Object} type the message to the send
5350
*/
54-
sendMessage(/* options */) {},
51+
sendMessage(/* options */) {}
5552

5653
/**
5754
Register functions to be called
@@ -61,7 +58,7 @@ export default EmberObject.extend({
6158
*/
6259
onMessageReceived(callback) {
6360
this._messageCallbacks.push(callback);
64-
},
61+
}
6562

6663
/**
6764
Inspect a specific DOM node. This usually
@@ -74,13 +71,13 @@ export default EmberObject.extend({
7471
7572
@param {Node} node
7673
*/
77-
inspectNode(/* node */) {},
74+
inspectNode(/* node */) {}
7875

7976
_messageReceived(message) {
8077
this._messageCallbacks.forEach((callback) => {
8178
callback(message);
8279
});
83-
},
80+
}
8481

8582
/**
8683
* Handle an error caused by EmberDebug.
@@ -109,7 +106,7 @@ export default EmberObject.extend({
109106
this.warn('EmberDebug has errored:');
110107
throw error;
111108
}
112-
},
109+
}
113110

114111
/**
115112
@@ -131,26 +128,24 @@ export default EmberObject.extend({
131128
}
132129
}, 10);
133130
});
134-
}, 'ember-inspector');
135-
},
131+
});
132+
}
136133

137134
willDestroy() {
138-
this._super();
135+
super.willDestroy();
139136
clearInterval(this.interval);
140-
},
137+
}
141138

142-
_isReady: false,
143-
_pendingMessages: computed(function () {
144-
return A();
145-
}),
139+
_isReady = false;
140+
_pendingMessages = [];
146141

147142
send(options) {
148143
if (this._isReady) {
149144
this.sendMessage(...arguments);
150145
} else {
151146
this._pendingMessages.push(options);
152147
}
153-
},
148+
}
154149

155150
/**
156151
Called when the connection is set up.
@@ -160,7 +155,7 @@ export default EmberObject.extend({
160155
// Flush pending messages
161156
const messages = this._pendingMessages;
162157
messages.forEach((options) => this.sendMessage(options));
163-
messages.clear();
158+
messages.length = 0;
164159
this._isReady = true;
165-
},
166-
});
160+
}
161+
}

ember_debug/adapters/bookmarklet.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import BasicAdapter from './basic';
22

3-
export default BasicAdapter.extend({
3+
export default class extends BasicAdapter {
44
init() {
5-
this._super();
5+
super.init();
66
this._listen();
7-
},
7+
}
88

99
sendMessage(options) {
1010
options = options || {};
1111
window.emberInspector.w.postMessage(options, window.emberInspector.url);
12-
},
12+
}
1313

1414
_listen() {
1515
window.addEventListener('message', (e) => {
@@ -27,5 +27,5 @@ export default BasicAdapter.extend({
2727
unloading: true,
2828
});
2929
};
30-
},
31-
});
30+
}
31+
}

ember_debug/adapters/chrome.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
import WebExtension from './web-extension';
2-
export default WebExtension.extend();
2+
export default class extends WebExtension {}

ember_debug/adapters/firefox.js

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
11
/* eslint no-empty:0 */
22
import WebExtension from './web-extension';
33

4-
export default WebExtension.extend({
4+
export default class extends WebExtension {
55
debug() {
66
// WORKAROUND: temporarily workaround issues with firebug console object:
77
// - https://github.com/tildeio/ember-extension/issues/94
88
// - https://github.com/firebug/firebug/pull/109
99
// - https://code.google.com/p/fbug/issues/detail?id=7045
1010
try {
11-
this._super(...arguments);
11+
super.debug(...arguments);
1212
} catch (e) {}
13-
},
13+
}
14+
1415
log() {
1516
// WORKAROUND: temporarily workaround issues with firebug console object:
1617
// - https://github.com/tildeio/ember-extension/issues/94
1718
// - https://github.com/firebug/firebug/pull/109
1819
// - https://code.google.com/p/fbug/issues/detail?id=7045
1920
try {
20-
this._super(...arguments);
21+
super.log(...arguments);
2122
} catch (e) {}
22-
},
23-
});
23+
}
24+
}

ember_debug/adapters/web-extension.js

+15-20
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,20 @@ import { run } from 'ember-debug/utils/ember/runloop';
77
const { isArray } = Array;
88
const { keys } = Object;
99

10-
export default BasicAdapter.extend({
10+
export default class extends BasicAdapter {
1111
init() {
12-
this.set('_channel', new MessageChannel());
13-
this.set('_chromePort', this.get('_channel.port1'));
14-
15-
this._super(...arguments);
16-
},
12+
this._channel = new MessageChannel();
13+
this._chromePort = this._channel?.port1;
14+
super.init();
15+
}
1716

1817
connect() {
1918
const channel = this._channel;
20-
return this._super(...arguments).then(
21-
() => {
22-
window.postMessage('debugger-client', '*', [channel.port2]);
23-
this._listen();
24-
},
25-
null,
26-
'ember-inspector'
27-
);
28-
},
19+
return super.connect().then(() => {
20+
window.postMessage('debugger-client', '*', [channel.port2]);
21+
this._listen();
22+
}, null);
23+
}
2924

3025
sendMessage(options = {}) {
3126
// If prototype extensions are disabled, `Ember.A()` arrays
@@ -34,7 +29,7 @@ export default BasicAdapter.extend({
3429
// native array.
3530
options = deepClone(options);
3631
this._chromePort.postMessage(options);
37-
},
32+
}
3833

3934
/**
4035
* Open the devtools "Elements" and select an DOM node.
@@ -65,8 +60,8 @@ export default BasicAdapter.extend({
6560

6661
window[name] = node;
6762

68-
this.get('namespace.port').send('view:inspectDOMNode', { name });
69-
},
63+
this.namespace.port.send('view:inspectDOMNode', { name });
64+
}
7065

7166
_listen() {
7267
let chromePort = this._chromePort;
@@ -95,8 +90,8 @@ export default BasicAdapter.extend({
9590
});
9691

9792
chromePort.start();
98-
},
99-
});
93+
}
94+
}
10095

10196
// On some older Ember version `Ember.ENV.EXTEND_PROTOTYPES` is not
10297
// guarenteed to be an object. While this code only support 3.4+ (all

ember_debug/adapters/websocket.js

+9-12
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
import BasicAdapter from './basic';
22
import { onReady } from 'ember-debug/utils/on-ready';
3-
4-
import { computed } from 'ember-debug/utils/ember/object';
53
import { run } from 'ember-debug/utils/ember/runloop';
6-
import { Promise } from 'ember-debug/utils/rsvp';
74

8-
export default BasicAdapter.extend({
5+
export default class extends BasicAdapter {
96
sendMessage(options = {}) {
107
this.socket.emit('emberInspectorMessage', options);
11-
},
8+
}
129

13-
socket: computed(function () {
10+
get socket() {
1411
return window.EMBER_INSPECTOR_CONFIG.remoteDebugSocket;
15-
}),
12+
}
1613

1714
_listen() {
1815
this.socket.on('emberInspectorMessage', (message) => {
@@ -35,11 +32,11 @@ export default BasicAdapter.extend({
3532
});
3633
}
3734
});
38-
},
35+
}
3936

4037
_disconnect() {
4138
this.socket.removeAllListeners('emberInspectorMessage');
42-
},
39+
}
4340

4441
connect() {
4542
return new Promise((resolve, reject) => {
@@ -58,9 +55,9 @@ export default BasicAdapter.extend({
5855
}).then(() => {
5956
this._listen();
6057
});
61-
},
58+
}
6259

6360
willDestroy() {
6461
this._disconnect();
65-
},
66-
});
62+
}
63+
}

0 commit comments

Comments
 (0)