Skip to content

Commit d9f45ed

Browse files
Merge pull request #1968 from NullVoxPopuli/pre-optimize-vite-load
Optimize REPL load - Rolldown, etc
2 parents 26f7a54 + 0660c2c commit d9f45ed

File tree

26 files changed

+1316
-293
lines changed

26 files changed

+1316
-293
lines changed

apps/repl/app/app.ts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import { isDevelopingApp, macroCondition } from '@embroider/macros';
77
import PageTitleService from 'ember-page-title/services/page-title';
88
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
99
// @ts-ignore - no types
10-
import EmberResizeObserverService from 'ember-resize-observer-service/addon/services/resize-observer';
1110
import Application from 'ember-strict-application-resolver';
1211

1312
import '@nullvoxpopuli/limber-shared/theme.css';
@@ -30,18 +29,10 @@ export default class App extends Application {
3029
...import.meta.glob('./routes/{edit,index,application,error-404}.ts', { eager: true }),
3130
...import.meta.glob('./services/{editor,status}.ts', { eager: true }),
3231
...import.meta.glob('./controllers/*.ts', { eager: true }),
33-
...import.meta.glob('./templates/docs/*.gts', { eager: true }),
34-
...import.meta.glob('./templates/{application,edit,output,docs,error-404}.gts', {
32+
...import.meta.glob('./templates/{application,edit,output,error-404}.gts', {
3533
eager: true,
3634
}),
3735

38-
// /////////////////
39-
// To Eliminate
40-
// /////////////////
41-
42-
// Used by ember-container-query
43-
'./services/resize-observer': EmberResizeObserverService,
44-
4536
// /////////////////
4637
// To keep
4738
// /////////////////

apps/repl/app/modifiers/-utils/highlighting.ts

Lines changed: 0 additions & 93 deletions
This file was deleted.

apps/repl/app/modifiers/highlighted.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { modifier } from 'ember-modifier';
66

77
import { isAllowedFormat } from '#app/languages.gts';
88

9-
import { getHighlighter } from './-utils/highlighting';
9+
import { getHighlighter } from '@nullvoxpopuli/limber-shared';
1010

1111
interface Signature {
1212
Element: HTMLPreElement;

apps/repl/app/router.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ function bundle(name: string, loader: () => Promise<{ default: unknown }>[]) {
2121
const slashName = name.replaceAll('.', '/');
2222
const results: Record<string, unknown> = {};
2323

24-
if (template) results[`limber/templates/${slashName}`] = template.default;
25-
if (route) results[`limber/routes/${slashName}`] = route.default;
26-
if (controller) results[`limber/controllers/${slashName}`] = controller.default;
24+
if (template) results[`./templates/${slashName}`] = template.default;
25+
if (route) results[`./routes/${slashName}`] = route.default;
26+
if (controller) results[`./controllers/${slashName}`] = controller.default;
2727

2828
return {
2929
default: results,
@@ -34,6 +34,7 @@ function bundle(name: string, loader: () => Promise<{ default: unknown }>[]) {
3434

3535
(window as any)._embroiderRouteBundles_ = [
3636
bundle('docs', () => [import('./templates/docs.gts')]),
37+
bundle('docs.index', () => [import('./templates/docs/index.gts')]),
3738
bundle('docs.repl-sdk', () => [import('./templates/docs/repl-sdk.gts')]),
3839
bundle('docs.ember-repl', () => [import('./templates/docs/ember-repl.gts')]),
3940
bundle('docs.embedding', () => [import('./templates/docs/embedding.gts')]),

apps/repl/app/routes/application.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ import Shadowed from 'ember-primitives/components/shadowed';
77
import { setupTabster } from 'ember-primitives/tabster';
88
import { getCompiler, setupCompiler } from 'ember-repl';
99

10-
import { getHighlighter } from '#app/modifiers/-utils/highlighting.ts';
1110
import CopyMenu from '#components/copy-menu.gts';
1211

12+
import { getHighlighter } from '@nullvoxpopuli/limber-shared';
13+
1314
import { importMap } from './import-map.ts';
1415

1516
import type Owner from '@ember/owner';

apps/repl/app/templates/edit.gts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { ExternalLink as Link } from '@nullvoxpopuli/limber-shared';
99

1010
import { Editor } from './edit/editor/index.gts';
1111
import Guest from './edit/guest.gts';
12-
import Header from './edit/header';
12+
import Header from './edit/header.gts';
1313
import Layout from './edit/layout/index.gts';
1414

1515
import type RouterService from '@ember/routing/router-service';

apps/repl/app/templates/error-404.gts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import Header from './edit/header';
1+
import Header from './edit/header.gts';
22

33
import type { TOC } from '@ember/component/template-only';
44

apps/repl/app/utils/editor-text.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ export class FileURIComponent {
290290
const current = this.#currentURL();
291291
let { pathname: base, searchParams: activeQPs } = new URL(current);
292292

293-
if (base === '/') {
293+
if (base === '/' || base.startsWith('/docs')) {
294294
base = '/edit/';
295295
}
296296

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
const { buildMacros } = require('@embroider/macros/babel');
1+
import { buildMacros } from '@embroider/macros/babel';
22

33
const macros = buildMacros({
44
configure(config) {
5-
config.setGlobalConfig(__filename, '@embroider/core', { active: true });
5+
config.setGlobalConfig(import.meta.filename, '@embroider/core', { active: true });
66
},
77
});
88

9-
module.exports = {
9+
export default {
1010
plugins: [
1111
[
1212
'@babel/plugin-transform-typescript',
@@ -32,14 +32,14 @@ module.exports = {
3232
'module:decorator-transforms',
3333
{
3434
runtime: {
35-
import: require.resolve('decorator-transforms/runtime-esm'),
35+
import: import.meta.resolve('decorator-transforms/runtime-esm'),
3636
},
3737
},
3838
],
3939
[
4040
'@babel/plugin-transform-runtime',
4141
{
42-
absoluteRuntime: __dirname,
42+
absoluteRuntime: import.meta.dirname,
4343
useESModules: true,
4444
regenerator: false,
4545
},

apps/repl/package.json

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"last 1 safari versions"
1818
],
1919
"scripts": {
20-
"build:test": "NODE_ENV=development vite build --mode test",
20+
"build:test": "NODE_ENV=development vite build --mode development",
2121
"build:prod": "NODE_ENV=development vite build --mode development",
2222
"lint:types": "ember-tsc --noEmit",
2323
"lint:fix": "pnpm -w exec lint fix",
@@ -82,7 +82,6 @@
8282
"decorator-transforms": "^2.3.0",
8383
"ember-async-data": "2.0.1",
8484
"ember-load-initializers": "^3.0.1",
85-
"ember-modifier": "^4.1.0",
8685
"ember-on-resize-modifier": "^2.0.2",
8786
"ember-page-title": "^9.0.3",
8887
"ember-qunit": "^9.0.4",
@@ -93,6 +92,8 @@
9392
"fractal-page-object": "^1.0.0",
9493
"loader.js": "^4.7.0",
9594
"onp": "^2.0.4",
95+
"oxc-parser": "^0.102.0",
96+
"oxc-transform": "^0.102.0",
9697
"postcss": "^8.5.6",
9798
"postcss-import": "^16.1.1",
9899
"prettier": "^3.7.4",
@@ -108,10 +109,11 @@
108109
"typescript": "5.9.3",
109110
"unplugin-icons": "^22.5.0",
110111
"vfile": "^6.0.3",
111-
"vite": "^7.2.7",
112+
"vite": "8.0.0-beta.2",
112113
"vite-bundle-analyzer": "^1.3.1",
113114
"vite-plugin-circular-dependency": "^0.5.0",
114-
"vite-plugin-mkcert": "^1.17.9"
115+
"vite-plugin-mkcert": "^1.17.9",
116+
"zimmerframe": "^1.1.4"
115117
},
116118
"engines": {
117119
"node": ">= v24"
@@ -160,12 +162,9 @@
160162
"ember-modifier": "^4.2.0",
161163
"ember-primitives": "^0.48.1",
162164
"ember-repl": "workspace:*",
163-
"ember-resize-observer-service": "^1.1.0",
164165
"ember-resources": "^7.0.7",
165166
"ember-statechart-component": "7.1.0",
166167
"ember-strict-application-resolver": "^0.1.1",
167-
"highlight.js": "^11.11.1",
168-
"highlightjs-glimmer": "^2.2.2",
169168
"html-to-image": "^1.11.13",
170169
"kolay": "^3.9.1",
171170
"limber-ui": "workspace:*",
@@ -179,7 +178,6 @@
179178
"remark-html": "16.0.1",
180179
"remark-parse": "11.0.0",
181180
"remark-rehype": "^11.1.2",
182-
"shiki": "^3.12.2",
183181
"stringify-object": "^5.0.0",
184182
"svelte": "^5.35.5",
185183
"tabster": "8.6.2",

0 commit comments

Comments
 (0)