From a7e57afd96ea538c32053b6c9537b7241e56e437 Mon Sep 17 00:00:00 2001 From: Yagiz Nizipli Date: Tue, 3 Sep 2024 16:34:59 -0400 Subject: [PATCH] simplify zlib internals --- src/node/internal/internal_zlib.ts | 75 +++---------------------- src/node/internal/internal_zlib_base.ts | 4 +- src/node/internal/zlib.d.ts | 2 +- 3 files changed, 10 insertions(+), 71 deletions(-) diff --git a/src/node/internal/internal_zlib.ts b/src/node/internal/internal_zlib.ts index 0ef82df925a..50f8693a54e 100644 --- a/src/node/internal/internal_zlib.ts +++ b/src/node/internal/internal_zlib.ts @@ -103,26 +103,19 @@ function normalizeArgs( function wrapCallback( callback: CompressCallback ): CompressCallback { - return (error: string | undefined, result: ArrayBuffer | undefined) => { + return (error: string | null, result: ArrayBuffer | undefined) => { // eslint-disable-next-line @typescript-eslint/no-unsafe-call queueMicrotask(() => { - callback( - error ? new Error(error) : undefined, - result ? Buffer.from(result) : undefined - ); + if (error) { + callback(new Error(error)); + } else { + // To avoid having a runtime assertion, let's use type assertion. + callback(null, Buffer.from(result as ArrayBuffer)); + } }); }; } -export function inflate( - data: ArrayBufferView | string, - callback: CompressCallback -): void; -export function inflate( - data: ArrayBufferView | string, - options: ZlibOptions, - callback: CompressCallback -): void; export function inflate( data: ArrayBufferView | string, optionsOrCallback: ZlibOptions | CompressCallback, @@ -135,15 +128,6 @@ export function inflate( zlibUtil.zlib(data, options, zlibUtil.CONST_INFLATE, wrapCallback(callback)); } -export function unzip( - data: ArrayBufferView | string, - callback: CompressCallback -): void; -export function unzip( - data: ArrayBufferView | string, - options: ZlibOptions, - callback: CompressCallback -): void; export function unzip( data: ArrayBufferView | string, optionsOrCallback: ZlibOptions | CompressCallback, @@ -156,15 +140,6 @@ export function unzip( zlibUtil.zlib(data, options, zlibUtil.CONST_UNZIP, wrapCallback(callback)); } -export function inflateRaw( - data: ArrayBufferView | string, - callback: CompressCallback -): void; -export function inflateRaw( - data: ArrayBufferView | string, - options: ZlibOptions, - callback: CompressCallback -): void; export function inflateRaw( data: ArrayBufferView | string, optionsOrCallback: ZlibOptions | CompressCallback, @@ -182,15 +157,6 @@ export function inflateRaw( ); } -export function gunzip( - data: ArrayBufferView | string, - callback: CompressCallback -): void; -export function gunzip( - data: ArrayBufferView | string, - options: ZlibOptions, - callback: CompressCallback -): void; export function gunzip( data: ArrayBufferView | string, optionsOrCallback: ZlibOptions | CompressCallback, @@ -203,15 +169,6 @@ export function gunzip( zlibUtil.zlib(data, options, zlibUtil.CONST_GUNZIP, wrapCallback(callback)); } -export function deflate( - data: ArrayBufferView | string, - callback: CompressCallback -): void; -export function deflate( - data: ArrayBufferView | string, - options: ZlibOptions, - callback: CompressCallback -): void; export function deflate( data: ArrayBufferView | string, optionsOrCallback: ZlibOptions | CompressCallback, @@ -224,15 +181,6 @@ export function deflate( zlibUtil.zlib(data, options, zlibUtil.CONST_DEFLATE, wrapCallback(callback)); } -export function deflateRaw( - data: ArrayBufferView | string, - callback: CompressCallback -): void; -export function deflateRaw( - data: ArrayBufferView | string, - options: ZlibOptions, - callback: CompressCallback -): void; export function deflateRaw( data: ArrayBufferView | string, optionsOrCallback: ZlibOptions | CompressCallback, @@ -250,15 +198,6 @@ export function deflateRaw( ); } -export function gzip( - data: ArrayBufferView | string, - callback: CompressCallback -): void; -export function gzip( - data: ArrayBufferView | string, - options: ZlibOptions, - callback: CompressCallback -): void; export function gzip( data: ArrayBufferView | string, optionsOrCallback: ZlibOptions | CompressCallback, diff --git a/src/node/internal/internal_zlib_base.ts b/src/node/internal/internal_zlib_base.ts index d7e63b5372c..1744322424d 100644 --- a/src/node/internal/internal_zlib_base.ts +++ b/src/node/internal/internal_zlib_base.ts @@ -349,7 +349,7 @@ export class ZlibBase extends Transform { public _defaultFlushFlag: number; public _finishFlushFlag: number; public _defaultFullFlushFlag: number; - public _info: unknown; + public _info: boolean; public _handle: ZlibHandleType | null = null; public _writeState = new Uint32Array(2); @@ -430,7 +430,7 @@ export class ZlibBase extends Transform { this._defaultFlushFlag = flush; this._finishFlushFlag = finishFlush; this._defaultFullFlushFlag = fullFlush; - this._info = opts && opts.info; + this._info = Boolean(opts?.info); this._maxOutputLength = maxOutputLength; } diff --git a/src/node/internal/zlib.d.ts b/src/node/internal/zlib.d.ts index 0aade4d9feb..f46e711bb84 100644 --- a/src/node/internal/zlib.d.ts +++ b/src/node/internal/zlib.d.ts @@ -3,7 +3,7 @@ import { owner_symbol, type Zlib } from 'node-internal:internal_zlib_base'; export function crc32(data: ArrayBufferView, value: number): number; export type CompressCallback = ( - error?: ErrT, + error: ErrT | null, result?: BufT ) => void;