details: https://hg.nginx.org/njs/rev/677fc88d8d6d branches: changeset: 2092:677fc88d8d6d user: Dmitry Volyntsev <xei...@nginx.com> date: Wed Apr 26 19:38:23 2023 -0700 description: Types: added ts types for "zlib" module.
diffstat: test/ts/test.ts | 9 +++ ts/index.d.ts | 1 + ts/njs_modules/zlib.d.ts | 127 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 137 insertions(+), 0 deletions(-) diffs (165 lines): diff -r 5f18ec3b9e53 -r 677fc88d8d6d test/ts/test.ts --- a/test/ts/test.ts Wed Apr 26 19:38:21 2023 -0700 +++ b/test/ts/test.ts Wed Apr 26 19:38:23 2023 -0700 @@ -2,6 +2,7 @@ import fs from 'fs'; import qs from 'querystring'; import cr from 'crypto'; import xml from 'xml'; +import zlib from 'zlib'; async function http_module(r: NginxHTTPRequest) { var bs: NjsByteString; @@ -194,6 +195,14 @@ function xml_module(str: NjsByteString) node.$tags = [node, node]; } +function zlib_module(str: NjsByteString) { + zlib.deflateRawSync(str, {level: zlib.constants.Z_BEST_COMPRESSION, memLevel: 9}); + zlib.deflateSync(str, {strategy: zlib.constants.Z_RLE}); + + zlib.inflateRawSync(str, {windowBits: 14}); + zlib.inflateSync(str, {chunkSize: 2048}); +} + function crypto_module(str: NjsByteString) { var h; var b:Buffer; diff -r 5f18ec3b9e53 -r 677fc88d8d6d ts/index.d.ts --- a/ts/index.d.ts Wed Apr 26 19:38:21 2023 -0700 +++ b/ts/index.d.ts Wed Apr 26 19:38:23 2023 -0700 @@ -4,3 +4,4 @@ /// <reference path="njs_modules/fs.d.ts" /> /// <reference path="njs_modules/xml.d.ts" /> /// <reference path="njs_modules/querystring.d.ts" /> +/// <reference path="njs_modules/zlib.d.ts" /> diff -r 5f18ec3b9e53 -r 677fc88d8d6d ts/njs_modules/zlib.d.ts --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ts/njs_modules/zlib.d.ts Wed Apr 26 19:38:23 2023 -0700 @@ -0,0 +1,127 @@ +/// <reference path="../njs_core.d.ts" /> + +declare module "zlib" { + interface NjsZlibOptions { + /** + * the buffer size for feeding data to and pulling data + * from the zlib routines, defaults to 1024. + */ + chunkSize?: number; + + /** + * The dictionary buffer. + */ + dictionary?: NjsStringOrBuffer; + + /** + * Compression level, from zlib.constants.Z_NO_COMPRESSION to + * zlib.constants.Z_BEST_COMPRESSION. Defaults to + * zlib.constants.Z_DEFAULT_COMPRESSION. + */ + level?: number; + + /** + * Specifies how much memory should be allocated for the internal compression state. + * 1 uses minimum memory but is slow and reduces compression ratio; + * 9 uses maximum memory for optimal speed. + * The default value is 8. + */ + memLevel?: number; + + /** + * The compression strategy, defaults to zlib.constants.Z_DEFAULT_STRATEGY. + */ + strategy?: number; + + /** + * The log2 of window size. + * -15 to -9 for raw data, from 9 to 15 for an ordinary stream. + */ + windowBits?: number; + } + + type NjsZlibConstants = { + /** + * No compression. + */ + Z_NO_COMPRESSION: number; + + /** + * Fastest, produces the least compression. + */ + Z_BEST_SPEED: number; + + /** + * Trade-off between speed and compression. + */ + Z_DEFAULT_COMPRESSION: number; + + /** + * Slowest, produces the most compression. + */ + Z_BEST_COMPRESSION: number; + + /** + * Filtered strategy: for the data produced by a filter or predictor. + */ + Z_FILTERED: number; + + /** + * Huffman-only strategy: only Huffman encoding, no string matching. + */ + Z_HUFFMAN_ONLY: number; + + /** + * Run Length Encoding strategy: limit match distances to one, + * better compression of PNG image data. + */ + Z_RLE: number; + + /** + * Fixed table strategy: prevents the use of dynamic Huffman codes, + * a simpler decoder for special applications. + */ + Z_FIXED: number; + + /** + * Default strategy, suitable for general purpose compression. + */ + Z_DEFAULT_STRATEGY: number; + }; + + interface Zlib { + /** + * Compresses data using deflate, and do not append a zlib header. + * + * @param data - The data to be compressed. + */ + deflateRawSync(data: NjsStringOrBuffer, options?:NjsZlibOptions): Buffer; + + /** + * Compresses data using deflate. + * + * @param data - The data to be compressed. + */ + deflateSync(data: NjsStringOrBuffer, options?:NjsZlibOptions): Buffer; + + /** + * Decompresses a raw deflate stream. + * + * @param data - The data to be decompressed. + */ + inflateRawSync(data: NjsStringOrBuffer, options?:NjsZlibOptions): Buffer; + + /** + * Decompresses a deflate stream. + * + * @param data - The data to be decompressed. + */ + inflateSync(data: NjsStringOrBuffer, options?:NjsZlibOptions): Buffer; + + constants: NjsZlibConstants; + } + + const zlib: Zlib; + + export default zlib; +} _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org https://mailman.nginx.org/mailman/listinfo/nginx-devel