Skip to content

Commit e2b5112

Browse files
authored
move build of ember-debug to rollup (#2645)
2 parents de007c4 + 317e198 commit e2b5112

20 files changed

+806
-316
lines changed

.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
# compiled output
55
/dist/
6+
/ember_debug/dist/
67

78
# misc
89
/coverage/

ember-cli-build.js

Lines changed: 1 addition & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,7 @@ const concatFiles = require('broccoli-concat');
77
const stew = require('broccoli-stew');
88
const writeFile = require('broccoli-file-creator');
99
const replace = require('broccoli-string-replace');
10-
const Babel = require('broccoli-babel-transpiler');
11-
const moduleResolver = require('amd-name-resolver').resolveModules({
12-
throwOnRootAccess: false,
13-
});
1410
const Funnel = require('broccoli-funnel');
15-
const ensurePosix = require('ensure-posix-path');
16-
const path = require('path');
1711
const packageJson = require('./package.json');
1812
const { map, mv } = stew;
1913

@@ -33,16 +27,6 @@ const options = {
3327
options.minifyJS = { enabled: false };
3428
options.minifyCSS = { enabled: false };
3529

36-
// Stolen from relative-module-paths.js in ember-cli-babel
37-
function getRelativeModulePath(modulePath) {
38-
return ensurePosix(path.relative(process.cwd(), modulePath));
39-
}
40-
41-
// Stolen from relative-module-paths.js in ember-cli-babel
42-
function resolveRelativeModulePath(name, child) {
43-
return moduleResolver(name, getRelativeModulePath(child));
44-
}
45-
4630
module.exports = function (defaults) {
4731
let checker = new VersionChecker(defaults);
4832
let emberChecker = checker.for('ember-source');
@@ -100,41 +84,11 @@ module.exports = function (defaults) {
10084
app.import('node_modules/compare-versions/index.js');
10185
app.import('node_modules/normalize.css/normalize.css');
10286

103-
// Ember Debug
104-
105-
let emberDebug = 'ember_debug';
106-
107-
let sourceMap = new Funnel('node_modules/source-map-js', {
108-
files: ['**/*.js'],
109-
destDir: 'ember-debug/deps',
110-
});
111-
112-
sourceMap = new Babel(sourceMap, {
113-
plugins: ['transform-commonjs'],
114-
});
115-
116-
const backburner = new Funnel('node_modules/backburner.js/dist/es6', {
117-
files: ['backburner.js'],
118-
destDir: 'ember-debug/deps',
119-
});
87+
let emberDebug = 'ember_debug/dist';
12088

12189
emberDebug = new Funnel(emberDebug, {
12290
destDir: 'ember-debug',
12391
include: ['**/*.js'],
124-
exclude: ['vendor/startup-wrapper.js', 'vendor/loader.js'],
125-
});
126-
127-
emberDebug = mergeTrees([sourceMap, backburner, emberDebug]);
128-
129-
emberDebug = new Babel(emberDebug, {
130-
moduleIds: true,
131-
getModuleId: getRelativeModulePath,
132-
plugins: [
133-
['@babel/plugin-transform-class-properties'],
134-
['@babel/plugin-transform-class-static-block'],
135-
['module-resolver', { resolvePath: resolveRelativeModulePath }],
136-
['@babel/plugin-transform-modules-amd', { noInterop: true }],
137-
],
13892
});
13993

14094
const previousEmberVersionsSupportedString = `[${packageJson.previousEmberVersionsSupported

ember_debug/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
node_modules/
2+
dist/

ember_debug/babel.config.cjs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
module.exports = {
2+
plugins: [
3+
['@babel/plugin-proposal-decorators', { version: 'legacy' }],
4+
['@babel/plugin-transform-class-properties'],
5+
['@babel/plugin-transform-class-static-block'],
6+
],
7+
8+
generatorOpts: {
9+
compact: false,
10+
},
11+
};

ember_debug/libs/source-map.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import BaseObject from 'ember-debug/utils/base-object';
2-
import * as SourceMap from 'ember-debug/deps/source-map';
2+
import * as SourceMap from 'source-map-js';
33
const notFoundError = new Error('Source map url not found');
44

55
export default class extends BaseObject {

ember_debug/package.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"name": "ember-debug",
3+
"private": true,
4+
"type": "module",
5+
"scripts": {
6+
"watch": "pnpm build --watch",
7+
"build": "rollup --config",
8+
"prepare": "pnpm build"
9+
},
10+
"devDependencies": {
11+
"@babel/plugin-proposal-decorators": "^7.25.9",
12+
"@babel/plugin-transform-class-properties": "^7.25.9",
13+
"@babel/plugin-transform-class-static-block": "^7.26.0",
14+
"@rollup/plugin-babel": "^6.0.4",
15+
"@rollup/plugin-commonjs": "^28.0.3",
16+
"@rollup/plugin-node-resolve": "^16.0.1",
17+
"backburner.js": "^2.8.0",
18+
"glob": "^11.0.2",
19+
"rollup": "^4.39.0",
20+
"source-map-js": "^1.2.1"
21+
},
22+
"exports": {
23+
"./*": "./*.js"
24+
}
25+
}

ember_debug/rollup.config.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import { nodeResolve } from '@rollup/plugin-node-resolve';
2+
import commonjs from '@rollup/plugin-commonjs';
3+
import { babel } from '@rollup/plugin-babel';
4+
import { globSync } from 'glob';
5+
6+
export default {
7+
input: [
8+
'main.js',
9+
...globSync('adapters/**/*.js'),
10+
'utils/version.js',
11+
'port.js',
12+
'utils/ember.js',
13+
'models/profile-node.js',
14+
'libs/promise-assembler.js',
15+
],
16+
output: {
17+
format: 'amd',
18+
amd: {
19+
autoId: true,
20+
// id: 'ember-debug/[name]',
21+
basePath: 'ember-debug',
22+
},
23+
chunkFileNames: '[name].js',
24+
dir: 'dist',
25+
},
26+
27+
plugins: [
28+
babel(),
29+
nodeResolve(),
30+
commonjs(),
31+
/**
32+
* this plugin forces each of the intenral dependencies for each of the chunks to be prefixed with ember-debug
33+
*/
34+
{
35+
name: 'rollup-plugin-name-amd-modules',
36+
renderChunk(code) {
37+
let splitCode = code.split('\n');
38+
39+
splitCode[0] = splitCode[0].replaceAll(
40+
/'\.\/([^']*)'/g,
41+
`'ember-debug/$1'`,
42+
);
43+
44+
return splitCode.join('\n');
45+
},
46+
},
47+
],
48+
};

ember_debug/utils/ember.js

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/* eslint-disable ember/new-module-imports */
12
import { emberSafeRequire } from 'ember-debug/utils/ember/loader';
23

34
let Ember;
@@ -14,31 +15,29 @@ try {
1415
Ember = window.Ember;
1516
}
1617

17-
let {
18-
ArrayProxy,
19-
Namespace,
20-
ActionHandler,
21-
ControllerMixin,
22-
CoreObject,
23-
Application,
24-
MutableArray,
25-
MutableEnumerable,
26-
NativeArray,
27-
Component,
28-
Observable,
29-
Evented,
30-
PromiseProxyMixin,
31-
Service,
32-
Object: EmberObject,
33-
ObjectProxy,
34-
VERSION,
35-
ComputedProperty,
36-
meta,
37-
get,
38-
set,
39-
computed,
40-
_captureRenderTree: captureRenderTree,
41-
} = Ember || {};
18+
let ArrayProxy = Ember.ArrayProxy;
19+
let Namespace = Ember.Namespace;
20+
let ActionHandler = Ember.ActionHandler;
21+
let ControllerMixin = Ember.ControllerMixin;
22+
let CoreObject = Ember.CoreObject;
23+
let Application = Ember.Application;
24+
let MutableArray = Ember.MutableArray;
25+
let MutableEnumerable = Ember.MutableEnumerable;
26+
let NativeArray = Ember.NativeArray;
27+
let Component = Ember.Component;
28+
let Observable = Ember.Observable;
29+
let Evented = Ember.Evented;
30+
let PromiseProxyMixin = Ember.PromiseProxyMixin;
31+
let Service = Ember.Service;
32+
let ObjectProxy = Ember.ObjectProxy;
33+
let VERSION = Ember.VERSION;
34+
let ComputedProperty = Ember.ComputedProperty;
35+
let meta = Ember.meta;
36+
let get = Ember.get;
37+
let set = Ember.set;
38+
let computed = Ember.computed;
39+
let EmberObject = Ember.Object;
40+
let captureRenderTree = Ember._captureRenderTree;
4241

4342
let getEnv = () => Ember.ENV;
4443

ember_debug/utils/ember/own-runloop.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import Backburner from 'ember-debug/deps/backburner';
1+
import Backburner from 'backburner.js';
22

33
let currentRunLoop = null;
44
export function _getCurrentRunLoop() {

ember_debug/vendor/startup-wrapper.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ var EMBER_VERSIONS_SUPPORTED = {{EMBER_VERSIONS_SUPPORTED}};
5555
});
5656

5757
let emberDebugMainModule = requireModule('ember-debug/main');
58-
if (!emberDebugMainModule['default']) {
58+
if (!emberDebugMainModule) {
5959
return;
6060
}
61-
window.EmberInspector = emberDebugMainModule['default'];
62-
window.EmberInspector.Adapter = requireModule('ember-debug/adapters/' + adapter)['default'];
61+
window.EmberInspector = emberDebugMainModule;
62+
window.EmberInspector.Adapter = requireModule('ember-debug/' + adapter);
6363

6464
onApplicationStart(function appStarted(instance) {
6565
let app = instance.application;
@@ -149,7 +149,7 @@ var EMBER_VERSIONS_SUPPORTED = {{EMBER_VERSIONS_SUPPORTED}};
149149
return;
150150
}
151151

152-
const adapterInstance = new (requireModule('ember-debug/adapters/' + currentAdapter)['default']);
152+
const adapterInstance = new (requireModule('ember-debug/' + currentAdapter));
153153

154154
adapterInstance.onMessageReceived(function(message) {
155155
if (message.type === 'app-picker-loaded') {

0 commit comments

Comments
 (0)