mirror of
https://github.com/nuintun/command-manager.git
synced 2025-10-21 02:41:23 +08:00
update files
This commit is contained in:
@@ -6,48 +6,81 @@
|
||||
|
||||
importScripts('../../terminal/index.js');
|
||||
|
||||
var ACTIVE;
|
||||
var RUNTIMECACHE = {};
|
||||
var xterm;
|
||||
|
||||
function send(name, xterm){
|
||||
postMessage({
|
||||
name: name,
|
||||
screen: xterm.toString('html')
|
||||
});
|
||||
}
|
||||
onconnect = function (event){
|
||||
var port = event.ports[0];
|
||||
|
||||
onmessage = function (event){
|
||||
var xterm;
|
||||
var message = event.data;
|
||||
port.onmessage = function (event){
|
||||
var message = event.data;
|
||||
|
||||
switch (message.action) {
|
||||
case 'open':
|
||||
xterm = RUNTIMECACHE[message.name];
|
||||
function send(name, xterm){
|
||||
var data = {
|
||||
name: name,
|
||||
screen: xterm.toString('html')
|
||||
};
|
||||
|
||||
if (!xterm) {
|
||||
xterm = new AnsiTerminal(120, 60, 0);
|
||||
xterm.newline_mode = true;
|
||||
RUNTIMECACHE[message.name] = xterm;
|
||||
}
|
||||
port.postMessage(data);
|
||||
}
|
||||
|
||||
ACTIVE = message.name;
|
||||
switch (message.action) {
|
||||
case 'open':
|
||||
if (!xterm) {
|
||||
xterm = new AnsiTerminal(120, 60, 0);
|
||||
xterm.newline_mode = true;
|
||||
}
|
||||
|
||||
send(message.name, xterm);
|
||||
break;
|
||||
case 'close':
|
||||
delete RUNTIMECACHE[message.name];
|
||||
break;
|
||||
case 'write':
|
||||
xterm = RUNTIMECACHE[message.name];
|
||||
|
||||
if (ACTIVE === message.name) {
|
||||
send(message.name, xterm);
|
||||
break;
|
||||
case 'close':
|
||||
delete xterm.reset();
|
||||
break;
|
||||
case 'write':
|
||||
xterm.write(message.data);
|
||||
send(message.name, xterm);
|
||||
} else {
|
||||
setTimeout(function (){
|
||||
xterm.write(message.data);
|
||||
}, 16);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
//function send(name, xterm){
|
||||
// postMessage({
|
||||
// name: name,
|
||||
// screen: xterm.toString('html')
|
||||
// });
|
||||
//}
|
||||
//
|
||||
//switch (message.action) {
|
||||
// case 'open':
|
||||
// xterm = RUNTIMECACHE[message.name];
|
||||
//
|
||||
// if (!xterm) {
|
||||
// xterm = new AnsiTerminal(120, 60, 0);
|
||||
// xterm.newline_mode = true;
|
||||
// SCREENCACHE[message.name] = '';
|
||||
// RUNTIMECACHE[message.name] = xterm;
|
||||
// }
|
||||
//
|
||||
// ACTIVE = message.name;
|
||||
//
|
||||
// if (SCREENCACHE[message.name]) {
|
||||
// xterm.write(SCREENCACHE[message.name]);
|
||||
// SCREENCACHE[message.name] = '';
|
||||
// }
|
||||
//
|
||||
// send(message.name, xterm);
|
||||
// break;
|
||||
// case 'close':
|
||||
// delete RUNTIMECACHE[message.name];
|
||||
// break;
|
||||
// case 'write':
|
||||
// xterm = RUNTIMECACHE[message.name];
|
||||
//
|
||||
// if (ACTIVE === message.name) {
|
||||
// xterm.write(message.data);
|
||||
// send(message.name, xterm);
|
||||
// } else {
|
||||
// SCREENCACHE[message.name] += message.data;
|
||||
// }
|
||||
// break;
|
||||
//}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user