Skip to content

Commit 4d983e9

Browse files
authored
build(docs-infra): Update dependency @xterm/xterm to v6
Update dependency @xterm/xterm to v6 and fix style
1 parent 511d9ca commit 4d983e9

4 files changed

Lines changed: 35 additions & 13 deletions

File tree

adev/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"@typescript/vfs": "1.6.2",
4949
"@webcontainer/api": "1.6.1",
5050
"@xterm/addon-fit": "0.11.0",
51-
"@xterm/xterm": "5.5.0",
51+
"@xterm/xterm": "6.0.0",
5252
"algoliasearch": "5.46.2",
5353
"angular-split": "20.0.0",
5454
"crelt": "1.0.6",

adev/src/app/editor/terminal/interactive-terminal.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88

99
import {Subject} from 'rxjs';
10-
import {Terminal} from '@xterm/xterm';
10+
import {Terminal, ITerminalOptions, ITerminalInitOnlyOptions} from '@xterm/xterm';
1111

1212
import {CommandValidator} from './command-validator.service';
1313

@@ -21,17 +21,28 @@ export const ALLOWED_KEYS: Array<KeyboardEvent['key']> = [
2121
'ArrowDown',
2222
];
2323

24+
/** Set of defaults to use for all terminal instances in adev. */
25+
export const adevTerminalDefaultOptions: ITerminalOptions = {
26+
convertEol: true,
27+
theme: {
28+
background: '#00000000',
29+
},
30+
fontFamily: 'courier-new, courier, monospace',
31+
fontSize: 15,
32+
};
33+
2434
export class InteractiveTerminal extends Terminal {
2535
private readonly breakProcess = new Subject<void>();
2636

2737
// Using this stream, the webcontainer shell can break current process.
2838
breakProcess$ = this.breakProcess.asObservable();
2939

3040
constructor(
41+
options: ITerminalOptions & ITerminalInitOnlyOptions,
3142
readonly window: Window,
3243
readonly commandValidator: CommandValidator,
3344
) {
34-
super({convertEol: true, disableStdin: false});
45+
super(options);
3546

3647
// bypass command validation if sudo=true is present in the query string
3748
if (!this.window.location.search.includes('sudo=true')) {

adev/src/app/editor/terminal/terminal-handler.service.ts

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import {computed, inject, Injectable, signal, Signal, untracked} from '@angular/core';
1010
import {Terminal} from '@xterm/xterm';
1111
import {FitAddon} from '@xterm/addon-fit';
12-
import {InteractiveTerminal} from './interactive-terminal';
12+
import {InteractiveTerminal, adevTerminalDefaultOptions} from './interactive-terminal';
1313
import {WINDOW} from '@angular/docs';
1414
import {CommandValidator} from './command-validator.service';
1515

@@ -28,11 +28,18 @@ export class TerminalHandler {
2828
// Because colors are parsed
2929
// See https://github.com/xtermjs/xterm.js/blob/854e2736f66ca3e5d3ab5a7b65bf3fd6fba8b707/src/browser/services/ThemeService.ts#L125
3030
[TerminalType.READONLY]: signal({
31-
instance: new Terminal({convertEol: true, disableStdin: true}),
31+
instance: new Terminal({
32+
...adevTerminalDefaultOptions,
33+
disableStdin: true,
34+
}),
3235
fitAddon: new FitAddon(),
3336
}),
3437
[TerminalType.INTERACTIVE]: signal({
35-
instance: new InteractiveTerminal(this.window, this.commandValidator),
38+
instance: new InteractiveTerminal(
39+
adevTerminalDefaultOptions,
40+
this.window,
41+
this.commandValidator,
42+
),
3643
fitAddon: new FitAddon(),
3744
}),
3845
};
@@ -59,10 +66,14 @@ export class TerminalHandler {
5966
instance.dispose();
6067
fitAddon = new FitAddon();
6168
if (type === TerminalType.READONLY) {
62-
instance = new Terminal({convertEol: true, disableStdin: true});
69+
instance = new Terminal({...adevTerminalDefaultOptions, disableStdin: true});
6370
this.terminals[type].set({instance, fitAddon});
6471
} else {
65-
const newInstance = new InteractiveTerminal(this.window, this.commandValidator);
72+
const newInstance = new InteractiveTerminal(
73+
adevTerminalDefaultOptions,
74+
this.window,
75+
this.commandValidator,
76+
);
6677
instance = newInstance;
6778
this.terminals[type].set({instance: newInstance, fitAddon});
6879
}

pnpm-lock.yaml

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)