isgzipBuffer
Test if a value is a gzip buffer.
Usage
var isgzipBuffer = require( '@stdlib/assert/is-gzip-buffer' );
isgzipBuffer( value )
Tests if a value is a gzip buffer.
var Uint8Array = require( '@stdlib/array/uint8' ); var buf = new Uint8Array( 20 ); buf[ 0 ] = 31; // 0x1f => magic number buf[ 1 ] = 139; // 0x8b buf[ 2 ] = 8; // 0x08 => compression method var bool = isgzipBuffer( buf ); // returns true bool = isgzipBuffer( [] ); // returns false
Notes
- A gzip buffer is defined as either a Node.js
BufferorUint8Arraywhich contains a 10-byte header, a body containing the compressed payload, and an 8-byte footer containing a CRC-32 checksum and the length of the original uncompressed data, modulo2^32. - This function only examines the 10-byte header to ensure the header includes the expected magic number and compression method. The function does not perform an integrity check.
Examples
var Float32Array = require( '@stdlib/array/float32' ); var Float64Array = require( '@stdlib/array/float64' ); var Int8Array = require( '@stdlib/array/int8' ); var Int16Array = require( '@stdlib/array/int16' ); var Int32Array = require( '@stdlib/array/int32' ); var Uint8Array = require( '@stdlib/array/uint8' ); var Uint8ClampedArray = require( '@stdlib/array/uint8c' ); var Uint16Array = require( '@stdlib/array/uint16' ); var Uint32Array = require( '@stdlib/array/uint32' ); var isgzipBuffer = require( '@stdlib/assert/is-gzip-buffer' ); var buf = new Uint8Array( 20 ); buf[ 0 ] = 31; // 0x1f => magic number buf[ 1 ] = 139; // 0x8b buf[ 2 ] = 8; // 0x08 => compression method var bool = isgzipBuffer( buf ); // returns true bool = isgzipBuffer( new Float32Array( 20 ) ); // returns false bool = isgzipBuffer( new Int8Array( 20 ) ); // returns false bool = isgzipBuffer( new Uint8Array( 20 ) ); // returns false bool = isgzipBuffer( new Uint8ClampedArray( 20 ) ); // returns false bool = isgzipBuffer( new Int16Array( 20 ) ); // returns false bool = isgzipBuffer( new Uint16Array( 20 ) ); // returns false bool = isgzipBuffer( new Int32Array( 20 ) ); // returns false bool = isgzipBuffer( new Uint32Array( 20 ) ); // returns false bool = isgzipBuffer( new Float64Array( 20 ) ); // returns false bool = isgzipBuffer( new Array( 20 ) ); // returns false bool = isgzipBuffer( {} ); // returns false bool = isgzipBuffer( null ); // returns false
See Also
@stdlib/assert/is-buffer: test if a value is a Buffer object.@stdlib/assert/is-uint8array: test if a value is a Uint8Array.