Skip to content

Commit 552bf7e

Browse files
committed
Convert to Vite
1 parent e633fc6 commit 552bf7e

File tree

310 files changed

+6801
-8178
lines changed

Some content is hidden

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

310 files changed

+6801
-8178
lines changed

.github/workflows/ci.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
with:
4242
repo-token: ${{ secrets.GITHUB_TOKEN }}
4343
- run: echo ${{ github.event.number }} > ./pr-number.txt
44-
- run: pnpm turbo build
44+
- run: pnpm turbo build build:prod
4545
# Used for faster deploy so we don't need to checkout the repo
4646
- uses: actions/upload-artifact@v4
4747
with:
@@ -64,6 +64,7 @@ jobs:
6464
- uses: wyvox/action@v1
6565
with:
6666
repo-token: ${{ secrets.GITHUB_TOKEN }}
67+
- run: pnpm build
6768
- run: pnpm lint
6869

6970
##############################################################

.github/workflows/deploy-preview.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ jobs:
7777
with:
7878
repo-token: ${{ secrets.GITHUB_TOKEN }}
7979
- uses: wyvox/action-setup-pnpm@v3
80-
- run: pnpm turbo build
80+
- run: pnpm turbo build:prod
8181
- uses: actions/upload-artifact@v4
8282
with:
8383
name: deploy-prep-dist

.github/workflows/preview-embroider-upgrade.yml

-36
This file was deleted.

.node-version

-1
This file was deleted.

.npmrc

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
node-version = 20.11.1
21
registry = https://registry.npmjs.org
32
ignore-scripts = true
43

@@ -14,8 +13,17 @@ strict-peer-dependents=true
1413
# Less strict, but required for tooling to not barf on duplicate peer trees.
1514
# (many libraries declare the same peers, which resolve to the same
1615
# versions)
16+
peers-suffix-max-length=40
17+
dedupe-direct-deps=true
18+
dedupe-injected-deps=true
1719
dedupe-peer-dependents=true
1820

21+
22+
################
23+
# Hacks
24+
################
25+
public-hoist-pattern[]=ember-source
26+
1927
################
2028
# Compatibility
2129
################

