@loaders.gl/parquet 3.1.0-beta.7 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/constants.js +5 -5
- package/dist/es5/constants.js.map +1 -1
- package/dist/es5/index.js +19 -10
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/convert-schema.js +13 -13
- package/dist/es5/lib/convert-schema.js.map +1 -1
- package/dist/es5/lib/parse-parquet.js +154 -19
- package/dist/es5/lib/parse-parquet.js.map +1 -1
- package/dist/es5/lib/read-array-buffer.js +43 -6
- package/dist/es5/lib/read-array-buffer.js.map +1 -1
- package/dist/es5/parquet-loader.js +4 -4
- package/dist/es5/parquet-loader.js.map +1 -1
- package/dist/es5/parquet-writer.js +4 -4
- package/dist/es5/parquet-writer.js.map +1 -1
- package/dist/es5/parquetjs/codecs/dictionary.js +10 -2
- package/dist/es5/parquetjs/codecs/dictionary.js.map +1 -1
- package/dist/es5/parquetjs/codecs/index.js +6 -4
- package/dist/es5/parquetjs/codecs/index.js.map +1 -1
- package/dist/es5/parquetjs/codecs/plain.js +43 -41
- package/dist/es5/parquetjs/codecs/plain.js.map +1 -1
- package/dist/es5/parquetjs/codecs/rle.js +35 -25
- package/dist/es5/parquetjs/codecs/rle.js.map +1 -1
- package/dist/es5/parquetjs/compression.js +110 -27
- package/dist/es5/parquetjs/compression.js.map +1 -1
- package/dist/es5/parquetjs/encoder/writer.js +737 -301
- package/dist/es5/parquetjs/encoder/writer.js.map +1 -1
- package/dist/es5/parquetjs/file.js +15 -15
- package/dist/es5/parquetjs/file.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/BoundaryOrder.js +1 -1
- package/dist/es5/parquetjs/parquet-thrift/BsonType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/BsonType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js +152 -141
- package/dist/es5/parquetjs/parquet-thrift/ColumnChunk.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js +160 -147
- package/dist/es5/parquetjs/parquet-thrift/ColumnIndex.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js +259 -248
- package/dist/es5/parquetjs/parquet-thrift/ColumnMetaData.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js +79 -67
- package/dist/es5/parquetjs/parquet-thrift/ColumnOrder.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/CompressionCodec.js +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ConvertedType.js +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js +124 -113
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js +169 -158
- package/dist/es5/parquetjs/parquet-thrift/DataPageHeaderV2.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DateType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/DateType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DecimalType.js +79 -68
- package/dist/es5/parquetjs/parquet-thrift/DecimalType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js +94 -83
- package/dist/es5/parquetjs/parquet-thrift/DictionaryPageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/Encoding.js +1 -1
- package/dist/es5/parquetjs/parquet-thrift/EnumType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/EnumType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/FieldRepetitionType.js +1 -1
- package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js +182 -170
- package/dist/es5/parquetjs/parquet-thrift/FileMetaData.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/IndexPageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/IntType.js +79 -68
- package/dist/es5/parquetjs/parquet-thrift/IntType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/JsonType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/JsonType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/KeyValue.js +79 -68
- package/dist/es5/parquetjs/parquet-thrift/KeyValue.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/ListType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/ListType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/LogicalType.js +343 -319
- package/dist/es5/parquetjs/parquet-thrift/LogicalType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/MapType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/MapType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/MicroSeconds.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/MilliSeconds.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/NullType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/NullType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js +75 -64
- package/dist/es5/parquetjs/parquet-thrift/OffsetIndex.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js +94 -83
- package/dist/es5/parquetjs/parquet-thrift/PageEncodingStats.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageHeader.js +169 -158
- package/dist/es5/parquetjs/parquet-thrift/PageHeader.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageLocation.js +94 -83
- package/dist/es5/parquetjs/parquet-thrift/PageLocation.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/PageType.js +1 -1
- package/dist/es5/parquetjs/parquet-thrift/RowGroup.js +124 -113
- package/dist/es5/parquetjs/parquet-thrift/RowGroup.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js +199 -188
- package/dist/es5/parquetjs/parquet-thrift/SchemaElement.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js +94 -83
- package/dist/es5/parquetjs/parquet-thrift/SortingColumn.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/Statistics.js +135 -124
- package/dist/es5/parquetjs/parquet-thrift/Statistics.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/StringType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/StringType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TimeType.js +79 -68
- package/dist/es5/parquetjs/parquet-thrift/TimeType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js +101 -88
- package/dist/es5/parquetjs/parquet-thrift/TimeUnit.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TimestampType.js +79 -68
- package/dist/es5/parquetjs/parquet-thrift/TimestampType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/Type.js +1 -1
- package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/TypeDefinedOrder.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/UUIDType.js +45 -31
- package/dist/es5/parquetjs/parquet-thrift/UUIDType.js.map +1 -1
- package/dist/es5/parquetjs/parquet-thrift/index.js +43 -43
- package/dist/es5/parquetjs/parser/decoders.js +391 -218
- package/dist/es5/parquetjs/parser/decoders.js.map +1 -1
- package/dist/es5/parquetjs/parser/parquet-cursor.js +180 -62
- package/dist/es5/parquetjs/parser/parquet-cursor.js.map +1 -1
- package/dist/es5/parquetjs/parser/parquet-envelope-reader.js +370 -125
- package/dist/es5/parquetjs/parser/parquet-envelope-reader.js.map +1 -1
- package/dist/es5/parquetjs/parser/parquet-reader.js +320 -91
- package/dist/es5/parquetjs/parser/parquet-reader.js.map +1 -1
- package/dist/es5/parquetjs/schema/declare.js +11 -9
- package/dist/es5/parquetjs/schema/declare.js.map +1 -1
- package/dist/es5/parquetjs/schema/schema.js +87 -73
- package/dist/es5/parquetjs/schema/schema.js.map +1 -1
- package/dist/es5/parquetjs/schema/shred.js +96 -56
- package/dist/es5/parquetjs/schema/shred.js.map +1 -1
- package/dist/es5/parquetjs/schema/types.js +40 -39
- package/dist/es5/parquetjs/schema/types.js.map +1 -1
- package/dist/es5/parquetjs/utils/buffer-utils.js +1 -1
- package/dist/es5/parquetjs/utils/buffer-utils.js.map +1 -1
- package/dist/es5/parquetjs/utils/file-utils.js +12 -8
- package/dist/es5/parquetjs/utils/file-utils.js.map +1 -1
- package/dist/es5/parquetjs/utils/read-utils.js +50 -22
- package/dist/es5/parquetjs/utils/read-utils.js.map +1 -1
- package/dist/esm/parquet-loader.js +1 -1
- package/dist/esm/parquet-loader.js.map +1 -1
- package/dist/esm/parquet-writer.js +1 -1
- package/dist/esm/parquet-writer.js.map +1 -1
- package/package.json +5 -5
|
@@ -11,6 +11,10 @@ exports.decompress = decompress;
|
|
|
11
11
|
exports.inflate = inflate;
|
|
12
12
|
exports.PARQUET_COMPRESSION_METHODS = void 0;
|
|
13
13
|
|
|
14
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
15
|
+
|
|
16
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
17
|
+
|
|
14
18
|
var _compression = require("@loaders.gl/compression");
|
|
15
19
|
|
|
16
20
|
var _bufferUtils = require("./utils/buffer-utils");
|
|
@@ -19,59 +23,138 @@ var _lz4js = _interopRequireDefault(require("lz4js"));
|
|
|
19
23
|
|
|
20
24
|
var _lzo = _interopRequireDefault(require("lzo"));
|
|
21
25
|
|
|
22
|
-
|
|
26
|
+
var modules = {
|
|
23
27
|
lz4js: _lz4js.default,
|
|
24
28
|
lzo: _lzo.default
|
|
25
29
|
};
|
|
26
|
-
|
|
30
|
+
var PARQUET_COMPRESSION_METHODS = {
|
|
27
31
|
UNCOMPRESSED: new _compression.NoCompression(),
|
|
28
32
|
GZIP: new _compression.GZipCompression(),
|
|
29
33
|
SNAPPY: new _compression.SnappyCompression(),
|
|
30
34
|
BROTLI: new _compression.BrotliCompression({
|
|
31
|
-
modules
|
|
35
|
+
modules: modules
|
|
32
36
|
}),
|
|
33
37
|
LZ4: new _compression.LZ4Compression({
|
|
34
|
-
modules
|
|
38
|
+
modules: modules
|
|
35
39
|
}),
|
|
36
40
|
LZ4_RAW: new _compression.LZ4Compression({
|
|
37
|
-
modules
|
|
41
|
+
modules: modules
|
|
38
42
|
}),
|
|
39
43
|
LZO: new _compression.LZOCompression({
|
|
40
|
-
modules
|
|
44
|
+
modules: modules
|
|
41
45
|
}),
|
|
42
46
|
ZSTD: new _compression.ZstdCompression({
|
|
43
|
-
modules
|
|
47
|
+
modules: modules
|
|
44
48
|
})
|
|
45
49
|
};
|
|
46
50
|
exports.PARQUET_COMPRESSION_METHODS = PARQUET_COMPRESSION_METHODS;
|
|
47
51
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return await Promise.all(compressions.map(compression => compression.preload()));
|
|
52
|
+
function preloadCompressions(_x) {
|
|
53
|
+
return _preloadCompressions.apply(this, arguments);
|
|
51
54
|
}
|
|
52
55
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
function _preloadCompressions() {
|
|
57
|
+
_preloadCompressions = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
|
|
58
|
+
var compressions;
|
|
59
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
60
|
+
while (1) {
|
|
61
|
+
switch (_context.prev = _context.next) {
|
|
62
|
+
case 0:
|
|
63
|
+
compressions = Object.values(PARQUET_COMPRESSION_METHODS);
|
|
64
|
+
_context.next = 3;
|
|
65
|
+
return Promise.all(compressions.map(function (compression) {
|
|
66
|
+
return compression.preload();
|
|
67
|
+
}));
|
|
68
|
+
|
|
69
|
+
case 3:
|
|
70
|
+
return _context.abrupt("return", _context.sent);
|
|
71
|
+
|
|
72
|
+
case 4:
|
|
73
|
+
case "end":
|
|
74
|
+
return _context.stop();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}, _callee);
|
|
78
|
+
}));
|
|
79
|
+
return _preloadCompressions.apply(this, arguments);
|
|
80
|
+
}
|
|
59
81
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return (0, _bufferUtils.toBuffer)(compressedArrayBuffer);
|
|
82
|
+
function deflate(_x2, _x3) {
|
|
83
|
+
return _deflate.apply(this, arguments);
|
|
63
84
|
}
|
|
64
85
|
|
|
65
|
-
|
|
66
|
-
|
|
86
|
+
function _deflate() {
|
|
87
|
+
_deflate = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(method, value) {
|
|
88
|
+
var compression, inputArrayBuffer, compressedArrayBuffer;
|
|
89
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
90
|
+
while (1) {
|
|
91
|
+
switch (_context2.prev = _context2.next) {
|
|
92
|
+
case 0:
|
|
93
|
+
compression = PARQUET_COMPRESSION_METHODS[method];
|
|
94
|
+
|
|
95
|
+
if (compression) {
|
|
96
|
+
_context2.next = 3;
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
throw new Error("parquet: invalid compression method: ".concat(method));
|
|
101
|
+
|
|
102
|
+
case 3:
|
|
103
|
+
inputArrayBuffer = (0, _bufferUtils.toArrayBuffer)(value);
|
|
104
|
+
_context2.next = 6;
|
|
105
|
+
return compression.compress(inputArrayBuffer);
|
|
106
|
+
|
|
107
|
+
case 6:
|
|
108
|
+
compressedArrayBuffer = _context2.sent;
|
|
109
|
+
return _context2.abrupt("return", (0, _bufferUtils.toBuffer)(compressedArrayBuffer));
|
|
110
|
+
|
|
111
|
+
case 8:
|
|
112
|
+
case "end":
|
|
113
|
+
return _context2.stop();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}, _callee2);
|
|
117
|
+
}));
|
|
118
|
+
return _deflate.apply(this, arguments);
|
|
119
|
+
}
|
|
67
120
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
121
|
+
function decompress(_x4, _x5, _x6) {
|
|
122
|
+
return _decompress.apply(this, arguments);
|
|
123
|
+
}
|
|
71
124
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
125
|
+
function _decompress() {
|
|
126
|
+
_decompress = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(method, value, size) {
|
|
127
|
+
var compression, inputArrayBuffer, compressedArrayBuffer;
|
|
128
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
129
|
+
while (1) {
|
|
130
|
+
switch (_context3.prev = _context3.next) {
|
|
131
|
+
case 0:
|
|
132
|
+
compression = PARQUET_COMPRESSION_METHODS[method];
|
|
133
|
+
|
|
134
|
+
if (compression) {
|
|
135
|
+
_context3.next = 3;
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
throw new Error("parquet: invalid compression method: ".concat(method));
|
|
140
|
+
|
|
141
|
+
case 3:
|
|
142
|
+
inputArrayBuffer = (0, _bufferUtils.toArrayBuffer)(value);
|
|
143
|
+
_context3.next = 6;
|
|
144
|
+
return compression.decompress(inputArrayBuffer, size);
|
|
145
|
+
|
|
146
|
+
case 6:
|
|
147
|
+
compressedArrayBuffer = _context3.sent;
|
|
148
|
+
return _context3.abrupt("return", (0, _bufferUtils.toBuffer)(compressedArrayBuffer));
|
|
149
|
+
|
|
150
|
+
case 8:
|
|
151
|
+
case "end":
|
|
152
|
+
return _context3.stop();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}, _callee3);
|
|
156
|
+
}));
|
|
157
|
+
return _decompress.apply(this, arguments);
|
|
75
158
|
}
|
|
76
159
|
|
|
77
160
|
function inflate(method, value, size) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/parquetjs/compression.ts"],"names":["modules","lz4js","lzo","PARQUET_COMPRESSION_METHODS","UNCOMPRESSED","NoCompression","GZIP","GZipCompression","SNAPPY","SnappyCompression","BROTLI","BrotliCompression","LZ4","LZ4Compression","LZ4_RAW","LZO","LZOCompression","ZSTD","ZstdCompression","preloadCompressions","options","compressions","Object","values","Promise","all","map","compression","preload","deflate","method","value","Error","inputArrayBuffer","
|
|
1
|
+
{"version":3,"sources":["../../../src/parquetjs/compression.ts"],"names":["modules","lz4js","lzo","PARQUET_COMPRESSION_METHODS","UNCOMPRESSED","NoCompression","GZIP","GZipCompression","SNAPPY","SnappyCompression","BROTLI","BrotliCompression","LZ4","LZ4Compression","LZ4_RAW","LZO","LZOCompression","ZSTD","ZstdCompression","preloadCompressions","options","compressions","Object","values","Promise","all","map","compression","preload","deflate","method","value","Error","inputArrayBuffer","compress","compressedArrayBuffer","decompress","size","inflate"],"mappings":"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","sourcesContent":["// Forked from https://github.com/kbajalc/parquets under MIT license (Copyright (c) 2017 ironSource Ltd.)\n/* eslint-disable camelcase */\n// Forked from https://github.com/ironSource/parquetjs under MIT license\n\nimport {\n Compression,\n NoCompression,\n GZipCompression,\n SnappyCompression,\n BrotliCompression,\n LZOCompression,\n LZ4Compression,\n ZstdCompression\n} from '@loaders.gl/compression';\n\nimport {ParquetCompression} from './schema/declare';\nimport {toArrayBuffer, toBuffer} from './utils/buffer-utils';\n\n// TODO switch to worker compression to avoid bundling...\n\n// import brotli from 'brotli'; - brotli has problems with decompress in browsers\n// import brotliDecompress from 'brotli/decompress';\nimport lz4js from 'lz4js';\nimport lzo from 'lzo';\n// import {ZstdCodec} from 'zstd-codec';\n\n// Inject large dependencies through Compression constructor options\nconst modules = {\n // brotli has problems with decompress in browsers\n // brotli: {\n // decompress: brotliDecompress,\n // compress: () => {\n // throw new Error('brotli compress');\n // }\n // },\n lz4js,\n lzo\n // 'zstd-codec': ZstdCodec\n};\n\n// See https://github.com/apache/parquet-format/blob/master/Compression.md\nexport const PARQUET_COMPRESSION_METHODS: Record<ParquetCompression, Compression> = {\n UNCOMPRESSED: new NoCompression(),\n GZIP: new GZipCompression(),\n SNAPPY: new SnappyCompression(),\n BROTLI: new BrotliCompression({modules}),\n // TODO: Understand difference between LZ4 and LZ4_RAW\n LZ4: new LZ4Compression({modules}),\n LZ4_RAW: new LZ4Compression({modules}),\n LZO: new LZOCompression({modules}),\n ZSTD: new ZstdCompression({modules})\n};\n\n/**\n * Register compressions that have big external libraries\n * @param options.modules External library dependencies\n */\nexport async function preloadCompressions(options?: {modules: {[key: string]: any}}) {\n const compressions = Object.values(PARQUET_COMPRESSION_METHODS);\n return await Promise.all(compressions.map((compression) => compression.preload()));\n}\n\n/**\n * Deflate a value using compression method `method`\n */\nexport async function deflate(method: ParquetCompression, value: Buffer): Promise<Buffer> {\n const compression = PARQUET_COMPRESSION_METHODS[method];\n if (!compression) {\n throw new Error(`parquet: invalid compression method: ${method}`);\n }\n const inputArrayBuffer = toArrayBuffer(value);\n const compressedArrayBuffer = await compression.compress(inputArrayBuffer);\n return toBuffer(compressedArrayBuffer);\n}\n\n/**\n * Inflate a value using compression method `method`\n */\nexport async function decompress(\n method: ParquetCompression,\n value: Buffer,\n size: number\n): Promise<Buffer> {\n const compression = PARQUET_COMPRESSION_METHODS[method];\n if (!compression) {\n throw new Error(`parquet: invalid compression method: ${method}`);\n }\n const inputArrayBuffer = toArrayBuffer(value);\n const compressedArrayBuffer = await compression.decompress(inputArrayBuffer, size);\n return toBuffer(compressedArrayBuffer);\n}\n\n/*\n * Inflate a value using compression method `method`\n */\nexport function inflate(method: ParquetCompression, value: Buffer, size: number): Buffer {\n if (!(method in PARQUET_COMPRESSION_METHODS)) {\n throw new Error(`invalid compression method: ${method}`);\n }\n // @ts-ignore\n return PARQUET_COMPRESSION_METHODS[method].inflate(value, size);\n}\n\n/*\nfunction deflate_identity(value: Buffer): Buffer {\n return value;\n}\n\nfunction deflate_gzip(value: Buffer): Buffer {\n return zlib.gzipSync(value);\n}\n\nfunction deflate_snappy(value: Buffer): Buffer {\n return snappyjs.compress(value);\n}\n\nfunction deflate_lzo(value: Buffer): Buffer {\n lzo = lzo || Util.load('lzo');\n return lzo.compress(value);\n}\n\nfunction deflate_brotli(value: Buffer): Buffer {\n brotli = brotli || Util.load('brotli');\n const result = brotli.compress(value, {\n mode: 0,\n quality: 8,\n lgwin: 22\n });\n return result ? Buffer.from(result) : Buffer.alloc(0);\n}\n\nfunction deflate_lz4(value: Buffer): Buffer {\n lz4js = lz4js || Util.load('lz4js');\n try {\n // let result = Buffer.alloc(lz4js.encodeBound(value.length));\n // const compressedSize = lz4.encodeBlock(value, result);\n // // remove unnecessary bytes\n // result = result.slice(0, compressedSize);\n // return result;\n return Buffer.from(lz4js.compress(value));\n } catch (err) {\n throw err;\n }\n}\nfunction inflate_identity(value: Buffer): Buffer {\n return value;\n}\n\nfunction inflate_gzip(value: Buffer): Buffer {\n return zlib.gunzipSync(value);\n}\n\nfunction inflate_snappy(value: Buffer): Buffer {\n return snappyjs.uncompress(value);\n}\n\nfunction inflate_lzo(value: Buffer, size: number): Buffer {\n lzo = lzo || Util.load('lzo');\n return lzo.decompress(value, size);\n}\n\nfunction inflate_lz4(value: Buffer, size: number): Buffer {\n lz4js = lz4js || Util.load('lz4js');\n try {\n // let result = Buffer.alloc(size);\n // const uncompressedSize = lz4js.decodeBlock(value, result);\n // // remove unnecessary bytes\n // result = result.slice(0, uncompressedSize);\n // return result;\n return Buffer.from(lz4js.decompress(value, size));\n } catch (err) {\n throw err;\n }\n}\n\nfunction inflate_brotli(value: Buffer): Buffer {\n brotli = brotli || Util.load('brotli');\n if (!value.length) {\n return Buffer.alloc(0);\n }\n return Buffer.from(brotli.decompress(value));\n}\n*/\n"],"file":"compression.js"}
|