Published
Edited
Oct 5, 2020
Insert cell
md`# Terminal`
Insert cell
(window.onmessage = () => {
console.log('MESSAGE');
})
Insert cell
Terminal = (await require('https://bundle.run/xterm@3.14.5')).Terminal
Insert cell
html`
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/xterm@3/lib/xterm.css"
/>
`
Insert cell
{
}
Insert cell
FitAddon = require('https://bundle.run/xterm-addon-fit@0.1.0-beta1')
Insert cell
mutable reset = 1
Insert cell
{
reset;

if (this) {
var term = new Terminal();
const fitAddon = new FitAddon.FitAddon();
term.loadAddon(fitAddon);
term.open(this, false);

fitAddon.fit();
console.log('fitAddon.proposeDimensions():', fitAddon.proposeDimensions());

let websocket = new WebSocket('ws://localhost:8080');
websocket.addEventListener('message', event => term.write(event.data));
term.on('key', (key, ev) => websocket.send(key));
term.on('paste', (data, ev) => websocket.send(data));
invalidation.then(() => websocket.close());
return this;
}

setTimeout(() => {
mutable reset = 1;
}, 0);
return html`<div style="height: 400px"></div>`;
}
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more