Mirror const enum since esbuild cant inline const enum

This commit is contained in:
Anthony Kim
2026-02-05 21:38:33 -08:00
parent 08f85cf826
commit a59d527d1a
2 changed files with 12 additions and 8 deletions
+6 -4
View File
@@ -5,14 +5,16 @@
import { IImageAddonOptions, IOscHandler, IResetHandler, ITerminalExt } from './Types';
import { ImageRenderer } from './ImageRenderer';
import { ImageStorage, CELL_SIZE_DEFAULT } from './ImageStorage';
import Base64Decoder from 'xterm-wasm-parts/lib/base64/Base64Decoder.wasm';
import Base64Decoder, { type DecodeStatus } from 'xterm-wasm-parts/lib/base64/Base64Decoder.wasm';
import { HeaderParser, IHeaderFields, HeaderState } from './IIPHeaderParser';
import { imageType, UNSUPPORTED_TYPE } from './IIPMetrics';
// limit hold memory in base64 decoder (encoded bytes)
const KEEP_DATA = 4194304;
const INITIAL_DATA = 1048576;
const DECODER_SUCCESS = 0;
// Local mirror of const enum (esbuild can't inline const enums from external packages)
const DECODER_OK: DecodeStatus.OK = 0;
// default IIP header values
const DEFAULT_HEADER: IHeaderFields = {
@@ -56,7 +58,7 @@ export class IIPHandler implements IOscHandler, IResetHandler {
if (this._aborted) return;
if (this._hp.state === HeaderState.END) {
if (this._dec.put(data.subarray(start, end)) !== DECODER_SUCCESS) {
if (this._dec.put(data.subarray(start, end)) !== DECODER_OK) {
this._dec.release();
this._aborted = true;
}
@@ -73,7 +75,7 @@ export class IIPHandler implements IOscHandler, IResetHandler {
return;
}
this._dec.init();
if (this._dec.put(data.subarray(dataPos, end)) !== DECODER_SUCCESS) {
if (this._dec.put(data.subarray(dataPos, end)) !== DECODER_OK) {
this._dec.release();
this._aborted = true;
}
@@ -6,7 +6,7 @@
import { IApcHandler, IImageAddonOptions, IResetHandler, ITerminalExt } from '../Types';
import { ImageRenderer } from '../ImageRenderer';
import { ImageStorage, CELL_SIZE_DEFAULT } from '../ImageStorage';
import Base64Decoder from 'xterm-wasm-parts/lib/base64/Base64Decoder.wasm';
import Base64Decoder, { type DecodeStatus } from 'xterm-wasm-parts/lib/base64/Base64Decoder.wasm';
import {
KittyAction,
KittyFormat,
@@ -23,7 +23,9 @@ import {
// Memory limit for base64 decoder (4MB, same as IIPHandler)
const DECODER_KEEP_DATA = 4194304;
const DECODER_INITIAL_DATA = 4194304; // 4MB
const DECODER_SUCCESS = 0;
// Local mirror of const enum (esbuild can't inline const enums from external packages)
const DECODER_OK: DecodeStatus.OK = 0;
// Maximum control data size
const MAX_CONTROL_DATA_SIZE = 512;
@@ -191,7 +193,7 @@ export class KittyGraphicsHandler implements IApcHandler, IResetHandler {
this._activeDecoder.init();
}
if (this._activeDecoder.put(data.subarray(start, end)) !== DECODER_SUCCESS) {
if (this._activeDecoder.put(data.subarray(start, end)) !== DECODER_OK) {
this._activeDecoder.release();
this._activeDecoder = null;
this._decodeError = true;
@@ -258,7 +260,7 @@ export class KittyGraphicsHandler implements IApcHandler, IResetHandler {
let imageBytes = new Uint8Array(0);
if (decoder) {
if (decoder.end() !== DECODER_SUCCESS) {
if (decoder.end() !== DECODER_OK) {
decodeError = true;
}
imageBytes = decoder.data8;