@loaders.gl/parquet 3.2.0-alpha.2 → 3.2.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/dist.min.js +31 -15
- package/dist/dist.min.js.map +3 -3
- package/dist/es5/index.js +25 -1
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/wasm/encode-parquet-wasm.js +56 -0
- package/dist/es5/lib/wasm/encode-parquet-wasm.js.map +1 -0
- package/dist/es5/lib/wasm/load-wasm/index.js +14 -0
- package/dist/es5/lib/wasm/load-wasm/index.js.map +1 -0
- package/dist/es5/lib/wasm/load-wasm/load-wasm-browser.js +58 -0
- package/dist/es5/lib/wasm/load-wasm/load-wasm-browser.js.map +1 -0
- package/dist/es5/lib/wasm/load-wasm/load-wasm-node.js +43 -0
- package/dist/es5/lib/wasm/load-wasm/load-wasm-node.js.map +1 -0
- package/dist/es5/lib/wasm/parse-parquet-wasm.js +80 -0
- package/dist/es5/lib/wasm/parse-parquet-wasm.js.map +1 -0
- package/dist/es5/parquet-loader.js +1 -1
- package/dist/es5/parquet-loader.js.map +1 -1
- package/dist/es5/parquet-wasm-loader.js +30 -0
- package/dist/es5/parquet-wasm-loader.js.map +1 -0
- package/dist/es5/parquet-wasm-writer.js +28 -0
- package/dist/es5/parquet-wasm-writer.js.map +1 -0
- package/dist/es5/parquet-writer.js +1 -1
- package/dist/es5/parquet-writer.js.map +1 -1
- package/dist/esm/index.js +7 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/wasm/encode-parquet-wasm.js +16 -0
- package/dist/esm/lib/wasm/encode-parquet-wasm.js.map +1 -0
- package/dist/esm/lib/wasm/load-wasm/index.js +2 -0
- package/dist/esm/lib/wasm/load-wasm/index.js.map +1 -0
- package/dist/esm/lib/wasm/load-wasm/load-wasm-browser.js +12 -0
- package/dist/esm/lib/wasm/load-wasm/load-wasm-browser.js.map +1 -0
- package/dist/esm/lib/wasm/load-wasm/load-wasm-node.js +5 -0
- package/dist/esm/lib/wasm/load-wasm/load-wasm-node.js.map +1 -0
- package/dist/esm/lib/wasm/parse-parquet-wasm.js +25 -0
- package/dist/esm/lib/wasm/parse-parquet-wasm.js.map +1 -0
- package/dist/esm/parquet-loader.js +1 -1
- package/dist/esm/parquet-loader.js.map +1 -1
- package/dist/esm/parquet-wasm-loader.js +22 -0
- package/dist/esm/parquet-wasm-loader.js.map +1 -0
- package/dist/esm/parquet-wasm-writer.js +19 -0
- package/dist/esm/parquet-wasm-writer.js.map +1 -0
- package/dist/esm/parquet-writer.js +1 -1
- package/dist/esm/parquet-writer.js.map +1 -1
- package/dist/index.d.ts +18 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/lib/wasm/encode-parquet-wasm.d.ts +21 -0
- package/dist/lib/wasm/encode-parquet-wasm.d.ts.map +1 -0
- package/dist/lib/wasm/encode-parquet-wasm.js +30 -0
- package/dist/lib/wasm/load-wasm/index.d.ts +2 -0
- package/dist/lib/wasm/load-wasm/index.d.ts.map +1 -0
- package/dist/lib/wasm/load-wasm/index.js +5 -0
- package/dist/lib/wasm/load-wasm/load-wasm-browser.d.ts +3 -0
- package/dist/lib/wasm/load-wasm/load-wasm-browser.d.ts.map +1 -0
- package/dist/lib/wasm/load-wasm/load-wasm-browser.js +34 -0
- package/dist/lib/wasm/load-wasm/load-wasm-node.d.ts +3 -0
- package/dist/lib/wasm/load-wasm/load-wasm-node.d.ts.map +1 -0
- package/dist/lib/wasm/load-wasm/load-wasm-node.js +27 -0
- package/dist/lib/wasm/parse-parquet-wasm.d.ts +10 -0
- package/dist/lib/wasm/parse-parquet-wasm.d.ts.map +1 -0
- package/dist/lib/wasm/parse-parquet-wasm.js +27 -0
- package/dist/parquet-wasm-loader.d.ts +23 -0
- package/dist/parquet-wasm-loader.d.ts.map +1 -0
- package/dist/parquet-wasm-loader.js +27 -0
- package/dist/parquet-wasm-writer.d.ts +3 -0
- package/dist/parquet-wasm-writer.d.ts.map +1 -0
- package/dist/parquet-wasm-writer.js +23 -0
- package/dist/parquet-worker.js +32 -16
- package/dist/parquet-worker.js.map +3 -3
- package/package.json +13 -7
- package/src/index.ts +9 -1
- package/src/lib/wasm/encode-parquet-wasm.ts +40 -0
- package/src/lib/wasm/load-wasm/index.ts +1 -0
- package/src/lib/wasm/load-wasm/load-wasm-browser.ts +15 -0
- package/src/lib/wasm/load-wasm/load-wasm-node.ts +5 -0
- package/src/lib/wasm/parse-parquet-wasm.ts +42 -0
- package/src/parquet-wasm-loader.ts +36 -0
- package/src/parquet-wasm-writer.ts +24 -0
package/dist/es5/index.js
CHANGED
|
@@ -5,6 +5,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
Object.defineProperty(exports, "ParquetWasmWorkerLoader", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _parquetWasmLoader.ParquetWasmLoader;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
8
14
|
Object.defineProperty(exports, "ParquetWorkerLoader", {
|
|
9
15
|
enumerable: true,
|
|
10
16
|
get: function get() {
|
|
@@ -17,6 +23,12 @@ Object.defineProperty(exports, "_ParquetWriter", {
|
|
|
17
23
|
return _parquetWriter.ParquetWriter;
|
|
18
24
|
}
|
|
19
25
|
});
|
|
26
|
+
Object.defineProperty(exports, "ParquetWasmWriter", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function get() {
|
|
29
|
+
return _parquetWasmWriter.ParquetWasmWriter;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
20
32
|
Object.defineProperty(exports, "preloadCompressions", {
|
|
21
33
|
enumerable: true,
|
|
22
34
|
get: function get() {
|
|
@@ -47,16 +59,22 @@ Object.defineProperty(exports, "convertParquetToArrowSchema", {
|
|
|
47
59
|
return _convertSchema.convertParquetToArrowSchema;
|
|
48
60
|
}
|
|
49
61
|
});
|
|
50
|
-
exports._typecheckParquetLoader = exports.ParquetLoader = void 0;
|
|
62
|
+
exports._typecheckParquetLoader = exports.ParquetWasmLoader = exports.ParquetLoader = void 0;
|
|
51
63
|
|
|
52
64
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
53
65
|
|
|
66
|
+
var _parquetWasmLoader = require("./parquet-wasm-loader");
|
|
67
|
+
|
|
54
68
|
var _parquetLoader = require("./parquet-loader");
|
|
55
69
|
|
|
56
70
|
var _parseParquet = require("./lib/parse-parquet");
|
|
57
71
|
|
|
72
|
+
var _parseParquetWasm = require("./lib/wasm/parse-parquet-wasm");
|
|
73
|
+
|
|
58
74
|
var _parquetWriter = require("./parquet-writer");
|
|
59
75
|
|
|
76
|
+
var _parquetWasmWriter = require("./parquet-wasm-writer");
|
|
77
|
+
|
|
60
78
|
var _compression = require("./parquetjs/compression");
|
|
61
79
|
|
|
62
80
|
var _schema = require("./parquetjs/schema/schema");
|
|
@@ -77,6 +95,12 @@ var ParquetLoader = _objectSpread(_objectSpread({}, _parquetLoader.ParquetLoader
|
|
|
77
95
|
});
|
|
78
96
|
|
|
79
97
|
exports.ParquetLoader = ParquetLoader;
|
|
98
|
+
|
|
99
|
+
var ParquetWasmLoader = _objectSpread(_objectSpread({}, _parquetWasmLoader.ParquetWasmLoader), {}, {
|
|
100
|
+
parse: _parseParquetWasm.parseParquet
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
exports.ParquetWasmLoader = ParquetWasmLoader;
|
|
80
104
|
var _typecheckParquetLoader = ParquetLoader;
|
|
81
105
|
exports._typecheckParquetLoader = _typecheckParquetLoader;
|
|
82
106
|
//# sourceMappingURL=index.js.map
|
package/dist/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":["ParquetLoader","ParquetWorkerLoader","parse","parseParquet","parseFileInBatches","parseParquetFileInBatches","_typecheckParquetLoader"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":["ParquetLoader","ParquetWorkerLoader","parse","parseParquet","parseFileInBatches","parseParquetFileInBatches","ParquetWasmLoader","ParquetWasmWorkerLoader","parseParquetWasm","_typecheckParquetLoader"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;AACA;;AACA;;AACA;;AAkBA;;AACA;;AAIA;;AAEA;;AACA;;AACA;;AAEA;;;;;;AAxBO,IAAMA,aAAa,mCACrBC,4BADqB;AAExBC,EAAAA,KAAK,EAAEC,0BAFiB;AAGxBC,EAAAA,kBAAkB,EAAEC;AAHI,EAAnB;;;;AAMA,IAAMC,iBAAiB,mCACzBC,oCADyB;AAE5BL,EAAAA,KAAK,EAAEM;AAFqB,EAAvB;;;AAqBA,IAAMC,uBAAyC,GAAGT,aAAlD","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\n\n// ParquetLoader\n\nimport {ParquetWasmLoader as ParquetWasmWorkerLoader} from './parquet-wasm-loader';\nimport {ParquetLoader as ParquetWorkerLoader} from './parquet-loader';\nimport {parseParquet, parseParquetFileInBatches} from './lib/parse-parquet';\nimport {parseParquet as parseParquetWasm} from './lib/wasm/parse-parquet-wasm';\n\nexport {ParquetWorkerLoader, ParquetWasmWorkerLoader};\n\n/** ParquetJS table loader */\nexport const ParquetLoader = {\n ...ParquetWorkerLoader,\n parse: parseParquet,\n parseFileInBatches: parseParquetFileInBatches\n};\n\nexport const ParquetWasmLoader = {\n ...ParquetWasmWorkerLoader,\n parse: parseParquetWasm\n};\n\n// ParquetWriter\n\nexport {ParquetWriter as _ParquetWriter} from './parquet-writer';\nexport {ParquetWasmWriter} from './parquet-wasm-writer';\n\n// EXPERIMENTAL - expose the internal parquetjs API\n\nexport {preloadCompressions} from './parquetjs/compression';\n\nexport {ParquetSchema} from './parquetjs/schema/schema';\nexport {ParquetReader} from './parquetjs/parser/parquet-reader';\nexport {ParquetEnvelopeReader} from './parquetjs/parser/parquet-envelope-reader';\n// export {ParquetWriter, ParquetEnvelopeWriter, ParquetTransformer} from './parquetjs/encoder/writer';\nexport {convertParquetToArrowSchema} from './lib/convert-schema';\n\n// TESTS\nexport const _typecheckParquetLoader: LoaderWithParser = ParquetLoader;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.encode = encode;
|
|
9
|
+
exports.tableToIPC = tableToIPC;
|
|
10
|
+
|
|
11
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
12
|
+
|
|
13
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
14
|
+
|
|
15
|
+
var _apacheArrow = require("apache-arrow");
|
|
16
|
+
|
|
17
|
+
var _loadWasm = require("./load-wasm");
|
|
18
|
+
|
|
19
|
+
function encode(_x, _x2) {
|
|
20
|
+
return _encode.apply(this, arguments);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function _encode() {
|
|
24
|
+
_encode = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(table, options) {
|
|
25
|
+
var _options$parquet;
|
|
26
|
+
|
|
27
|
+
var wasmUrl, wasm, arrowIPCBytes, writerProperties, parquetBytes;
|
|
28
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
29
|
+
while (1) {
|
|
30
|
+
switch (_context.prev = _context.next) {
|
|
31
|
+
case 0:
|
|
32
|
+
wasmUrl = options === null || options === void 0 ? void 0 : (_options$parquet = options.parquet) === null || _options$parquet === void 0 ? void 0 : _options$parquet.wasmUrl;
|
|
33
|
+
_context.next = 3;
|
|
34
|
+
return (0, _loadWasm.loadWasm)(wasmUrl);
|
|
35
|
+
|
|
36
|
+
case 3:
|
|
37
|
+
wasm = _context.sent;
|
|
38
|
+
arrowIPCBytes = tableToIPC(table);
|
|
39
|
+
writerProperties = new wasm.WriterPropertiesBuilder().build();
|
|
40
|
+
parquetBytes = wasm.writeParquet(arrowIPCBytes, writerProperties);
|
|
41
|
+
return _context.abrupt("return", parquetBytes.buffer.slice(parquetBytes.byteOffset, parquetBytes.byteLength + parquetBytes.byteOffset));
|
|
42
|
+
|
|
43
|
+
case 8:
|
|
44
|
+
case "end":
|
|
45
|
+
return _context.stop();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}, _callee);
|
|
49
|
+
}));
|
|
50
|
+
return _encode.apply(this, arguments);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function tableToIPC(table) {
|
|
54
|
+
return _apacheArrow.RecordBatchStreamWriter.writeAll(table).toUint8Array(true);
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=encode-parquet-wasm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/wasm/encode-parquet-wasm.ts"],"names":["encode","table","options","wasmUrl","parquet","wasm","arrowIPCBytes","tableToIPC","writerProperties","WriterPropertiesBuilder","build","parquetBytes","writeParquet","buffer","slice","byteOffset","byteLength","RecordBatchStreamWriter","writeAll","toUint8Array"],"mappings":";;;;;;;;;;;;;;AAGA;;AACA;;SAWsBA,M;;;;;sEAAf,iBAAsBC,KAAtB,EAAoCC,OAApC;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AACCC,YAAAA,OADD,GACWD,OADX,aACWA,OADX,2CACWA,OAAO,CAAEE,OADpB,qDACW,iBAAkBD,OAD7B;AAAA;AAAA,mBAEc,wBAASA,OAAT,CAFd;;AAAA;AAECE,YAAAA,IAFD;AAICC,YAAAA,aAJD,GAIiBC,UAAU,CAACN,KAAD,CAJ3B;AAMCO,YAAAA,gBAND,GAMoB,IAAIH,IAAI,CAACI,uBAAT,GAAmCC,KAAnC,EANpB;AAOCC,YAAAA,YAPD,GAOgBN,IAAI,CAACO,YAAL,CAAkBN,aAAlB,EAAiCE,gBAAjC,CAPhB;AAAA,6CAQEG,YAAY,CAACE,MAAb,CAAoBC,KAApB,CACLH,YAAY,CAACI,UADR,EAELJ,YAAY,CAACK,UAAb,GAA0BL,YAAY,CAACI,UAFlC,CARF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAsBA,SAASR,UAAT,CAAoBN,KAApB,EAA8C;AACnD,SAAOgB,qCAAwBC,QAAxB,CAAiCjB,KAAjC,EAAwCkB,YAAxC,CAAqD,IAArD,CAAP;AACD","sourcesContent":["import type {Table} from 'apache-arrow';\nimport type {WriterOptions} from '@loaders.gl/loader-utils';\n\nimport {RecordBatchStreamWriter} from 'apache-arrow';\nimport {loadWasm} from './load-wasm';\n\nexport type ParquetWriterOptions = WriterOptions & {\n parquet?: {\n wasmUrl?: string;\n };\n};\n\n/**\n * Encode Arrow Table to Parquet buffer\n */\nexport async function encode(table: Table, options?: ParquetWriterOptions): Promise<ArrayBuffer> {\n const wasmUrl = options?.parquet?.wasmUrl;\n const wasm = await loadWasm(wasmUrl);\n\n const arrowIPCBytes = tableToIPC(table);\n // TODO: provide options for how to write table.\n const writerProperties = new wasm.WriterPropertiesBuilder().build();\n const parquetBytes = wasm.writeParquet(arrowIPCBytes, writerProperties);\n return parquetBytes.buffer.slice(\n parquetBytes.byteOffset,\n parquetBytes.byteLength + parquetBytes.byteOffset\n );\n}\n\n/**\n * Serialize a {@link Table} to the IPC format. This function is a convenience\n * wrapper for {@link RecordBatchStreamWriter} and {@link RecordBatchFileWriter}.\n * Opposite of {@link tableFromIPC}.\n *\n * @param table The Table to serialize.\n * @param type Whether to serialize the Table as a file or a stream.\n */\nexport function tableToIPC(table: Table): Uint8Array {\n return RecordBatchStreamWriter.writeAll(table).toUint8Array(true);\n}\n"],"file":"encode-parquet-wasm.js"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "loadWasm", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _loadWasmNode.loadWasm;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
var _loadWasmNode = require("./load-wasm-node");
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/wasm/load-wasm/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA","sourcesContent":["export {loadWasm} from './load-wasm-node';\n"],"file":"index.js"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.loadWasm = loadWasm;
|
|
11
|
+
|
|
12
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
13
|
+
|
|
14
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
+
|
|
16
|
+
var wasmEsm = _interopRequireWildcard(require("parquet-wasm/esm2/arrow1"));
|
|
17
|
+
|
|
18
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
|
+
|
|
20
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
|
+
|
|
22
|
+
var cached = null;
|
|
23
|
+
|
|
24
|
+
function loadWasm(_x) {
|
|
25
|
+
return _loadWasm.apply(this, arguments);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function _loadWasm() {
|
|
29
|
+
_loadWasm = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(wasmUrl) {
|
|
30
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
31
|
+
while (1) {
|
|
32
|
+
switch (_context.prev = _context.next) {
|
|
33
|
+
case 0:
|
|
34
|
+
if (!(cached !== null)) {
|
|
35
|
+
_context.next = 2;
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return _context.abrupt("return", cached);
|
|
40
|
+
|
|
41
|
+
case 2:
|
|
42
|
+
_context.next = 4;
|
|
43
|
+
return wasmEsm.default(wasmUrl);
|
|
44
|
+
|
|
45
|
+
case 4:
|
|
46
|
+
cached = wasmEsm;
|
|
47
|
+
return _context.abrupt("return", wasmEsm);
|
|
48
|
+
|
|
49
|
+
case 6:
|
|
50
|
+
case "end":
|
|
51
|
+
return _context.stop();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}, _callee);
|
|
55
|
+
}));
|
|
56
|
+
return _loadWasm.apply(this, arguments);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=load-wasm-browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/wasm/load-wasm/load-wasm-browser.ts"],"names":["cached","loadWasm","wasmUrl","wasmEsm","default"],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;AAEA,IAAIA,MAA6B,GAAG,IAApC;;SAEsBC,Q;;;;;wEAAf,iBAAwBC,OAAxB;AAAA;AAAA;AAAA;AAAA;AAAA,kBACDF,MAAM,KAAK,IADV;AAAA;AAAA;AAAA;;AAAA,6CAEIA,MAFJ;;AAAA;AAAA;AAAA,mBAMCG,OAAO,CAACC,OAAR,CAAgBF,OAAhB,CAND;;AAAA;AAOLF,YAAAA,MAAM,GAAGG,OAAT;AAPK,6CASEA,OATF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["import * as wasmEsm from 'parquet-wasm/esm2/arrow1';\n\nlet cached: typeof wasmEsm | null = null;\n\nexport async function loadWasm(wasmUrl?: string) {\n if (cached !== null) {\n return cached;\n }\n\n // For ESM bundles, need to await the default export, which loads the WASM\n await wasmEsm.default(wasmUrl);\n cached = wasmEsm;\n\n return wasmEsm;\n}\n"],"file":"load-wasm-browser.js"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.loadWasm = loadWasm;
|
|
11
|
+
|
|
12
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
13
|
+
|
|
14
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
+
|
|
16
|
+
var wasmNode = _interopRequireWildcard(require("parquet-wasm/node/arrow1"));
|
|
17
|
+
|
|
18
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
|
+
|
|
20
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
|
+
|
|
22
|
+
function loadWasm(_x) {
|
|
23
|
+
return _loadWasm.apply(this, arguments);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function _loadWasm() {
|
|
27
|
+
_loadWasm = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(wasmUrl) {
|
|
28
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
29
|
+
while (1) {
|
|
30
|
+
switch (_context.prev = _context.next) {
|
|
31
|
+
case 0:
|
|
32
|
+
return _context.abrupt("return", wasmNode);
|
|
33
|
+
|
|
34
|
+
case 1:
|
|
35
|
+
case "end":
|
|
36
|
+
return _context.stop();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}, _callee);
|
|
40
|
+
}));
|
|
41
|
+
return _loadWasm.apply(this, arguments);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=load-wasm-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/wasm/load-wasm/load-wasm-node.ts"],"names":["loadWasm","wasmUrl","wasmNode"],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;SAEsBA,Q;;;;;wEAAf,iBAAwBC,OAAxB;AAAA;AAAA;AAAA;AAAA;AAAA,6CACEC,QADF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["import * as wasmNode from 'parquet-wasm/node/arrow1';\n\nexport async function loadWasm(wasmUrl?: string) {\n return wasmNode;\n}\n"],"file":"load-wasm-node.js"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.parseParquet = parseParquet;
|
|
9
|
+
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var _apacheArrow = require("apache-arrow");
|
|
15
|
+
|
|
16
|
+
var _loadWasmNode = require("./load-wasm/load-wasm-node");
|
|
17
|
+
|
|
18
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
19
|
+
|
|
20
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
21
|
+
|
|
22
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
23
|
+
|
|
24
|
+
function parseParquet(_x, _x2) {
|
|
25
|
+
return _parseParquet.apply(this, arguments);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function _parseParquet() {
|
|
29
|
+
_parseParquet = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
|
|
30
|
+
var _options$parquet;
|
|
31
|
+
|
|
32
|
+
var wasmUrl, wasm, arr, arrowIPCUint8Arr, arrowIPCBuffer, arrowTable;
|
|
33
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
34
|
+
while (1) {
|
|
35
|
+
switch (_context.prev = _context.next) {
|
|
36
|
+
case 0:
|
|
37
|
+
wasmUrl = options === null || options === void 0 ? void 0 : (_options$parquet = options.parquet) === null || _options$parquet === void 0 ? void 0 : _options$parquet.wasmUrl;
|
|
38
|
+
_context.next = 3;
|
|
39
|
+
return (0, _loadWasmNode.loadWasm)(wasmUrl);
|
|
40
|
+
|
|
41
|
+
case 3:
|
|
42
|
+
wasm = _context.sent;
|
|
43
|
+
arr = new Uint8Array(arrayBuffer);
|
|
44
|
+
arrowIPCUint8Arr = wasm.readParquet(arr);
|
|
45
|
+
arrowIPCBuffer = arrowIPCUint8Arr.buffer.slice(arrowIPCUint8Arr.byteOffset, arrowIPCUint8Arr.byteLength + arrowIPCUint8Arr.byteOffset);
|
|
46
|
+
arrowTable = tableFromIPC(arrowIPCBuffer);
|
|
47
|
+
return _context.abrupt("return", arrowTable);
|
|
48
|
+
|
|
49
|
+
case 9:
|
|
50
|
+
case "end":
|
|
51
|
+
return _context.stop();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}, _callee);
|
|
55
|
+
}));
|
|
56
|
+
return _parseParquet.apply(this, arguments);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function tableFromIPC(input) {
|
|
60
|
+
var reader = _apacheArrow.RecordBatchStreamReader.from(input);
|
|
61
|
+
|
|
62
|
+
var recordBatches = [];
|
|
63
|
+
|
|
64
|
+
var _iterator = _createForOfIteratorHelper(reader),
|
|
65
|
+
_step;
|
|
66
|
+
|
|
67
|
+
try {
|
|
68
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
69
|
+
var recordBatch = _step.value;
|
|
70
|
+
recordBatches.push(recordBatch);
|
|
71
|
+
}
|
|
72
|
+
} catch (err) {
|
|
73
|
+
_iterator.e(err);
|
|
74
|
+
} finally {
|
|
75
|
+
_iterator.f();
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return new _apacheArrow.Table(recordBatches);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=parse-parquet-wasm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/wasm/parse-parquet-wasm.ts"],"names":["parseParquet","arrayBuffer","options","wasmUrl","parquet","wasm","arr","Uint8Array","arrowIPCUint8Arr","readParquet","arrowIPCBuffer","buffer","slice","byteOffset","byteLength","arrowTable","tableFromIPC","input","reader","RecordBatchStreamReader","from","recordBatches","recordBatch","push","Table"],"mappings":";;;;;;;;;;;;;AAGA;;AACA;;;;;;;;SASsBA,Y;;;;;4EAAf,iBACLC,WADK,EAELC,OAFK;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAICC,YAAAA,OAJD,GAIWD,OAJX,aAIWA,OAJX,2CAIWA,OAAO,CAAEE,OAJpB,qDAIW,iBAAkBD,OAJ7B;AAAA;AAAA,mBAKc,4BAASA,OAAT,CALd;;AAAA;AAKCE,YAAAA,IALD;AAOCC,YAAAA,GAPD,GAOO,IAAIC,UAAJ,CAAeN,WAAf,CAPP;AAQCO,YAAAA,gBARD,GAQoBH,IAAI,CAACI,WAAL,CAAiBH,GAAjB,CARpB;AASCI,YAAAA,cATD,GASkBF,gBAAgB,CAACG,MAAjB,CAAwBC,KAAxB,CACrBJ,gBAAgB,CAACK,UADI,EAErBL,gBAAgB,CAACM,UAAjB,GAA8BN,gBAAgB,CAACK,UAF1B,CATlB;AAaCE,YAAAA,UAbD,GAacC,YAAY,CAACN,cAAD,CAb1B;AAAA,6CAcEK,UAdF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAqBP,SAASC,YAAT,CAAsBC,KAAtB,EAAiD;AAC/C,MAAMC,MAAM,GAAGC,qCAAwBC,IAAxB,CAA6BH,KAA7B,CAAf;;AACA,MAAMI,aAA4B,GAAG,EAArC;;AAF+C,6CAGrBH,MAHqB;AAAA;;AAAA;AAG/C,wDAAkC;AAAA,UAAvBI,WAAuB;AAChCD,MAAAA,aAAa,CAACE,IAAd,CAAmBD,WAAnB;AACD;AAL8C;AAAA;AAAA;AAAA;AAAA;;AAM/C,SAAO,IAAIE,kBAAJ,CAAUH,aAAV,CAAP;AACD","sourcesContent":["// eslint-disable\nimport type {RecordBatch} from 'apache-arrow';\nimport type {LoaderOptions} from '@loaders.gl/loader-utils';\nimport {Table, RecordBatchStreamReader} from 'apache-arrow';\nimport {loadWasm} from './load-wasm/load-wasm-node';\n\nexport type ParquetLoaderOptions = LoaderOptions & {\n parquet?: {\n type?: 'arrow-table';\n wasmUrl?: string;\n };\n};\n\nexport async function parseParquet(\n arrayBuffer: ArrayBuffer,\n options?: ParquetLoaderOptions\n): Promise<Table> {\n const wasmUrl = options?.parquet?.wasmUrl;\n const wasm = await loadWasm(wasmUrl);\n\n const arr = new Uint8Array(arrayBuffer);\n const arrowIPCUint8Arr = wasm.readParquet(arr);\n const arrowIPCBuffer = arrowIPCUint8Arr.buffer.slice(\n arrowIPCUint8Arr.byteOffset,\n arrowIPCUint8Arr.byteLength + arrowIPCUint8Arr.byteOffset\n );\n const arrowTable = tableFromIPC(arrowIPCBuffer);\n return arrowTable;\n}\n\n/**\n * Deserialize the IPC format into a {@link Table}. This function is a\n * convenience wrapper for {@link RecordBatchReader}. Opposite of {@link tableToIPC}.\n */\nfunction tableFromIPC(input: ArrayBuffer): Table {\n const reader = RecordBatchStreamReader.from(input);\n const recordBatches: RecordBatch[] = [];\n for (const recordBatch of reader) {\n recordBatches.push(recordBatch);\n }\n return new Table(recordBatches);\n}\n"],"file":"parse-parquet-wasm.js"}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports._typecheckParquetLoader = exports.ParquetLoader = void 0;
|
|
7
|
-
var VERSION = typeof "3.2.0
|
|
7
|
+
var VERSION = typeof "3.2.0" !== 'undefined' ? "3.2.0" : 'latest';
|
|
8
8
|
var DEFAULT_PARQUET_LOADER_OPTIONS = {
|
|
9
9
|
parquet: {
|
|
10
10
|
type: 'object-row-table',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/parquet-loader.ts"],"names":["VERSION","DEFAULT_PARQUET_LOADER_OPTIONS","parquet","type","url","undefined","ParquetLoader","name","id","module","version","worker","category","extensions","mimeTypes","binary","tests","options","_typecheckParquetLoader"],"mappings":";;;;;;AAIA,IAAMA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../../src/parquet-loader.ts"],"names":["VERSION","DEFAULT_PARQUET_LOADER_OPTIONS","parquet","type","url","undefined","ParquetLoader","name","id","module","version","worker","category","extensions","mimeTypes","binary","tests","options","_typecheckParquetLoader"],"mappings":";;;;;;AAIA,IAAMA,OAAO,GAAG,mBAAuB,WAAvB,aAAmD,QAAnE;AASA,IAAMC,8BAAoD,GAAG;AAC3DC,EAAAA,OAAO,EAAE;AACPC,IAAAA,IAAI,EAAE,kBADC;AAEPC,IAAAA,GAAG,EAAEC;AAFE;AADkD,CAA7D;AAQO,IAAMC,aAAa,GAAG;AAC3BC,EAAAA,IAAI,EAAE,gBADqB;AAE3BC,EAAAA,EAAE,EAAE,SAFuB;AAG3BC,EAAAA,MAAM,EAAE,SAHmB;AAI3BC,EAAAA,OAAO,EAAEV,OAJkB;AAK3BW,EAAAA,MAAM,EAAE,IALmB;AAM3BC,EAAAA,QAAQ,EAAE,OANiB;AAO3BC,EAAAA,UAAU,EAAE,CAAC,SAAD,CAPe;AAQ3BC,EAAAA,SAAS,EAAE,CAAC,0BAAD,CARgB;AAS3BC,EAAAA,MAAM,EAAE,IATmB;AAU3BC,EAAAA,KAAK,EAAE,CAAC,MAAD,EAAS,MAAT,CAVoB;AAW3BC,EAAAA,OAAO,EAAEhB;AAXkB,CAAtB;;AAcA,IAAMiB,uBAA+B,GAAGZ,aAAxC","sourcesContent":["import type {Loader, LoaderOptions} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type ParquetLoaderOptions = LoaderOptions & {\n parquet?: {\n type?: 'object-row-table';\n url?: string;\n };\n};\n\nconst DEFAULT_PARQUET_LOADER_OPTIONS: ParquetLoaderOptions = {\n parquet: {\n type: 'object-row-table',\n url: undefined\n }\n};\n\n/** ParquetJS table loader */\nexport const ParquetLoader = {\n name: 'Apache Parquet',\n id: 'parquet',\n module: 'parquet',\n version: VERSION,\n worker: true,\n category: 'table',\n extensions: ['parquet'],\n mimeTypes: ['application/octet-stream'],\n binary: true,\n tests: ['PAR1', 'PARE'],\n options: DEFAULT_PARQUET_LOADER_OPTIONS\n};\n\nexport const _typecheckParquetLoader: Loader = ParquetLoader;\n"],"file":"parquet-loader.js"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports._typecheckParquetLoader = exports.ParquetWasmLoader = void 0;
|
|
7
|
+
var VERSION = typeof "3.2.0" !== 'undefined' ? "3.2.0" : 'latest';
|
|
8
|
+
var DEFAULT_PARQUET_LOADER_OPTIONS = {
|
|
9
|
+
parquet: {
|
|
10
|
+
type: 'arrow-table',
|
|
11
|
+
wasmUrl: 'https://unpkg.com/parquet-wasm@0.3.1/esm2/arrow1_bg.wasm'
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
var ParquetWasmLoader = {
|
|
15
|
+
name: 'Apache Parquet',
|
|
16
|
+
id: 'parquet-wasm',
|
|
17
|
+
module: 'parquet',
|
|
18
|
+
version: VERSION,
|
|
19
|
+
worker: false,
|
|
20
|
+
category: 'table',
|
|
21
|
+
extensions: ['parquet'],
|
|
22
|
+
mimeTypes: ['application/octet-stream'],
|
|
23
|
+
binary: true,
|
|
24
|
+
tests: ['PAR1', 'PARE'],
|
|
25
|
+
options: DEFAULT_PARQUET_LOADER_OPTIONS
|
|
26
|
+
};
|
|
27
|
+
exports.ParquetWasmLoader = ParquetWasmLoader;
|
|
28
|
+
var _typecheckParquetLoader = ParquetWasmLoader;
|
|
29
|
+
exports._typecheckParquetLoader = _typecheckParquetLoader;
|
|
30
|
+
//# sourceMappingURL=parquet-wasm-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/parquet-wasm-loader.ts"],"names":["VERSION","DEFAULT_PARQUET_LOADER_OPTIONS","parquet","type","wasmUrl","ParquetWasmLoader","name","id","module","version","worker","category","extensions","mimeTypes","binary","tests","options","_typecheckParquetLoader"],"mappings":";;;;;;AAIA,IAAMA,OAAO,GAAG,mBAAuB,WAAvB,aAAmD,QAAnE;AASA,IAAMC,8BAAoD,GAAG;AAC3DC,EAAAA,OAAO,EAAE;AACPC,IAAAA,IAAI,EAAE,aADC;AAEPC,IAAAA,OAAO,EAAE;AAFF;AADkD,CAA7D;AAQO,IAAMC,iBAAiB,GAAG;AAC/BC,EAAAA,IAAI,EAAE,gBADyB;AAE/BC,EAAAA,EAAE,EAAE,cAF2B;AAG/BC,EAAAA,MAAM,EAAE,SAHuB;AAI/BC,EAAAA,OAAO,EAAET,OAJsB;AAK/BU,EAAAA,MAAM,EAAE,KALuB;AAM/BC,EAAAA,QAAQ,EAAE,OANqB;AAO/BC,EAAAA,UAAU,EAAE,CAAC,SAAD,CAPmB;AAQ/BC,EAAAA,SAAS,EAAE,CAAC,0BAAD,CARoB;AAS/BC,EAAAA,MAAM,EAAE,IATuB;AAU/BC,EAAAA,KAAK,EAAE,CAAC,MAAD,EAAS,MAAT,CAVwB;AAW/BC,EAAAA,OAAO,EAAEf;AAXsB,CAA1B;;AAcA,IAAMgB,uBAA+B,GAAGZ,iBAAxC","sourcesContent":["import type {Loader, LoaderOptions} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type ParquetLoaderOptions = LoaderOptions & {\n parquet?: {\n type?: 'arrow-table';\n wasmUrl?: string;\n };\n};\n\nconst DEFAULT_PARQUET_LOADER_OPTIONS: ParquetLoaderOptions = {\n parquet: {\n type: 'arrow-table',\n wasmUrl: 'https://unpkg.com/parquet-wasm@0.3.1/esm2/arrow1_bg.wasm'\n }\n};\n\n/** ParquetJS table loader */\nexport const ParquetWasmLoader = {\n name: 'Apache Parquet',\n id: 'parquet-wasm',\n module: 'parquet',\n version: VERSION,\n worker: false,\n category: 'table',\n extensions: ['parquet'],\n mimeTypes: ['application/octet-stream'],\n binary: true,\n tests: ['PAR1', 'PARE'],\n options: DEFAULT_PARQUET_LOADER_OPTIONS\n};\n\nexport const _typecheckParquetLoader: Loader = ParquetWasmLoader;\n"],"file":"parquet-wasm-loader.js"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ParquetWasmWriter = void 0;
|
|
7
|
+
|
|
8
|
+
var _encodeParquetWasm = require("./lib/wasm/encode-parquet-wasm");
|
|
9
|
+
|
|
10
|
+
var VERSION = typeof "3.2.0" !== 'undefined' ? "3.2.0" : 'latest';
|
|
11
|
+
var DEFAULT_PARQUET_WRITER_OPTIONS = {
|
|
12
|
+
parquet: {
|
|
13
|
+
wasmUrl: 'https://unpkg.com/parquet-wasm@0.3.1/esm2/arrow1_bg.wasm'
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
var ParquetWasmWriter = {
|
|
17
|
+
name: 'Apache Parquet',
|
|
18
|
+
id: 'parquet-wasm',
|
|
19
|
+
module: 'parquet',
|
|
20
|
+
version: VERSION,
|
|
21
|
+
extensions: ['parquet'],
|
|
22
|
+
mimeTypes: ['application/octet-stream'],
|
|
23
|
+
encode: _encodeParquetWasm.encode,
|
|
24
|
+
binary: true,
|
|
25
|
+
options: DEFAULT_PARQUET_WRITER_OPTIONS
|
|
26
|
+
};
|
|
27
|
+
exports.ParquetWasmWriter = ParquetWasmWriter;
|
|
28
|
+
//# sourceMappingURL=parquet-wasm-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/parquet-wasm-writer.ts"],"names":["VERSION","DEFAULT_PARQUET_WRITER_OPTIONS","parquet","wasmUrl","ParquetWasmWriter","name","id","module","version","extensions","mimeTypes","encode","binary","options"],"mappings":";;;;;;;AACA;;AAIA,IAAMA,OAAO,GAAG,mBAAuB,WAAvB,aAAmD,QAAnE;AAEA,IAAMC,8BAAoD,GAAG;AAC3DC,EAAAA,OAAO,EAAE;AACPC,IAAAA,OAAO,EAAE;AADF;AADkD,CAA7D;AAMO,IAAMC,iBAAyB,GAAG;AACvCC,EAAAA,IAAI,EAAE,gBADiC;AAEvCC,EAAAA,EAAE,EAAE,cAFmC;AAGvCC,EAAAA,MAAM,EAAE,SAH+B;AAIvCC,EAAAA,OAAO,EAAER,OAJ8B;AAKvCS,EAAAA,UAAU,EAAE,CAAC,SAAD,CAL2B;AAMvCC,EAAAA,SAAS,EAAE,CAAC,0BAAD,CAN4B;AAOvCC,EAAAA,MAAM,EAANA,yBAPuC;AAQvCC,EAAAA,MAAM,EAAE,IAR+B;AASvCC,EAAAA,OAAO,EAAEZ;AAT8B,CAAlC","sourcesContent":["import type {Writer} from '@loaders.gl/loader-utils';\nimport {encode, ParquetWriterOptions} from './lib/wasm/encode-parquet-wasm';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nconst DEFAULT_PARQUET_WRITER_OPTIONS: ParquetWriterOptions = {\n parquet: {\n wasmUrl: 'https://unpkg.com/parquet-wasm@0.3.1/esm2/arrow1_bg.wasm'\n }\n};\n\nexport const ParquetWasmWriter: Writer = {\n name: 'Apache Parquet',\n id: 'parquet-wasm',\n module: 'parquet',\n version: VERSION,\n extensions: ['parquet'],\n mimeTypes: ['application/octet-stream'],\n encode,\n binary: true,\n options: DEFAULT_PARQUET_WRITER_OPTIONS\n};\n"],"file":"parquet-wasm-writer.js"}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ParquetWriter = void 0;
|
|
7
|
-
var VERSION = typeof "3.2.0
|
|
7
|
+
var VERSION = typeof "3.2.0" !== 'undefined' ? "3.2.0" : 'latest';
|
|
8
8
|
var DEFAULT_PARQUET_LOADER_OPTIONS = {};
|
|
9
9
|
var ParquetWriter = {
|
|
10
10
|
name: 'Apache Parquet',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/parquet-writer.ts"],"names":["VERSION","DEFAULT_PARQUET_LOADER_OPTIONS","ParquetWriter","name","id","module","version","extensions","mimeTypes","encodeSync","binary","options","data","ArrayBuffer"],"mappings":";;;;;;AAIA,IAAMA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../../src/parquet-writer.ts"],"names":["VERSION","DEFAULT_PARQUET_LOADER_OPTIONS","ParquetWriter","name","id","module","version","extensions","mimeTypes","encodeSync","binary","options","data","ArrayBuffer"],"mappings":";;;;;;AAIA,IAAMA,OAAO,GAAG,mBAAuB,WAAvB,aAAmD,QAAnE;AAIA,IAAMC,8BAA8B,GAAG,EAAvC;AAEO,IAAMC,aAAqB,GAAG;AACnCC,EAAAA,IAAI,EAAE,gBAD6B;AAEnCC,EAAAA,EAAE,EAAE,SAF+B;AAGnCC,EAAAA,MAAM,EAAE,SAH2B;AAInCC,EAAAA,OAAO,EAAEN,OAJ0B;AAKnCO,EAAAA,UAAU,EAAE,CAAC,SAAD,CALuB;AAMnCC,EAAAA,SAAS,EAAE,CAAC,0BAAD,CANwB;AAOnCC,EAAAA,UAAU,EAAVA,UAPmC;AAQnCC,EAAAA,MAAM,EAAE,IAR2B;AASnCC,EAAAA,OAAO,EAAEV;AAT0B,CAA9B;;;AAYP,SAASQ,UAAT,CAAoBG,IAApB,EAA0BD,OAA1B,EAA0D;AACxD,SAAO,IAAIE,WAAJ,CAAgB,CAAhB,CAAP;AACD","sourcesContent":["import type {Writer} from '@loaders.gl/loader-utils';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type ParquetWriterOptions = {};\n\nconst DEFAULT_PARQUET_LOADER_OPTIONS = {};\n\nexport const ParquetWriter: Writer = {\n name: 'Apache Parquet',\n id: 'parquet',\n module: 'parquet',\n version: VERSION,\n extensions: ['parquet'],\n mimeTypes: ['application/octet-stream'],\n encodeSync,\n binary: true,\n options: DEFAULT_PARQUET_LOADER_OPTIONS\n};\n\nfunction encodeSync(data, options?: ParquetWriterOptions) {\n return new ArrayBuffer(0);\n}\n"],"file":"parquet-writer.js"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
|
+
import { ParquetWasmLoader as ParquetWasmWorkerLoader } from './parquet-wasm-loader';
|
|
1
2
|
import { ParquetLoader as ParquetWorkerLoader } from './parquet-loader';
|
|
2
3
|
import { parseParquet, parseParquetFileInBatches } from './lib/parse-parquet';
|
|
3
|
-
|
|
4
|
+
import { parseParquet as parseParquetWasm } from './lib/wasm/parse-parquet-wasm';
|
|
5
|
+
export { ParquetWorkerLoader, ParquetWasmWorkerLoader };
|
|
4
6
|
export const ParquetLoader = { ...ParquetWorkerLoader,
|
|
5
7
|
parse: parseParquet,
|
|
6
8
|
parseFileInBatches: parseParquetFileInBatches
|
|
7
9
|
};
|
|
10
|
+
export const ParquetWasmLoader = { ...ParquetWasmWorkerLoader,
|
|
11
|
+
parse: parseParquetWasm
|
|
12
|
+
};
|
|
8
13
|
export { ParquetWriter as _ParquetWriter } from './parquet-writer';
|
|
14
|
+
export { ParquetWasmWriter } from './parquet-wasm-writer';
|
|
9
15
|
export { preloadCompressions } from './parquetjs/compression';
|
|
10
16
|
export { ParquetSchema } from './parquetjs/schema/schema';
|
|
11
17
|
export { ParquetReader } from './parquetjs/parser/parquet-reader';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":["ParquetLoader","ParquetWorkerLoader","parseParquet","parseParquetFileInBatches","parse","parseFileInBatches","ParquetWriter","_ParquetWriter","preloadCompressions","ParquetSchema","ParquetReader","ParquetEnvelopeReader","convertParquetToArrowSchema","_typecheckParquetLoader"],"mappings":"AAIA,SAAQA,aAAa,IAAIC,mBAAzB,QAAmD,kBAAnD;AACA,SAAQC,YAAR,EAAsBC,yBAAtB,QAAsD,qBAAtD;AAEA,
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":["ParquetWasmLoader","ParquetWasmWorkerLoader","ParquetLoader","ParquetWorkerLoader","parseParquet","parseParquetFileInBatches","parseParquetWasm","parse","parseFileInBatches","ParquetWriter","_ParquetWriter","ParquetWasmWriter","preloadCompressions","ParquetSchema","ParquetReader","ParquetEnvelopeReader","convertParquetToArrowSchema","_typecheckParquetLoader"],"mappings":"AAIA,SAAQA,iBAAiB,IAAIC,uBAA7B,QAA2D,uBAA3D;AACA,SAAQC,aAAa,IAAIC,mBAAzB,QAAmD,kBAAnD;AACA,SAAQC,YAAR,EAAsBC,yBAAtB,QAAsD,qBAAtD;AACA,SAAQD,YAAY,IAAIE,gBAAxB,QAA+C,+BAA/C;AAEA,SAAQH,mBAAR,EAA6BF,uBAA7B;AAGA,OAAO,MAAMC,aAAa,GAAG,EAC3B,GAAGC,mBADwB;AAE3BI,EAAAA,KAAK,EAAEH,YAFoB;AAG3BI,EAAAA,kBAAkB,EAAEH;AAHO,CAAtB;AAMP,OAAO,MAAML,iBAAiB,GAAG,EAC/B,GAAGC,uBAD4B;AAE/BM,EAAAA,KAAK,EAAED;AAFwB,CAA1B;AAOP,SAAQG,aAAa,IAAIC,cAAzB,QAA8C,kBAA9C;AACA,SAAQC,iBAAR,QAAgC,uBAAhC;AAIA,SAAQC,mBAAR,QAAkC,yBAAlC;AAEA,SAAQC,aAAR,QAA4B,2BAA5B;AACA,SAAQC,aAAR,QAA4B,mCAA5B;AACA,SAAQC,qBAAR,QAAoC,4CAApC;AAEA,SAAQC,2BAAR,QAA0C,sBAA1C;AAGA,OAAO,MAAMC,uBAAyC,GAAGf,aAAlD","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\n\n// ParquetLoader\n\nimport {ParquetWasmLoader as ParquetWasmWorkerLoader} from './parquet-wasm-loader';\nimport {ParquetLoader as ParquetWorkerLoader} from './parquet-loader';\nimport {parseParquet, parseParquetFileInBatches} from './lib/parse-parquet';\nimport {parseParquet as parseParquetWasm} from './lib/wasm/parse-parquet-wasm';\n\nexport {ParquetWorkerLoader, ParquetWasmWorkerLoader};\n\n/** ParquetJS table loader */\nexport const ParquetLoader = {\n ...ParquetWorkerLoader,\n parse: parseParquet,\n parseFileInBatches: parseParquetFileInBatches\n};\n\nexport const ParquetWasmLoader = {\n ...ParquetWasmWorkerLoader,\n parse: parseParquetWasm\n};\n\n// ParquetWriter\n\nexport {ParquetWriter as _ParquetWriter} from './parquet-writer';\nexport {ParquetWasmWriter} from './parquet-wasm-writer';\n\n// EXPERIMENTAL - expose the internal parquetjs API\n\nexport {preloadCompressions} from './parquetjs/compression';\n\nexport {ParquetSchema} from './parquetjs/schema/schema';\nexport {ParquetReader} from './parquetjs/parser/parquet-reader';\nexport {ParquetEnvelopeReader} from './parquetjs/parser/parquet-envelope-reader';\n// export {ParquetWriter, ParquetEnvelopeWriter, ParquetTransformer} from './parquetjs/encoder/writer';\nexport {convertParquetToArrowSchema} from './lib/convert-schema';\n\n// TESTS\nexport const _typecheckParquetLoader: LoaderWithParser = ParquetLoader;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RecordBatchStreamWriter } from 'apache-arrow';
|
|
2
|
+
import { loadWasm } from './load-wasm';
|
|
3
|
+
export async function encode(table, options) {
|
|
4
|
+
var _options$parquet;
|
|
5
|
+
|
|
6
|
+
const wasmUrl = options === null || options === void 0 ? void 0 : (_options$parquet = options.parquet) === null || _options$parquet === void 0 ? void 0 : _options$parquet.wasmUrl;
|
|
7
|
+
const wasm = await loadWasm(wasmUrl);
|
|
8
|
+
const arrowIPCBytes = tableToIPC(table);
|
|
9
|
+
const writerProperties = new wasm.WriterPropertiesBuilder().build();
|
|
10
|
+
const parquetBytes = wasm.writeParquet(arrowIPCBytes, writerProperties);
|
|
11
|
+
return parquetBytes.buffer.slice(parquetBytes.byteOffset, parquetBytes.byteLength + parquetBytes.byteOffset);
|
|
12
|
+
}
|
|
13
|
+
export function tableToIPC(table) {
|
|
14
|
+
return RecordBatchStreamWriter.writeAll(table).toUint8Array(true);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=encode-parquet-wasm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/wasm/encode-parquet-wasm.ts"],"names":["RecordBatchStreamWriter","loadWasm","encode","table","options","wasmUrl","parquet","wasm","arrowIPCBytes","tableToIPC","writerProperties","WriterPropertiesBuilder","build","parquetBytes","writeParquet","buffer","slice","byteOffset","byteLength","writeAll","toUint8Array"],"mappings":"AAGA,SAAQA,uBAAR,QAAsC,cAAtC;AACA,SAAQC,QAAR,QAAuB,aAAvB;AAWA,OAAO,eAAeC,MAAf,CAAsBC,KAAtB,EAAoCC,OAApC,EAA0F;AAAA;;AAC/F,QAAMC,OAAO,GAAGD,OAAH,aAAGA,OAAH,2CAAGA,OAAO,CAAEE,OAAZ,qDAAG,iBAAkBD,OAAlC;AACA,QAAME,IAAI,GAAG,MAAMN,QAAQ,CAACI,OAAD,CAA3B;AAEA,QAAMG,aAAa,GAAGC,UAAU,CAACN,KAAD,CAAhC;AAEA,QAAMO,gBAAgB,GAAG,IAAIH,IAAI,CAACI,uBAAT,GAAmCC,KAAnC,EAAzB;AACA,QAAMC,YAAY,GAAGN,IAAI,CAACO,YAAL,CAAkBN,aAAlB,EAAiCE,gBAAjC,CAArB;AACA,SAAOG,YAAY,CAACE,MAAb,CAAoBC,KAApB,CACLH,YAAY,CAACI,UADR,EAELJ,YAAY,CAACK,UAAb,GAA0BL,YAAY,CAACI,UAFlC,CAAP;AAID;AAUD,OAAO,SAASR,UAAT,CAAoBN,KAApB,EAA8C;AACnD,SAAOH,uBAAuB,CAACmB,QAAxB,CAAiChB,KAAjC,EAAwCiB,YAAxC,CAAqD,IAArD,CAAP;AACD","sourcesContent":["import type {Table} from 'apache-arrow';\nimport type {WriterOptions} from '@loaders.gl/loader-utils';\n\nimport {RecordBatchStreamWriter} from 'apache-arrow';\nimport {loadWasm} from './load-wasm';\n\nexport type ParquetWriterOptions = WriterOptions & {\n parquet?: {\n wasmUrl?: string;\n };\n};\n\n/**\n * Encode Arrow Table to Parquet buffer\n */\nexport async function encode(table: Table, options?: ParquetWriterOptions): Promise<ArrayBuffer> {\n const wasmUrl = options?.parquet?.wasmUrl;\n const wasm = await loadWasm(wasmUrl);\n\n const arrowIPCBytes = tableToIPC(table);\n // TODO: provide options for how to write table.\n const writerProperties = new wasm.WriterPropertiesBuilder().build();\n const parquetBytes = wasm.writeParquet(arrowIPCBytes, writerProperties);\n return parquetBytes.buffer.slice(\n parquetBytes.byteOffset,\n parquetBytes.byteLength + parquetBytes.byteOffset\n );\n}\n\n/**\n * Serialize a {@link Table} to the IPC format. This function is a convenience\n * wrapper for {@link RecordBatchStreamWriter} and {@link RecordBatchFileWriter}.\n * Opposite of {@link tableFromIPC}.\n *\n * @param table The Table to serialize.\n * @param type Whether to serialize the Table as a file or a stream.\n */\nexport function tableToIPC(table: Table): Uint8Array {\n return RecordBatchStreamWriter.writeAll(table).toUint8Array(true);\n}\n"],"file":"encode-parquet-wasm.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/wasm/load-wasm/index.ts"],"names":["loadWasm"],"mappings":"AAAA,SAAQA,QAAR,QAAuB,kBAAvB","sourcesContent":["export {loadWasm} from './load-wasm-node';\n"],"file":"index.js"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as wasmEsm from 'parquet-wasm/esm2/arrow1';
|
|
2
|
+
let cached = null;
|
|
3
|
+
export async function loadWasm(wasmUrl) {
|
|
4
|
+
if (cached !== null) {
|
|
5
|
+
return cached;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
await wasmEsm.default(wasmUrl);
|
|
9
|
+
cached = wasmEsm;
|
|
10
|
+
return wasmEsm;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=load-wasm-browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/wasm/load-wasm/load-wasm-browser.ts"],"names":["wasmEsm","cached","loadWasm","wasmUrl","default"],"mappings":"AAAA,OAAO,KAAKA,OAAZ,MAAyB,0BAAzB;AAEA,IAAIC,MAA6B,GAAG,IAApC;AAEA,OAAO,eAAeC,QAAf,CAAwBC,OAAxB,EAA0C;AAC/C,MAAIF,MAAM,KAAK,IAAf,EAAqB;AACnB,WAAOA,MAAP;AACD;;AAGD,QAAMD,OAAO,CAACI,OAAR,CAAgBD,OAAhB,CAAN;AACAF,EAAAA,MAAM,GAAGD,OAAT;AAEA,SAAOA,OAAP;AACD","sourcesContent":["import * as wasmEsm from 'parquet-wasm/esm2/arrow1';\n\nlet cached: typeof wasmEsm | null = null;\n\nexport async function loadWasm(wasmUrl?: string) {\n if (cached !== null) {\n return cached;\n }\n\n // For ESM bundles, need to await the default export, which loads the WASM\n await wasmEsm.default(wasmUrl);\n cached = wasmEsm;\n\n return wasmEsm;\n}\n"],"file":"load-wasm-browser.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/wasm/load-wasm/load-wasm-node.ts"],"names":["wasmNode","loadWasm","wasmUrl"],"mappings":"AAAA,OAAO,KAAKA,QAAZ,MAA0B,0BAA1B;AAEA,OAAO,eAAeC,QAAf,CAAwBC,OAAxB,EAA0C;AAC/C,SAAOF,QAAP;AACD","sourcesContent":["import * as wasmNode from 'parquet-wasm/node/arrow1';\n\nexport async function loadWasm(wasmUrl?: string) {\n return wasmNode;\n}\n"],"file":"load-wasm-node.js"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Table, RecordBatchStreamReader } from 'apache-arrow';
|
|
2
|
+
import { loadWasm } from './load-wasm/load-wasm-node';
|
|
3
|
+
export async function parseParquet(arrayBuffer, options) {
|
|
4
|
+
var _options$parquet;
|
|
5
|
+
|
|
6
|
+
const wasmUrl = options === null || options === void 0 ? void 0 : (_options$parquet = options.parquet) === null || _options$parquet === void 0 ? void 0 : _options$parquet.wasmUrl;
|
|
7
|
+
const wasm = await loadWasm(wasmUrl);
|
|
8
|
+
const arr = new Uint8Array(arrayBuffer);
|
|
9
|
+
const arrowIPCUint8Arr = wasm.readParquet(arr);
|
|
10
|
+
const arrowIPCBuffer = arrowIPCUint8Arr.buffer.slice(arrowIPCUint8Arr.byteOffset, arrowIPCUint8Arr.byteLength + arrowIPCUint8Arr.byteOffset);
|
|
11
|
+
const arrowTable = tableFromIPC(arrowIPCBuffer);
|
|
12
|
+
return arrowTable;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function tableFromIPC(input) {
|
|
16
|
+
const reader = RecordBatchStreamReader.from(input);
|
|
17
|
+
const recordBatches = [];
|
|
18
|
+
|
|
19
|
+
for (const recordBatch of reader) {
|
|
20
|
+
recordBatches.push(recordBatch);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return new Table(recordBatches);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=parse-parquet-wasm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/wasm/parse-parquet-wasm.ts"],"names":["Table","RecordBatchStreamReader","loadWasm","parseParquet","arrayBuffer","options","wasmUrl","parquet","wasm","arr","Uint8Array","arrowIPCUint8Arr","readParquet","arrowIPCBuffer","buffer","slice","byteOffset","byteLength","arrowTable","tableFromIPC","input","reader","from","recordBatches","recordBatch","push"],"mappings":"AAGA,SAAQA,KAAR,EAAeC,uBAAf,QAA6C,cAA7C;AACA,SAAQC,QAAR,QAAuB,4BAAvB;AASA,OAAO,eAAeC,YAAf,CACLC,WADK,EAELC,OAFK,EAGW;AAAA;;AAChB,QAAMC,OAAO,GAAGD,OAAH,aAAGA,OAAH,2CAAGA,OAAO,CAAEE,OAAZ,qDAAG,iBAAkBD,OAAlC;AACA,QAAME,IAAI,GAAG,MAAMN,QAAQ,CAACI,OAAD,CAA3B;AAEA,QAAMG,GAAG,GAAG,IAAIC,UAAJ,CAAeN,WAAf,CAAZ;AACA,QAAMO,gBAAgB,GAAGH,IAAI,CAACI,WAAL,CAAiBH,GAAjB,CAAzB;AACA,QAAMI,cAAc,GAAGF,gBAAgB,CAACG,MAAjB,CAAwBC,KAAxB,CACrBJ,gBAAgB,CAACK,UADI,EAErBL,gBAAgB,CAACM,UAAjB,GAA8BN,gBAAgB,CAACK,UAF1B,CAAvB;AAIA,QAAME,UAAU,GAAGC,YAAY,CAACN,cAAD,CAA/B;AACA,SAAOK,UAAP;AACD;;AAMD,SAASC,YAAT,CAAsBC,KAAtB,EAAiD;AAC/C,QAAMC,MAAM,GAAGpB,uBAAuB,CAACqB,IAAxB,CAA6BF,KAA7B,CAAf;AACA,QAAMG,aAA4B,GAAG,EAArC;;AACA,OAAK,MAAMC,WAAX,IAA0BH,MAA1B,EAAkC;AAChCE,IAAAA,aAAa,CAACE,IAAd,CAAmBD,WAAnB;AACD;;AACD,SAAO,IAAIxB,KAAJ,CAAUuB,aAAV,CAAP;AACD","sourcesContent":["// eslint-disable\nimport type {RecordBatch} from 'apache-arrow';\nimport type {LoaderOptions} from '@loaders.gl/loader-utils';\nimport {Table, RecordBatchStreamReader} from 'apache-arrow';\nimport {loadWasm} from './load-wasm/load-wasm-node';\n\nexport type ParquetLoaderOptions = LoaderOptions & {\n parquet?: {\n type?: 'arrow-table';\n wasmUrl?: string;\n };\n};\n\nexport async function parseParquet(\n arrayBuffer: ArrayBuffer,\n options?: ParquetLoaderOptions\n): Promise<Table> {\n const wasmUrl = options?.parquet?.wasmUrl;\n const wasm = await loadWasm(wasmUrl);\n\n const arr = new Uint8Array(arrayBuffer);\n const arrowIPCUint8Arr = wasm.readParquet(arr);\n const arrowIPCBuffer = arrowIPCUint8Arr.buffer.slice(\n arrowIPCUint8Arr.byteOffset,\n arrowIPCUint8Arr.byteLength + arrowIPCUint8Arr.byteOffset\n );\n const arrowTable = tableFromIPC(arrowIPCBuffer);\n return arrowTable;\n}\n\n/**\n * Deserialize the IPC format into a {@link Table}. This function is a\n * convenience wrapper for {@link RecordBatchReader}. Opposite of {@link tableToIPC}.\n */\nfunction tableFromIPC(input: ArrayBuffer): Table {\n const reader = RecordBatchStreamReader.from(input);\n const recordBatches: RecordBatch[] = [];\n for (const recordBatch of reader) {\n recordBatches.push(recordBatch);\n }\n return new Table(recordBatches);\n}\n"],"file":"parse-parquet-wasm.js"}
|