()
| 519 | } |
| 520 | |
| 521 | async loadInitialTerminalData(): Promise<void> { |
| 522 | const startTs = Date.now(); |
| 523 | const zoneId = this.getZoneId(); |
| 524 | const { data: cacheData, fileInfo: cacheFile } = await fetchWaveFile(zoneId, TermCacheFileName); |
| 525 | let ptyOffset = 0; |
| 526 | if (cacheFile != null) { |
| 527 | ptyOffset = cacheFile.meta["ptyoffset"] ?? 0; |
| 528 | if (cacheData.byteLength > 0) { |
| 529 | const curTermSize: TermSize = { rows: this.terminal.rows, cols: this.terminal.cols }; |
| 530 | const fileTermSize: TermSize = cacheFile.meta["termsize"]; |
| 531 | let didResize = false; |
| 532 | if ( |
| 533 | fileTermSize != null && |
| 534 | (fileTermSize.rows != curTermSize.rows || fileTermSize.cols != curTermSize.cols) |
| 535 | ) { |
| 536 | console.log("terminal restore size mismatch, temp resize", fileTermSize, curTermSize); |
| 537 | this.terminal.resize(fileTermSize.cols, fileTermSize.rows); |
| 538 | didResize = true; |
| 539 | } |
| 540 | this.doTerminalWrite(cacheData, ptyOffset); |
| 541 | if (didResize) { |
| 542 | this.terminal.resize(curTermSize.cols, curTermSize.rows); |
| 543 | } |
| 544 | } |
| 545 | } |
| 546 | const { data: mainData, fileInfo: mainFile } = await fetchWaveFile(zoneId, TermFileName, ptyOffset); |
| 547 | console.log( |
| 548 | `terminal loaded cachefile:${cacheData?.byteLength ?? 0} main:${mainData?.byteLength ?? 0} bytes, ${Date.now() - startTs}ms` |
| 549 | ); |
| 550 | if (mainFile != null) { |
| 551 | await this.doTerminalWrite(mainData, null); |
| 552 | } |
| 553 | } |
| 554 | |
| 555 | async resyncController(reason: string) { |
| 556 | dlog("resync controller", this.blockId, reason); |
no test coverage detected