dotfiles/vscode/.vscode/extensions/randomfractalsinc.vscode-data-preview-2.3.0/node_modules/snappy/snappy.js
Errol Sancaktar ff17c17e23 vscode
2024-06-14 09:31:58 -06:00

77 lines
2.0 KiB
JavaScript

// @ts-check
var binding = require('bindings')('binding');
var assert = require('assert');
/**
* Compress asyncronous.
* If input isn't a string or buffer, automatically convert to buffer by using
* JSON.stringify.
* @param {string|Buffer} input
* @param {(err: Error|null, buffer?: Buffer) => void} callback
*/
exports.compress = function (input, callback) {
if (!(typeof (input) === 'string' || Buffer.isBuffer(input))) {
return callback(new Error('input must be a String or a Buffer'));
}
binding.compress(input, callback);
};
/**
* @param {string|Buffer} input
* @returns {Buffer}
*/
exports.compressSync = function (input) {
assert(typeof (input) === 'string' || Buffer.isBuffer(input), 'input must be a String or a Buffer');
return binding.compressSync(input);
};
/**
* Asyncronous decide if a buffer is compressed in a correct way.
*
* @type {(buffer: Buffer, callback: (err: Error|null, isValid?: boolean) => void) => void}
*/
exports.isValidCompressed = binding.isValidCompressed;
/**
* @type {(buffer: Buffer) => boolean}
*/
exports.isValidCompressedSync = binding.isValidCompressedSync;
/**
* Asyncronous uncompress previously compressed data.
*
* @param {Buffer} compressed
* @param {any} opts
* @param {(err: Error, uncompressed?:(string|Buffer)) => void} callback
*/
exports.uncompress = function (compressed, opts, callback) {
if (!callback) {
callback = opts;
}
if (!Buffer.isBuffer(compressed)) {
return callback(new Error('input must be a Buffer'));
}
binding.uncompress(compressed, uncompressOpts(opts), callback);
};
/**
* @param {Buffer} compressed
* @param {any} opts
* @return {string|Buffer}
*/exports.uncompressSync = function (compressed, opts) {
assert(Buffer.isBuffer(compressed), 'input must be a Buffer');
return binding.uncompressSync(compressed, uncompressOpts(opts));
};
/**
* @param {any} opts
*/
function uncompressOpts (opts) {
return (opts && typeof opts.asBuffer === 'boolean') ? opts : {asBuffer: true};
}