mirror of
https://github.com/Eugeny/tabby.git
synced 2025-06-19 10:59:54 +00:00
23 lines
579 B
TypeScript
23 lines
579 B
TypeScript
import { UTF8Splitter } from 'tabby-core'
|
|
|
|
import { SessionMiddleware } from '../api/middleware'
|
|
|
|
/**
|
|
* Ensures that the session output is chunked at UTF8 character boundaries.
|
|
*/
|
|
export class UTF8SplitterMiddleware extends SessionMiddleware {
|
|
private decoder = new UTF8Splitter()
|
|
|
|
feedFromSession (data: Buffer): void {
|
|
super.feedFromSession(this.decoder.write(data))
|
|
}
|
|
|
|
close (): void {
|
|
const remainder = this.decoder.flush()
|
|
if (remainder.length) {
|
|
super.feedFromSession(remainder)
|
|
}
|
|
super.close()
|
|
}
|
|
}
|