.prettierrc.cjs

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
module.exports = {
44
printWidth: 100,
5-
plugins: ['prettier-plugin-ember-template-tag'],
5+
tailwindStylesheet: './app/styles/app.css',
6+
plugins: ['prettier-plugin-ember-template-tag', 'prettier-plugin-tailwindcss'],
67
overrides: [
78
{
89
// Lol, JavaScript

apps/repl/.eslintignore

-1
This file was deleted.

apps/repl/.eslintrc.cjs

-17
This file was deleted.
File renamed without changes.

apps/repl/CHANGELOG.md

-13
This file was deleted.

apps/repl/app/app.ts

+3-20
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,14 @@
11
import 'limber-ui/theme.css';
22
import 'ember-statechart-component';
3+
import './icons.ts';
34

4-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
5-
// @ts-ignore
6-
import { DEBUG } from '@glimmer/env';
75
import Application from '@ember/application';
8-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
9-
// @ts-ignore
10-
import { _backburner } from '@ember/runloop';
116

12-
import loadInitializers from 'ember-load-initializers';
137
import Resolver from 'ember-resolver';
148

159
import config from 'limber/config/environment';
1610

17-
if (DEBUG) {
18-
// This has performance implications, but the debuggability is worth it.
19-
// Debugging eventloop stuff is notoriously difficult, so let's make it
20-
// not difficult by default.
21-
//
22-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
23-
// @ts-ignore
24-
_backburner.DEBUG = true;
25-
}
11+
import { registry } from './registry.ts';
2612

2713
// @babel/traverse (from babel-plugin-ember-template-imports)
2814
// accesses process.....
@@ -35,8 +21,5 @@ Object.assign(window, {
3521

3622
export default class App extends Application {
3723
modulePrefix = config.modulePrefix;
38-
podModulePrefix = config.podModulePrefix;
39-
Resolver = Resolver;
24+
Resolver = Resolver.withModules(registry);
4025
}
41-
42-
loadInitializers(App, config.modulePrefix);

apps/repl/app/components/limber/copy-menu.gts

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,21 @@ import Menu from './menu';
99
*/
1010
export default class CopyMenu extends Component {
1111
copyAsText = (event: Event) => {
12-
let code = getSnippetElement(event);
12+
const code = getSnippetElement(event);
1313

1414
navigator.clipboard.writeText(code.innerText);
1515
};
1616

1717
copyAsImage = async (event: Event) => {
18-
let code = getSnippetElement(event);
18+
const code = getSnippetElement(event);
1919

2020
await copyToClipboard(code);
2121
};
2222

2323
<template>
2424
<Menu data-test-copy-menu>
2525
<:trigger as |t|>
26-
<t.Default class="absolute top-3 right-4 z-10" data-test-copy-menu>
26+
<t.Default class="absolute right-4 top-3 z-10" data-test-copy-menu>
2727
📋
2828
</t.Default>
2929
</:trigger>

apps/repl/app/components/limber/copy-utils.ts

+12-12
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export function getSnippetElement(event: Event) {
66
* closest, because the element may be removed from the DOM
77
* by the time this function runs.
88
*/
9-
let ancestry = event.composedPath();
9+
const ancestry = event.composedPath();
1010

1111
/**
1212
* This component has intimate knowledge
@@ -16,7 +16,7 @@ export function getSnippetElement(event: Event) {
1616
* We can't select the pre tag directly, otherwise html-to-image
1717
* loses the padding, border-radius, shadow
1818
*/
19-
for (let element of ancestry) {
19+
for (const element of ancestry) {
2020
if (!(element instanceof HTMLElement)) continue;
2121

2222
if (element.classList.contains('glimdown-snippet')) {
@@ -47,7 +47,7 @@ export function getSnippetElement(event: Event) {
4747
* So instead, we jitter a bit
4848
*/
4949
export async function copyToClipboard(toCopy: HTMLElement) {
50-
let pre = toCopy.querySelector('pre');
50+
const pre = toCopy.querySelector('pre');
5151

5252
try {
5353
pre?.classList.add('drop-shadow-lg');
@@ -68,9 +68,9 @@ export async function copyToClipboard(toCopy: HTMLElement) {
6868
}
6969

7070
async function toClipboard(target: HTMLElement) {
71-
let backgroundColor = '#ffffff';
72-
let canCopyToImage = 'ClipboardItem' in window;
73-
let filter = (node: HTMLElement | Text) => {
71+
const backgroundColor = '#ffffff';
72+
const canCopyToImage = 'ClipboardItem' in window;
73+
const filter = (node: HTMLElement | Text) => {
7474
if (node instanceof Text) return true;
7575

7676
if ('getAttribute' in node && node.hasAttribute('data-test-copy-menu')) {
@@ -84,9 +84,9 @@ async function toClipboard(target: HTMLElement) {
8484
return true;
8585
};
8686

87-
let box = target.getBoundingClientRect();
87+
const box = target.getBoundingClientRect();
8888

89-
let options = {
89+
const options = {
9090
filter,
9191
backgroundColor,
9292
// tell html-to-image to include margins in dimensions
@@ -104,12 +104,12 @@ async function toClipboard(target: HTMLElement) {
104104
};
105105

106106
if (!canCopyToImage) {
107-
let image = new Image();
108-
let dataUri = await toPng(target, options);
107+
const image = new Image();
108+
const dataUri = await toPng(target, options);
109109

110110
image.src = dataUri;
111111

112-
let w = window.open('');
112+
const w = window.open('');
113113

114114
w?.document.write(
115115
`Your browser does not yet support ` +
@@ -120,7 +120,7 @@ async function toClipboard(target: HTMLElement) {
120120
return;
121121
}
122122

123-
let blob = await toBlob(target, options);
123+
const blob = await toBlob(target, options);
124124

125125
// Works in chrome-based browsers only :(
126126
// eslint-disable-next-line @typescript-eslint/ban-ts-comment

apps/repl/app/components/limber/demo-select.gts

+6-5
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ import Component from '@glimmer/component';
22
import { fn } from '@ember/helper';
33
import { on } from '@ember/modifier';
44
import { action } from '@ember/object';
5-
import { inject as service } from '@ember/service';
5+
import { service } from '@ember/service';
66
import { waitFor } from '@ember/test-waiters';
77

88
import FaIcon from '@fortawesome/ember-fontawesome/components/fa-icon';
9+
import { faAngleRight, faAngleUp } from '@fortawesome/free-solid-svg-icons';
910

1011
import Menu from 'limber/components/limber/menu';
1112
import { getFromLabel, NAMES } from 'limber/snippets';
@@ -20,7 +21,7 @@ export class DemoSelect extends Component {
2021
@action
2122
@waitFor
2223
async select(demoName: string) {
23-
let demo = await getFromLabel(demoName);
24+
const demo = await getFromLabel(demoName);
2425

2526
this.editor.updateDemo(demo, 'glimdown');
2627
}
@@ -29,13 +30,13 @@ export class DemoSelect extends Component {
2930
<Menu @inline={{true}}>
3031
<:trigger as |t|>
3132
<t.Default data-test-demo-select as |menu|>
32-
<span class="grid grid-flow-col gap-2 items-center">
33+
<span class="grid grid-flow-col items-center gap-2">
3334
Select demo
3435

3536
{{#if menu.isOpen}}
36-
<FaIcon @icon="angle-up" class="min-w-3" />
37+
<FaIcon @icon={{faAngleUp}} class="min-w-3" />
3738
{{else}}
38-
<FaIcon @icon="angle-right" class="min-w-3" />
39+
<FaIcon @icon={{faAngleRight}} class="min-w-3" />
3940
{{/if}}
4041
</span>
4142
</t.Default>

apps/repl/app/components/limber/editor/-code-mirror.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export default class CodeMirror extends Modifier<Signature> {
3636
previousFormat: Format | undefined;
3737

3838
setup = async (element: Element) => {
39-
let { format } = this.editor;
39+
const { format } = this.editor;
4040

4141
if (format === this.previousFormat) {
4242
return;
@@ -55,13 +55,13 @@ export default class CodeMirror extends Modifier<Signature> {
5555
assert(`Expected CODEMIRROR to exist`, CODEMIRROR);
5656
assert(`can only install codemirror editor an an HTMLElement`, element instanceof HTMLElement);
5757

58-
let { text: value } = this.editor;
59-
let updateText = this.editor.updateText;
58+
const { text: value } = this.editor;
59+
const updateText = this.editor.updateText;
6060

6161
element.innerHTML = '';
6262
element.setAttribute('data-format', format);
6363

64-
let { view, setText } = CODEMIRROR(element, value, format, updateText);
64+
const { view, setText } = CODEMIRROR(element, value, format, updateText);
6565

6666
/**
6767
* This has to be defined on the service so that
@@ -73,7 +73,7 @@ export default class CodeMirror extends Modifier<Signature> {
7373
setText(text, format); // update the editor
7474
};
7575

76-
let scrollable = document.querySelector('.cm-scroller');
76+
const scrollable = document.querySelector('.cm-scroller');
7777

7878
if (scrollable instanceof HTMLElement) {
7979
this.editor.scrollbarWidth = scrollable.offsetWidth - scrollable.clientWidth;
@@ -101,5 +101,5 @@ export async function setupCodeMirror() {
101101
// TypeScript doesn't have a way to type files in the public folder
102102
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
103103
// @ts-ignore
104-
CODEMIRROR = (await import(/* webpackIgnore: true */ '/codemirror/preconfigured.js')).default;
104+
CODEMIRROR = (await import('@nullvoxpopuli/limber-codemirror/preconfigured')).default;
105105
}

apps/repl/app/components/limber/editor/index.gts

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import { waitForPromise } from '@ember/test-waiters';
22

3+
import { service } from 'ember-primitives/helpers/service';
34
import { resource, resourceFactory } from 'ember-resources';
45
import { TrackedObject } from 'tracked-built-ins';
56

6-
import { service } from 'limber-ui';
7-
87
import codemirror, { setupCodeMirror } from './-code-mirror';
98
import Loader from './loader';
109
import { LoadingError } from './loading-error';
@@ -13,7 +12,7 @@ import { Placeholder } from './placeholder';
1312
import type { TOC } from '@ember/component/template-only';
1413

1514
function deferCodemirror() {
16-
let state = new TrackedObject({ isLoading: false, isDone: false, error: null });
15+
const state = new TrackedObject({ isLoading: false, isDone: false, error: null });
1716

1817
function getEditor() {
1918
state.isLoading = true;
@@ -33,7 +32,7 @@ function deferCodemirror() {
3332
window.removeEventListener('touchstart', load);
3433
}
3534

36-
let load = () => {
35+
const load = () => {
3736
getEditor();
3837
cleanup();
3938
};
@@ -71,7 +70,7 @@ export const Editor: TOC<{
7170

7271
{{else}}
7372
<div
74-
class="syntax-dark relative border border-gray-900 bg-code-bg overflow-hidden"
73+
class="syntax-dark bg-code-bg relative overflow-hidden border border-gray-900"
7574
...attributes
7675
>
7776

0 commit comments

Comments
 (0)