Add xterm itegration

* Move to TypeScript from legacy JavaScript
* Add support of xterm.js
* Hterm is still available for backward compatibility
This commit is contained in:
Iwasaki Yudai
2017-05-22 08:16:24 +09:00
parent d6c98866b9
commit 8803721f3d
40 changed files with 9051 additions and 124 deletions

47
js/typings/hterm/index.d.ts vendored Normal file
View File

@@ -0,0 +1,47 @@
export interface Terminal {
io: IO;
onTerminalReady: () => void;
getPrefs(): Prefs;
decorate(HTMLElement);
installKeyboard(): void;
uninstallKeyboard(): void;
setWindowTitle(title: string): void;
reset(): void;
softReset(): void;
}
export interface TerminalConstructor {
new (): Terminal;
(): Terminal;
}
export interface IO {
writeUTF8: ((data: string) => void);
writeUTF16: ((data: string) => void);
onVTKeystroke: ((data: string) => void) | null;
sendString: ((data: string) => void) | null;
onTerminalResize: ((columns: number, rows: number) => void) | null;
push(): IO;
writeUTF(data: string);
showOverlay(message: string, timeout: number | null);
}
export interface Prefs {
set(key: string, value: string): void;
}
export interface Storage {
}
export var Terminal: TerminalConstructor;
// @TODO: is there better way?
// exported variables are forced to be read-protected.
declare global {
var hterm: {
defaultStorage: Storage;
};
}

11
js/typings/htermLib/index.d.ts vendored Normal file
View File

@@ -0,0 +1,11 @@
export interface Storage {
}
export interface Memory {
new (): Storage;
Memory(): Storage
}
export var Storage: {
Memory: Memory
};