{"version":3,"sources":["arrow2csv.ts"],"names":[],"mappings":"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","file":"arrow2csv.js","sourcesContent":["#! /usr/bin/env node\n\n// Licensed to the Apache Software Foundation (ASF) under one\n// or more contributor license agreements. See the NOTICE file\n// distributed with this work for additional information\n// regarding copyright ownership. The ASF licenses this file\n// to you under the Apache License, Version 2.0 (the\n// \"License\"); you may not use this file except in compliance\n// with the License. You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing,\n// software distributed under the License is distributed on an\n// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n// KIND, either express or implied. See the License for the\n// specific language governing permissions and limitations\n// under the License.\n\n/* tslint:disable */\n\nimport * as fs from 'fs';\nimport * as stream from 'stream';\nimport { valueToString } from '../util/pretty';\nimport { Schema, RecordBatch, RecordBatchReader, AsyncByteQueue } from '../Arrow.node';\n\nconst padLeft = require('pad-left');\nconst bignumJSONParse = require('json-bignum').parse;\nconst argv = require(`command-line-args`)(cliOpts(), { partial: true });\nconst files = argv.help ? [] : [...(argv.file || []), ...(argv._unknown || [])].filter(Boolean);\n\nconst state = { ...argv, closed: false, maxColWidths: [10] };\n\ntype ToStringState = {\n hr: string;\n sep: string;\n schema: any;\n closed: boolean;\n metadata: boolean;\n maxColWidths: number[];\n};\n\n(async () => {\n\n const sources = argv.help ? [] : [\n ...files.map((file) => () => fs.createReadStream(file)),\n ...(process.stdin.isTTY ? [] : [() => process.stdin])\n ].filter(Boolean) as (() => NodeJS.ReadableStream)[];\n\n let reader: RecordBatchReader | null;\n let hasReaders = false;\n\n for (const source of sources) {\n if (state.closed) { break; }\n for await (reader of recordBatchReaders(source)) {\n hasReaders = true;\n const transformToString = batchesToString(state, reader.schema);\n await pipeTo(\n reader.pipe(transformToString),\n process.stdout, { end: false }\n ).catch(() => state.closed = true); // Handle EPIPE errors\n }\n if (state.closed) { break; }\n }\n\n return hasReaders ? 0 : print_usage();\n})()\n.then((x) => +x || 0, (err) => {\n if (err) {\n console.error(`${err && err.stack || err}`);\n }\n return process.exitCode || 1;\n}).then((code) => process.exit(code));\n\nfunction pipeTo(source: NodeJS.ReadableStream, sink: NodeJS.WritableStream, opts?: { end: boolean }) {\n return new Promise((resolve, reject) => {\n\n source.on('end', onEnd).pipe(sink, opts).on('error', onErr);\n\n function onEnd() { done(undefined, resolve); }\n function onErr(err:any) { done(err, reject); }\n function done(e: any, cb: (e?: any) => void) {\n source.removeListener('end', onEnd);\n sink.removeListener('error', onErr);\n cb(e);\n }\n });\n}\n\nasync function *recordBatchReaders(createSourceStream: () => NodeJS.ReadableStream) {\n\n let json = new AsyncByteQueue();\n let stream = new AsyncByteQueue();\n let source = createSourceStream();\n let reader: RecordBatchReader | null = null;\n let readers: AsyncIterable | null = null;\n // tee the input source, just in case it's JSON\n source.on('end', () => [stream, json].forEach((y) => y.close()))\n .on('data', (x) => [stream, json].forEach((y) => y.write(x)))\n .on('error', (e) => [stream, json].forEach((y) => y.abort(e)));\n\n try {\n for await (reader of RecordBatchReader.readAll(stream)) {\n reader && (yield reader);\n }\n if (reader) return;\n } catch (e) { readers = null; }\n\n if (!readers) {\n await json.closed;\n if (source instanceof fs.ReadStream) { source.close(); }\n // If the data in the `json` ByteQueue parses to JSON, then assume it's Arrow JSON from a file or stdin\n try {\n for await (reader of RecordBatchReader.readAll(bignumJSONParse(await json.toString()))) {\n reader && (yield reader);\n }\n } catch (e) { readers = null; }\n }\n}\n\nfunction batchesToString(state: ToStringState, schema: Schema) {\n\n let rowId = 0;\n let batchId = -1;\n let maxColWidths = [10];\n const { hr, sep } = state;\n\n const header = ['row_id', ...schema.fields.map((f) => `${f}`)].map(valueToString);\n\n state.maxColWidths = header.map((x, i) => Math.max(maxColWidths[i] || 0, x.length));\n\n return new stream.Transform({\n encoding: 'utf8',\n writableObjectMode: true,\n readableObjectMode: false,\n final(cb: (error?: Error | null) => void) {\n // if there were no batches, then print the Schema, and metadata\n if (batchId === -1) {\n hr && this.push(`${horizontalRule(state.maxColWidths, hr, sep)}\\n\\n`);\n this.push(`${formatRow(header, maxColWidths, sep)}\\n`);\n if (state.metadata && schema.metadata.size > 0) {\n this.push(`metadata:\\n${formatMetadata(schema.metadata)}\\n`);\n }\n }\n hr && this.push(`${horizontalRule(state.maxColWidths, hr, sep)}\\n\\n`);\n cb();\n },\n transform(batch: RecordBatch, _enc: string, cb: (error?: Error, data?: any) => void) {\n \n batch = !(state.schema && state.schema.length) ? batch : batch.select(...state.schema);\n \n if (state.closed) { return cb(undefined, null); }\n \n // Pass one to convert to strings and count max column widths\n state.maxColWidths = measureColumnWidths(rowId, batch, header.map((x, i) => Math.max(maxColWidths[i] || 0, x.length)));\n \n // If this is the first batch in a stream, print a top horizontal rule, schema metadata, and \n if (++batchId === 0) {\n hr && this.push(`${horizontalRule(state.maxColWidths, hr, sep)}\\n`);\n if (state.metadata && batch.schema.metadata.size > 0) {\n this.push(`metadata:\\n${formatMetadata(batch.schema.metadata)}\\n`);\n hr && this.push(`${horizontalRule(state.maxColWidths, hr, sep)}\\n`);\n }\n if (batch.length <= 0 || batch.numCols <= 0) {\n this.push(`${formatRow(header, maxColWidths = state.maxColWidths, sep)}\\n`);\n }\n }\n \n if (batch.length > 0 && batch.numCols > 0) {\n // If any of the column widths changed, print the header again\n if (rowId % 350 !== 0 && JSON.stringify(state.maxColWidths) !== JSON.stringify(maxColWidths)) {\n this.push(`${formatRow(header, state.maxColWidths, sep)}\\n`);\n }\n maxColWidths = state.maxColWidths;\n for (const row of batch) {\n if (state.closed) { break; } else if (!row) { continue; }\n if (rowId++ % 350 === 0) {\n this.push(`${formatRow(header, maxColWidths, sep)}\\n`);\n }\n this.push(`${formatRow([rowId, ...row.toArray()].map(valueToString), maxColWidths, sep)}\\n`);\n }\n }\n cb();\n }\n });\n}\n\nfunction horizontalRule(maxColWidths: number[], hr = '', sep = ' | ') {\n return ` ${padLeft('', maxColWidths.reduce((x, y) => x + y, -2 + maxColWidths.length * sep.length), hr)}`;\n}\n\nfunction formatRow(row: string[] = [], maxColWidths: number[] = [], sep = ' | ') {\n return `${row.map((x, j) => padLeft(x, maxColWidths[j])).join(sep)}`;\n}\n\nfunction formatMetadata(metadata: Map) {\n\n return [...metadata].map(([key, val]) =>\n ` ${key}: ${formatMetadataValue(val)}`\n ).join(', \\n');\n\n function formatMetadataValue(value: string = '') {\n let parsed = value;\n try {\n parsed = JSON.stringify(JSON.parse(value), null, 2);\n } catch (e) { parsed = value; }\n return valueToString(parsed).split('\\n').join('\\n ');\n }\n}\n\nfunction measureColumnWidths(rowId: number, batch: RecordBatch, maxColWidths: number[] = []) {\n let val: any, j = 0;\n for (const row of batch) {\n if (!row) { continue; }\n maxColWidths[j = 0] = Math.max(maxColWidths[0] || 0, (`${rowId++}`).length);\n for (val of row) {\n if (val && typedArrayElementWidths.has(val.constructor) && (typeof val[Symbol.toPrimitive] !== 'function')) {\n // If we're printing a column of TypedArrays, ensure the column is wide enough to accommodate\n // the widest possible element for a given byte size, since JS omits leading zeroes. For example:\n // 1 | [1137743649,2170567488,244696391,2122556476]\n // 2 | null\n // 3 | [637174007,2142281880,961736230,2912449282]\n // 4 | [1035112265,21832886,412842672,2207710517]\n // 5 | null\n // 6 | null\n // 7 | [2755142991,4192423256,2994359,467878370]\n const elementWidth = typedArrayElementWidths.get(val.constructor)!;\n \n maxColWidths[j + 1] = Math.max(maxColWidths[j + 1] || 0,\n 2 + // brackets on each end\n (val.length - 1) + // commas between elements\n (val.length * elementWidth) // width of stringified 2^N-1\n );\n } else {\n maxColWidths[j + 1] = Math.max(maxColWidths[j + 1] || 0, valueToString(val).length);\n }\n ++j;\n }\n }\n return maxColWidths;\n}\n\n// Measure the stringified representation of 2^N-1 for each TypedArray variant\nconst typedArrayElementWidths = (() => {\n const maxElementWidth = (ArrayType: any) => {\n const octets = Array.from({ length: ArrayType.BYTES_PER_ELEMENT - 1 }, _ => 255);\n return `${new ArrayType(new Uint8Array([...octets, 254]).buffer)[0]}`.length;\n };\n return new Map([\n [Int8Array, maxElementWidth(Int8Array)],\n [Int16Array, maxElementWidth(Int16Array)],\n [Int32Array, maxElementWidth(Int32Array)],\n [Uint8Array, maxElementWidth(Uint8Array)],\n [Uint16Array, maxElementWidth(Uint16Array)],\n [Uint32Array, maxElementWidth(Uint32Array)],\n [Float32Array, maxElementWidth(Float32Array)],\n [Float64Array, maxElementWidth(Float64Array)],\n [Uint8ClampedArray, maxElementWidth(Uint8ClampedArray)]\n ])\n})();\n\nfunction cliOpts() {\n return [\n {\n type: String,\n name: 'schema', alias: 's',\n optional: true, multiple: true,\n typeLabel: '{underline columns}',\n description: 'A space-delimited list of column names'\n },\n {\n type: String,\n name: 'file', alias: 'f',\n optional: true, multiple: true,\n description: 'The Arrow file to read'\n },\n {\n type: String,\n name: 'sep', optional: true, default: ' | ',\n description: 'The column separator character (default: \" | \")'\n },\n {\n type: String,\n name: 'hr', optional: true, default: '',\n description: 'The horizontal border character (default: \"\")'\n },\n {\n type: Boolean,\n name: 'metadata', alias: 'm',\n optional: true, default: false,\n description: 'Flag to print Schema metadata (default: false)'\n },\n {\n type: Boolean,\n name: 'help', optional: true, default: false,\n description: 'Print this usage guide.'\n }\n ]; \n}\n\nfunction print_usage() {\n console.log(require('command-line-usage')([\n {\n header: 'arrow2csv',\n content: 'Print a CSV from an Arrow file'\n },\n {\n header: 'Synopsis',\n content: [\n '$ arrow2csv {underline file.arrow} [{bold --schema} column_name ...]',\n '$ arrow2csv [{bold --schema} column_name ...] [{bold --file} {underline file.arrow}]',\n '$ arrow2csv {bold -s} column_1 {bold -s} column_2 [{bold -f} {underline file.arrow}]',\n '$ arrow2csv [{bold --help}]'\n ]\n },\n {\n header: 'Options',\n optionList: cliOpts()\n },\n {\n header: 'Example',\n content: [\n '$ arrow2csv --schema foo baz --sep \" , \" -f simple.arrow',\n '> \"row_id\", \"foo: Int32\", \"baz: Utf8\"',\n '> 0, 1, \"aa\"',\n '> 1, null, null',\n '> 2, 3, null',\n '> 3, 4, \"bbb\"',\n '> 4, 5, \"cccc\"',\n ]\n }\n ]));\n return 1;\n}\n"]}n"]}