@ezs/basics
Version:
Basics statements for EZS
33 lines (32 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = TXTZip;
var _zlib = _interopRequireDefault(require("zlib"));
var _stream = require("stream");
var _streamWrite = _interopRequireDefault(require("stream-write"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/**
* Take a `String` and zip it.
*
* Uses [gzip](https://fr.wikipedia.org/wiki/Gzip)
* algorithm to compress strings.
*
* @name TXTZip
* @param {Boolean} [unzip=false] to Unzip input
* @returns {Buffer}
*/
function TXTZip(data, feed) {
const unzip = this.getParam('unzip', false);
if (this.isFirst()) {
this.input = new _stream.PassThrough();
const z = unzip ? _zlib.default.createGunzip() : _zlib.default.createGzip();
this.whenFinish = feed.flow(this.input.pipe(z));
}
if (this.isLast()) {
this.whenFinish.finally(() => feed.close());
return this.input.end();
}
(0, _streamWrite.default)(this.input, data, () => feed.end());
}