@loaders.gl/schema 3.1.0-alpha.1 → 3.1.0-alpha.5
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/bundle.d.ts +1 -0
- package/dist/category/common.d.ts +18 -0
- package/dist/category/gis.d.ts +50 -0
- package/dist/category/mesh/convert-mesh.d.ts +14 -0
- package/dist/category/mesh/deduce-mesh-schema.d.ts +23 -0
- package/dist/category/mesh/mesh-to-arrow-table.d.ts +10 -0
- package/dist/category/mesh/mesh-types.d.ts +49 -0
- package/dist/category/mesh/mesh-utils.d.ts +22 -0
- package/dist/category/table/deduce-table-schema.d.ts +8 -0
- package/dist/category/table/table-types.d.ts +75 -0
- package/dist/dist.min.js +1 -1
- package/dist/dist.min.js.map +1 -1
- package/dist/es5/bundle.js +7 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/category/common.js +2 -0
- package/dist/{category → es5/category}/common.js.map +0 -0
- package/dist/es5/category/gis.js +2 -0
- package/dist/{category → es5/category}/gis.js.map +0 -0
- package/dist/es5/category/mesh/convert-mesh.js +43 -0
- package/dist/{category → es5/category}/mesh/convert-mesh.js.map +1 -1
- package/dist/es5/category/mesh/deduce-mesh-schema.js +54 -0
- package/dist/es5/category/mesh/deduce-mesh-schema.js.map +1 -0
- package/dist/es5/category/mesh/mesh-to-arrow-table.js +41 -0
- package/dist/es5/category/mesh/mesh-to-arrow-table.js.map +1 -0
- package/dist/es5/category/mesh/mesh-types.js +2 -0
- package/dist/{category → es5/category}/mesh/mesh-types.js.map +0 -0
- package/dist/es5/category/mesh/mesh-utils.js +47 -0
- package/dist/es5/category/mesh/mesh-utils.js.map +1 -0
- package/dist/es5/category/table/deduce-table-schema.js +58 -0
- package/dist/es5/category/table/deduce-table-schema.js.map +1 -0
- package/dist/es5/category/table/table-types.js +2 -0
- package/dist/{category → es5/category}/table/table-types.js.map +0 -0
- package/dist/es5/index.js +344 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/lib/arrow/arrow-like-type-utils.js +40 -0
- package/dist/es5/lib/arrow/arrow-like-type-utils.js.map +1 -0
- package/dist/es5/lib/arrow/arrow-type-utils.js +72 -0
- package/dist/es5/lib/arrow/arrow-type-utils.js.map +1 -0
- package/dist/es5/lib/arrow/get-type-info.js +33 -0
- package/dist/es5/lib/arrow/get-type-info.js.map +1 -0
- package/dist/es5/lib/batches/base-table-batch-aggregator.js +81 -0
- package/dist/es5/lib/batches/base-table-batch-aggregator.js.map +1 -0
- package/dist/es5/lib/batches/columnar-table-batch-aggregator.js +109 -0
- package/dist/es5/lib/batches/columnar-table-batch-aggregator.js.map +1 -0
- package/dist/es5/lib/batches/row-table-batch-aggregator.js +102 -0
- package/dist/es5/lib/batches/row-table-batch-aggregator.js.map +1 -0
- package/dist/es5/lib/batches/table-batch-aggregator.js +2 -0
- package/dist/{lib → es5/lib}/batches/table-batch-aggregator.js.map +0 -0
- package/dist/es5/lib/batches/table-batch-builder.js +187 -0
- package/dist/es5/lib/batches/table-batch-builder.js.map +1 -0
- package/dist/es5/lib/schema/impl/enum.js +56 -0
- package/dist/es5/lib/schema/impl/enum.js.map +1 -0
- package/dist/es5/lib/schema/impl/field.js +43 -0
- package/dist/es5/lib/schema/impl/field.js.map +1 -0
- package/dist/es5/lib/schema/impl/schema.js +103 -0
- package/dist/es5/lib/schema/impl/schema.js.map +1 -0
- package/dist/es5/lib/schema/impl/type.js +594 -0
- package/dist/es5/lib/schema/impl/type.js.map +1 -0
- package/dist/es5/lib/schema/index.js +236 -0
- package/dist/es5/lib/schema/index.js.map +1 -0
- package/dist/es5/lib/schema-utils/deduce-column-type.js +32 -0
- package/dist/es5/lib/schema-utils/deduce-column-type.js.map +1 -0
- package/dist/es5/lib/utils/assert.js +13 -0
- package/dist/es5/lib/utils/assert.js.map +1 -0
- package/dist/es5/lib/utils/async-queue.js +130 -0
- package/dist/es5/lib/utils/async-queue.js.map +1 -0
- package/dist/es5/lib/utils/row-utils.js +44 -0
- package/dist/es5/lib/utils/row-utils.js.map +1 -0
- package/dist/es5/types.js +2 -0
- package/dist/{types.js.map → es5/types.js.map} +0 -0
- package/dist/esm/bundle.js +5 -0
- package/dist/esm/bundle.js.map +1 -0
- package/dist/{category → esm/category}/common.js +0 -0
- package/dist/esm/category/common.js.map +1 -0
- package/dist/{category → esm/category}/gis.js +0 -0
- package/dist/esm/category/gis.js.map +1 -0
- package/dist/{category → esm/category}/mesh/convert-mesh.js +1 -1
- package/dist/esm/category/mesh/convert-mesh.js.map +1 -0
- package/dist/{category → esm/category}/mesh/deduce-mesh-schema.js +0 -0
- package/dist/esm/category/mesh/deduce-mesh-schema.js.map +1 -0
- package/dist/{category → esm/category}/mesh/mesh-to-arrow-table.js +1 -1
- package/dist/esm/category/mesh/mesh-to-arrow-table.js.map +1 -0
- package/dist/{category → esm/category}/mesh/mesh-types.js +0 -0
- package/dist/esm/category/mesh/mesh-types.js.map +1 -0
- package/dist/{category → esm/category}/mesh/mesh-utils.js +0 -0
- package/dist/esm/category/mesh/mesh-utils.js.map +1 -0
- package/dist/{category → esm/category}/table/deduce-table-schema.js +0 -0
- package/dist/esm/category/table/deduce-table-schema.js.map +1 -0
- package/dist/{category → esm/category}/table/table-types.js +0 -0
- package/dist/esm/category/table/table-types.js.map +1 -0
- package/dist/{index.js → esm/index.js} +0 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/{lib → esm/lib}/arrow/arrow-like-type-utils.js +0 -0
- package/dist/esm/lib/arrow/arrow-like-type-utils.js.map +1 -0
- package/dist/{lib → esm/lib}/arrow/arrow-type-utils.js +1 -1
- package/dist/esm/lib/arrow/arrow-type-utils.js.map +1 -0
- package/dist/{lib → esm/lib}/arrow/get-type-info.js +0 -0
- package/dist/esm/lib/arrow/get-type-info.js.map +1 -0
- package/dist/{lib → esm/lib}/batches/base-table-batch-aggregator.js +0 -0
- package/dist/esm/lib/batches/base-table-batch-aggregator.js.map +1 -0
- package/dist/{lib → esm/lib}/batches/columnar-table-batch-aggregator.js +0 -0
- package/dist/esm/lib/batches/columnar-table-batch-aggregator.js.map +1 -0
- package/dist/{lib → esm/lib}/batches/row-table-batch-aggregator.js +0 -0
- package/dist/esm/lib/batches/row-table-batch-aggregator.js.map +1 -0
- package/dist/{lib → esm/lib}/batches/table-batch-aggregator.js +0 -0
- package/dist/esm/lib/batches/table-batch-aggregator.js.map +1 -0
- package/dist/{lib → esm/lib}/batches/table-batch-builder.js +0 -0
- package/dist/esm/lib/batches/table-batch-builder.js.map +1 -0
- package/dist/{lib → esm/lib}/schema/impl/enum.js +0 -0
- package/dist/esm/lib/schema/impl/enum.js.map +1 -0
- package/dist/{lib → esm/lib}/schema/impl/field.js +1 -1
- package/dist/esm/lib/schema/impl/field.js.map +1 -0
- package/dist/{lib → esm/lib}/schema/impl/schema.js +0 -0
- package/dist/esm/lib/schema/impl/schema.js.map +1 -0
- package/dist/{lib → esm/lib}/schema/impl/type.js +8 -8
- package/dist/esm/lib/schema/impl/type.js.map +1 -0
- package/dist/{lib → esm/lib}/schema/index.js +0 -0
- package/dist/esm/lib/schema/index.js.map +1 -0
- package/dist/{lib → esm/lib}/schema-utils/deduce-column-type.js +0 -0
- package/dist/esm/lib/schema-utils/deduce-column-type.js.map +1 -0
- package/dist/{lib → esm/lib}/utils/assert.js +0 -0
- package/dist/esm/lib/utils/assert.js.map +1 -0
- package/dist/{lib → esm/lib}/utils/async-queue.js +0 -0
- package/dist/esm/lib/utils/async-queue.js.map +1 -0
- package/dist/{lib → esm/lib}/utils/row-utils.js +0 -0
- package/dist/esm/lib/utils/row-utils.js.map +1 -0
- package/dist/{types.js → esm/types.js} +0 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/lib/arrow/arrow-like-type-utils.d.ts +3 -0
- package/dist/lib/arrow/arrow-type-utils.d.ts +5 -0
- package/dist/lib/arrow/get-type-info.d.ts +13 -0
- package/dist/lib/batches/base-table-batch-aggregator.d.ts +18 -0
- package/dist/lib/batches/columnar-table-batch-aggregator.d.ts +22 -0
- package/dist/lib/batches/row-table-batch-aggregator.d.ts +21 -0
- package/dist/lib/batches/table-batch-aggregator.d.ts +24 -0
- package/dist/lib/batches/table-batch-builder.d.ts +52 -0
- package/dist/lib/schema/impl/enum.d.ts +91 -0
- package/dist/lib/schema/impl/field.d.ts +18 -0
- package/dist/lib/schema/impl/schema.d.ts +15 -0
- package/dist/lib/schema/impl/type.d.ts +175 -0
- package/dist/lib/schema/index.d.ts +4 -0
- package/dist/lib/schema-utils/deduce-column-type.d.ts +2 -0
- package/dist/lib/utils/assert.d.ts +1 -0
- package/dist/lib/utils/async-queue.d.ts +17 -0
- package/dist/lib/utils/row-utils.d.ts +8 -0
- package/dist/types.d.ts +7 -0
- package/package.json +7 -7
- package/src/bundle.ts +2 -3
- package/src/category/gis.ts +1 -0
- package/src/category/mesh/mesh-to-arrow-table.ts +1 -1
- package/src/category/table/table-types.ts +1 -1
- package/src/lib/arrow/arrow-type-utils.ts +1 -1
- package/dist/bundle.js +0 -7
- package/dist/bundle.js.map +0 -1
- package/dist/category/mesh/deduce-mesh-schema.js.map +0 -1
- package/dist/category/mesh/mesh-to-arrow-table.js.map +0 -1
- package/dist/category/mesh/mesh-utils.js.map +0 -1
- package/dist/category/table/deduce-table-schema.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/arrow/arrow-like-type-utils.js.map +0 -1
- package/dist/lib/arrow/arrow-type-utils.js.map +0 -1
- package/dist/lib/arrow/get-type-info.js.map +0 -1
- package/dist/lib/batches/base-table-batch-aggregator.js.map +0 -1
- package/dist/lib/batches/columnar-table-batch-aggregator.js.map +0 -1
- package/dist/lib/batches/row-table-batch-aggregator.js.map +0 -1
- package/dist/lib/batches/table-batch-builder.js.map +0 -1
- package/dist/lib/schema/impl/enum.js.map +0 -1
- package/dist/lib/schema/impl/field.js.map +0 -1
- package/dist/lib/schema/impl/schema.js.map +0 -1
- package/dist/lib/schema/impl/type.js.map +0 -1
- package/dist/lib/schema/index.js.map +0 -1
- package/dist/lib/schema-utils/deduce-column-type.js.map +0 -1
- package/dist/lib/utils/assert.js.map +0 -1
- package/dist/lib/utils/async-queue.js.map +0 -1
- package/dist/lib/utils/row-utils.js.map +0 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Schema } from '../schema';
|
|
2
|
+
import type { TableBatch } from '../../category/table/table-types';
|
|
3
|
+
import type { TableBatchConstructor } from './table-batch-aggregator';
|
|
4
|
+
declare type TableBatchBuilderOptions = {
|
|
5
|
+
shape: 'row-table' | 'array-row-table' | 'object-row-table' | 'columnar-table' | 'arrow-table';
|
|
6
|
+
batchSize?: number | 'auto';
|
|
7
|
+
batchDebounceMs?: number;
|
|
8
|
+
limit: number;
|
|
9
|
+
_limitMB: number;
|
|
10
|
+
};
|
|
11
|
+
declare type GetBatchOptions = {
|
|
12
|
+
bytesUsed?: number;
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
};
|
|
15
|
+
/** Incrementally builds batches from a stream of rows */
|
|
16
|
+
export default class TableBatchBuilder {
|
|
17
|
+
schema: Schema;
|
|
18
|
+
options: Required<TableBatchBuilderOptions>;
|
|
19
|
+
private aggregator;
|
|
20
|
+
private batchCount;
|
|
21
|
+
private bytesUsed;
|
|
22
|
+
private isChunkComplete;
|
|
23
|
+
private lastBatchEmittedMs;
|
|
24
|
+
private totalLength;
|
|
25
|
+
private totalBytes;
|
|
26
|
+
private rowBytes;
|
|
27
|
+
static ArrowBatch?: TableBatchConstructor;
|
|
28
|
+
constructor(schema: Schema, options?: TableBatchBuilderOptions);
|
|
29
|
+
limitReached(): boolean;
|
|
30
|
+
/** @deprecated Use addArrayRow or addObjectRow */
|
|
31
|
+
addRow(row: any[] | {
|
|
32
|
+
[columnName: string]: any;
|
|
33
|
+
}): void;
|
|
34
|
+
/** Add one row to the batch */
|
|
35
|
+
protected addArrayRow(row: any[]): void;
|
|
36
|
+
/** Add one row to the batch */
|
|
37
|
+
protected addObjectRow(row: {
|
|
38
|
+
[columnName: string]: any;
|
|
39
|
+
}): void;
|
|
40
|
+
/** Mark an incoming raw memory chunk has completed */
|
|
41
|
+
chunkComplete(chunk: ArrayBuffer | string): void;
|
|
42
|
+
getFullBatch(options?: GetBatchOptions): TableBatch | null;
|
|
43
|
+
getFinalBatch(options?: GetBatchOptions): TableBatch | null;
|
|
44
|
+
_estimateRowMB(row: any): number;
|
|
45
|
+
private _isFull;
|
|
46
|
+
/**
|
|
47
|
+
* bytesUsed can be set via chunkComplete or via getBatch*
|
|
48
|
+
*/
|
|
49
|
+
private _getBatch;
|
|
50
|
+
private _getTableBatchType;
|
|
51
|
+
}
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Main data type enumeration.
|
|
3
|
+
*
|
|
4
|
+
* Data types in this library are all *logical*. They can be expressed as
|
|
5
|
+
* either a primitive physical type (bytes or bits of some fixed size), a
|
|
6
|
+
* nested type consisting of other data types, or another data type (e.g. a
|
|
7
|
+
* timestamp encoded as an int64).
|
|
8
|
+
*
|
|
9
|
+
* **Note**: Only enum values 0-17 (NONE through Map) are written to an Arrow
|
|
10
|
+
* IPC payload.
|
|
11
|
+
*
|
|
12
|
+
* The rest of the values are specified here so TypeScript can narrow the type
|
|
13
|
+
* signatures further beyond the base Arrow Types. The Arrow DataTypes include
|
|
14
|
+
* metadata like `bitWidth` that impact the type signatures of the values we
|
|
15
|
+
* accept and return.
|
|
16
|
+
*
|
|
17
|
+
* For example, the `Int8Vector` reads 1-byte numbers from an `Int8Array`, an
|
|
18
|
+
* `Int32Vector` reads a 4-byte number from an `Int32Array`, and an `Int64Vector`
|
|
19
|
+
* reads a pair of 4-byte lo, hi 32-bit integers as a zero-copy slice from the
|
|
20
|
+
* underlying `Int32Array`.
|
|
21
|
+
*
|
|
22
|
+
* Library consumers benefit by knowing the narrowest type, since we can ensure
|
|
23
|
+
* the types across all public methods are propagated, and never bail to `any`.
|
|
24
|
+
* These values are _never_ used at runtime, and they will _never_ be written
|
|
25
|
+
* to the flatbuffers metadata of serialized Arrow IPC payloads.
|
|
26
|
+
*/
|
|
27
|
+
export declare enum Type {
|
|
28
|
+
/** The default placeholder type */
|
|
29
|
+
NONE = 0,
|
|
30
|
+
/** A NULL type having no physical storage */
|
|
31
|
+
Null = 1,
|
|
32
|
+
/** Signed or unsigned 8, 16, 32, or 64-bit little-endian integer */
|
|
33
|
+
Int = 2,
|
|
34
|
+
/** 2, 4, or 8-byte floating point value */
|
|
35
|
+
Float = 3,
|
|
36
|
+
/** Variable-length bytes (no guarantee of UTF8-ness) */
|
|
37
|
+
Binary = 4,
|
|
38
|
+
/** UTF8 variable-length string as List<Char> */
|
|
39
|
+
Utf8 = 5,
|
|
40
|
+
/** Boolean as 1 bit, LSB bit-packed ordering */
|
|
41
|
+
Bool = 6,
|
|
42
|
+
/** Precision-and-scale-based decimal type. Storage type depends on the parameters. */
|
|
43
|
+
Decimal = 7,
|
|
44
|
+
/** int32_t days or int64_t milliseconds since the UNIX epoch */
|
|
45
|
+
Date = 8,
|
|
46
|
+
/** Time as signed 32 or 64-bit integer, representing either seconds, milliseconds, microseconds, or nanoseconds since midnight since midnight */
|
|
47
|
+
Time = 9,
|
|
48
|
+
/** Exact timestamp encoded with int64 since UNIX epoch (Default unit millisecond) */
|
|
49
|
+
Timestamp = 10,
|
|
50
|
+
/** YEAR_MONTH or DAY_TIME interval in SQL style */
|
|
51
|
+
Interval = 11,
|
|
52
|
+
/** A list of some logical data type */
|
|
53
|
+
List = 12,
|
|
54
|
+
/** Struct of logical types */
|
|
55
|
+
Struct = 13,
|
|
56
|
+
/** Union of logical types */
|
|
57
|
+
Union = 14,
|
|
58
|
+
/** Fixed-size binary. Each value occupies the same number of bytes */
|
|
59
|
+
FixedSizeBinary = 15,
|
|
60
|
+
/** Fixed-size list. Each value occupies the same number of bytes */
|
|
61
|
+
FixedSizeList = 16,
|
|
62
|
+
/** Map of named logical types */
|
|
63
|
+
Map = 17,
|
|
64
|
+
/** Dictionary aka Category type */
|
|
65
|
+
Dictionary = -1,
|
|
66
|
+
Int8 = -2,
|
|
67
|
+
Int16 = -3,
|
|
68
|
+
Int32 = -4,
|
|
69
|
+
Int64 = -5,
|
|
70
|
+
Uint8 = -6,
|
|
71
|
+
Uint16 = -7,
|
|
72
|
+
Uint32 = -8,
|
|
73
|
+
Uint64 = -9,
|
|
74
|
+
Float16 = -10,
|
|
75
|
+
Float32 = -11,
|
|
76
|
+
Float64 = -12,
|
|
77
|
+
DateDay = -13,
|
|
78
|
+
DateMillisecond = -14,
|
|
79
|
+
TimestampSecond = -15,
|
|
80
|
+
TimestampMillisecond = -16,
|
|
81
|
+
TimestampMicrosecond = -17,
|
|
82
|
+
TimestampNanosecond = -18,
|
|
83
|
+
TimeSecond = -19,
|
|
84
|
+
TimeMillisecond = -20,
|
|
85
|
+
TimeMicrosecond = -21,
|
|
86
|
+
TimeNanosecond = -22,
|
|
87
|
+
DenseUnion = -23,
|
|
88
|
+
SparseUnion = -24,
|
|
89
|
+
IntervalDayTime = -25,
|
|
90
|
+
IntervalYearMonth = -26
|
|
91
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { DataType } from './type';
|
|
2
|
+
/**
|
|
3
|
+
* ArrowJS `Field` API-compatible class for row-based tables
|
|
4
|
+
* https://loaders.gl/arrowjs/docs/api-reference/field
|
|
5
|
+
* A field holds name, nullable, and metadata information about a table "column"
|
|
6
|
+
* A Schema is essentially a list of fields
|
|
7
|
+
*/
|
|
8
|
+
export default class Field {
|
|
9
|
+
name: string;
|
|
10
|
+
type: DataType;
|
|
11
|
+
nullable: boolean;
|
|
12
|
+
metadata: Map<string, string>;
|
|
13
|
+
constructor(name: string, type: DataType, nullable?: boolean, metadata?: Map<string, string>);
|
|
14
|
+
get typeId(): number;
|
|
15
|
+
clone(): Field;
|
|
16
|
+
compareTo(other: this): boolean;
|
|
17
|
+
toString(): string;
|
|
18
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import Field from './field';
|
|
2
|
+
export declare type SchemaMetadata = Map<string, any>;
|
|
3
|
+
/**
|
|
4
|
+
* ArrowJS `Schema` API-compatible class for row-based tables (returned from `DataTable`)
|
|
5
|
+
* https://loaders.gl/arrowjs/docs/api-reference/schema
|
|
6
|
+
*/
|
|
7
|
+
export default class Schema {
|
|
8
|
+
fields: Field[];
|
|
9
|
+
metadata: SchemaMetadata;
|
|
10
|
+
constructor(fields: Field[], metadata?: SchemaMetadata);
|
|
11
|
+
compareTo(other: Schema): boolean;
|
|
12
|
+
select(...columnNames: string[]): Schema;
|
|
13
|
+
selectAt(...columnIndices: number[]): Schema;
|
|
14
|
+
assign(schemaOrFields: Schema | Field[]): Schema;
|
|
15
|
+
}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { Type } from './enum';
|
|
2
|
+
import Field from './field';
|
|
3
|
+
export { Type } from './enum';
|
|
4
|
+
export declare type TypedIntArray = Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Int32Array | Uint32Array | Uint8ClampedArray;
|
|
5
|
+
export declare type TypedFloatArray = Float32Array | Float64Array;
|
|
6
|
+
export declare type TypedArray = TypedIntArray | TypedFloatArray;
|
|
7
|
+
export declare type AnyArrayType = Array<any> | TypedIntArray | TypedFloatArray;
|
|
8
|
+
export declare class DataType {
|
|
9
|
+
static isNull(x: any): boolean;
|
|
10
|
+
static isInt(x: any): boolean;
|
|
11
|
+
static isFloat(x: any): boolean;
|
|
12
|
+
static isBinary(x: any): boolean;
|
|
13
|
+
static isUtf8(x: any): boolean;
|
|
14
|
+
static isBool(x: any): boolean;
|
|
15
|
+
static isDecimal(x: any): boolean;
|
|
16
|
+
static isDate(x: any): boolean;
|
|
17
|
+
static isTime(x: any): boolean;
|
|
18
|
+
static isTimestamp(x: any): boolean;
|
|
19
|
+
static isInterval(x: any): boolean;
|
|
20
|
+
static isList(x: any): boolean;
|
|
21
|
+
static isStruct(x: any): boolean;
|
|
22
|
+
static isUnion(x: any): boolean;
|
|
23
|
+
static isFixedSizeBinary(x: any): boolean;
|
|
24
|
+
static isFixedSizeList(x: any): boolean;
|
|
25
|
+
static isMap(x: any): boolean;
|
|
26
|
+
static isDictionary(x: any): boolean;
|
|
27
|
+
get typeId(): Type;
|
|
28
|
+
compareTo(other: DataType): boolean;
|
|
29
|
+
}
|
|
30
|
+
export declare class Null extends DataType {
|
|
31
|
+
get typeId(): Type;
|
|
32
|
+
get [Symbol.toStringTag](): string;
|
|
33
|
+
toString(): string;
|
|
34
|
+
}
|
|
35
|
+
export declare class Bool extends DataType {
|
|
36
|
+
get typeId(): Type;
|
|
37
|
+
get [Symbol.toStringTag](): string;
|
|
38
|
+
toString(): string;
|
|
39
|
+
}
|
|
40
|
+
export declare class Int extends DataType {
|
|
41
|
+
readonly isSigned: boolean;
|
|
42
|
+
readonly bitWidth: number;
|
|
43
|
+
constructor(isSigned: any, bitWidth: any);
|
|
44
|
+
get typeId(): Type;
|
|
45
|
+
get [Symbol.toStringTag](): string;
|
|
46
|
+
toString(): string;
|
|
47
|
+
}
|
|
48
|
+
export declare class Int8 extends Int {
|
|
49
|
+
constructor();
|
|
50
|
+
}
|
|
51
|
+
export declare class Int16 extends Int {
|
|
52
|
+
constructor();
|
|
53
|
+
}
|
|
54
|
+
export declare class Int32 extends Int {
|
|
55
|
+
constructor();
|
|
56
|
+
}
|
|
57
|
+
export declare class Int64 extends Int {
|
|
58
|
+
constructor();
|
|
59
|
+
}
|
|
60
|
+
export declare class Uint8 extends Int {
|
|
61
|
+
constructor();
|
|
62
|
+
}
|
|
63
|
+
export declare class Uint16 extends Int {
|
|
64
|
+
constructor();
|
|
65
|
+
}
|
|
66
|
+
export declare class Uint32 extends Int {
|
|
67
|
+
constructor();
|
|
68
|
+
}
|
|
69
|
+
export declare class Uint64 extends Int {
|
|
70
|
+
constructor();
|
|
71
|
+
}
|
|
72
|
+
export declare class Float extends DataType {
|
|
73
|
+
readonly precision: number;
|
|
74
|
+
constructor(precision: any);
|
|
75
|
+
get typeId(): Type;
|
|
76
|
+
get [Symbol.toStringTag](): string;
|
|
77
|
+
toString(): string;
|
|
78
|
+
}
|
|
79
|
+
export declare class Float16 extends Float {
|
|
80
|
+
constructor();
|
|
81
|
+
}
|
|
82
|
+
export declare class Float32 extends Float {
|
|
83
|
+
constructor();
|
|
84
|
+
}
|
|
85
|
+
export declare class Float64 extends Float {
|
|
86
|
+
constructor();
|
|
87
|
+
}
|
|
88
|
+
export declare class Binary extends DataType {
|
|
89
|
+
constructor();
|
|
90
|
+
get typeId(): Type;
|
|
91
|
+
toString(): string;
|
|
92
|
+
get [Symbol.toStringTag](): string;
|
|
93
|
+
}
|
|
94
|
+
export declare class Utf8 extends DataType {
|
|
95
|
+
get typeId(): Type;
|
|
96
|
+
get [Symbol.toStringTag](): string;
|
|
97
|
+
toString(): string;
|
|
98
|
+
}
|
|
99
|
+
export declare class Date extends DataType {
|
|
100
|
+
readonly unit: number;
|
|
101
|
+
constructor(unit: any);
|
|
102
|
+
get typeId(): Type;
|
|
103
|
+
get [Symbol.toStringTag](): string;
|
|
104
|
+
toString(): string;
|
|
105
|
+
}
|
|
106
|
+
export declare class DateDay extends Date {
|
|
107
|
+
constructor();
|
|
108
|
+
}
|
|
109
|
+
export declare class DateMillisecond extends Date {
|
|
110
|
+
constructor();
|
|
111
|
+
}
|
|
112
|
+
export declare class Time extends DataType {
|
|
113
|
+
readonly unit: number;
|
|
114
|
+
readonly bitWidth: number;
|
|
115
|
+
constructor(unit: any, bitWidth: any);
|
|
116
|
+
get typeId(): Type;
|
|
117
|
+
toString(): string;
|
|
118
|
+
get [Symbol.toStringTag](): string;
|
|
119
|
+
}
|
|
120
|
+
export declare class TimeSecond extends Time {
|
|
121
|
+
constructor();
|
|
122
|
+
}
|
|
123
|
+
export declare class TimeMillisecond extends Time {
|
|
124
|
+
constructor();
|
|
125
|
+
}
|
|
126
|
+
export declare class Timestamp extends DataType {
|
|
127
|
+
readonly unit: any;
|
|
128
|
+
readonly timezone: any;
|
|
129
|
+
constructor(unit: any, timezone?: null);
|
|
130
|
+
get typeId(): Type;
|
|
131
|
+
get [Symbol.toStringTag](): string;
|
|
132
|
+
toString(): string;
|
|
133
|
+
}
|
|
134
|
+
export declare class TimestampSecond extends Timestamp {
|
|
135
|
+
constructor(timezone?: null);
|
|
136
|
+
}
|
|
137
|
+
export declare class TimestampMillisecond extends Timestamp {
|
|
138
|
+
constructor(timezone?: null);
|
|
139
|
+
}
|
|
140
|
+
export declare class TimestampMicrosecond extends Timestamp {
|
|
141
|
+
constructor(timezone?: null);
|
|
142
|
+
}
|
|
143
|
+
export declare class TimestampNanosecond extends Timestamp {
|
|
144
|
+
constructor(timezone?: null);
|
|
145
|
+
}
|
|
146
|
+
export declare class Interval extends DataType {
|
|
147
|
+
readonly unit: number;
|
|
148
|
+
constructor(unit: number);
|
|
149
|
+
get typeId(): Type;
|
|
150
|
+
get [Symbol.toStringTag](): string;
|
|
151
|
+
toString(): string;
|
|
152
|
+
}
|
|
153
|
+
export declare class IntervalDayTime extends Interval {
|
|
154
|
+
constructor();
|
|
155
|
+
}
|
|
156
|
+
export declare class IntervalYearMonth extends Interval {
|
|
157
|
+
constructor();
|
|
158
|
+
}
|
|
159
|
+
export declare class FixedSizeList extends DataType {
|
|
160
|
+
readonly listSize: number;
|
|
161
|
+
readonly children: Field[];
|
|
162
|
+
constructor(listSize: number, child: Field);
|
|
163
|
+
get typeId(): Type;
|
|
164
|
+
get valueType(): DataType;
|
|
165
|
+
get valueField(): Field;
|
|
166
|
+
get [Symbol.toStringTag](): string;
|
|
167
|
+
toString(): string;
|
|
168
|
+
}
|
|
169
|
+
export declare class Struct extends DataType {
|
|
170
|
+
readonly children: Field[];
|
|
171
|
+
constructor(children: Field[]);
|
|
172
|
+
get typeId(): Type;
|
|
173
|
+
toString(): string;
|
|
174
|
+
get [Symbol.toStringTag](): string;
|
|
175
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { default as Schema } from './impl/schema';
|
|
2
|
+
export { default as Field } from './impl/field';
|
|
3
|
+
export { Type } from './impl/type';
|
|
4
|
+
export { DataType, Null, Bool, Int, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64, Float, Float16, Float32, Float64, Binary, Utf8, Date, DateDay, DateMillisecond, Time, TimeSecond, TimeMillisecond, Timestamp, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond, Interval, IntervalDayTime, IntervalYearMonth, FixedSizeList, Struct } from './impl/type';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function assert(condition: boolean, message?: string): void;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export default class AsyncQueue<T> {
|
|
2
|
+
private _values;
|
|
3
|
+
private _settlers;
|
|
4
|
+
private _closed;
|
|
5
|
+
constructor();
|
|
6
|
+
close(): void;
|
|
7
|
+
[Symbol.asyncIterator](): AsyncIterator<T>;
|
|
8
|
+
enqueue(value: T | Error): void;
|
|
9
|
+
/**
|
|
10
|
+
* @returns a Promise for an IteratorResult
|
|
11
|
+
*/
|
|
12
|
+
next(): Promise<any>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @returns a Promise for an Array with the elements in `asyncIterable`
|
|
16
|
+
*/
|
|
17
|
+
export declare function takeAsync(asyncIterable: AsyncIterable<any>, count?: number): Promise<any[]>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Convert an object row to an array row */
|
|
2
|
+
export declare function convertToObjectRow(arrayRow: any[], headers: string[]): {
|
|
3
|
+
[columnName: string]: any;
|
|
4
|
+
};
|
|
5
|
+
/** Convert an object row to an array row */
|
|
6
|
+
export declare function convertToArrayRow(objectRow: {
|
|
7
|
+
[columnName: string]: any;
|
|
8
|
+
}, headers: string[]): any[];
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Any typed array */
|
|
2
|
+
export declare type TypedArray = Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array;
|
|
3
|
+
export declare type BigTypedArray = TypedArray | BigInt64Array | BigUint64Array;
|
|
4
|
+
/** Any numeric array: typed array or `number[]` */
|
|
5
|
+
export declare type NumberArray = number[] | TypedArray;
|
|
6
|
+
/** Any array: typed array or js array (`any[]`) */
|
|
7
|
+
export declare type AnyArray = any[] | TypedArray;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/schema",
|
|
3
|
-
"version": "3.1.0-alpha.
|
|
3
|
+
"version": "3.1.0-alpha.5",
|
|
4
4
|
"description": "Table format APIs for JSON, CSV, etc...",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
"point cloud",
|
|
19
19
|
"PLY"
|
|
20
20
|
],
|
|
21
|
-
"types": "
|
|
22
|
-
"main": "dist/index.js",
|
|
23
|
-
"module": "dist/index.js",
|
|
21
|
+
"types": "dist/index.d.ts",
|
|
22
|
+
"main": "dist/es5/index.js",
|
|
23
|
+
"module": "dist/esm/index.js",
|
|
24
24
|
"sideEffects": false,
|
|
25
25
|
"files": [
|
|
26
26
|
"src",
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
],
|
|
30
30
|
"scripts": {
|
|
31
31
|
"pre-build": "npm run build-bundle",
|
|
32
|
+
"post-build": "tsc",
|
|
32
33
|
"build-bundle": "webpack --display=minimal --config ../../scripts/webpack/bundle.js"
|
|
33
34
|
},
|
|
34
35
|
"dependencies": {
|
|
35
36
|
"@types/geojson": "^7946.0.7",
|
|
36
|
-
"apache-arrow": "^4.0.0"
|
|
37
|
-
"d3-dsv": "^1.2.0"
|
|
37
|
+
"apache-arrow": "^4.0.0"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "352241dd910a8c6307a235dadbe154ca915b885b"
|
|
40
40
|
}
|
package/src/bundle.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
2
|
const moduleExports = require('./index');
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
module.exports = Object.assign(_global.loaders, moduleExports);
|
|
3
|
+
globalThis.loaders = globalThis.loaders || {};
|
|
4
|
+
module.exports = Object.assign(globalThis.loaders, moduleExports);
|
package/src/category/gis.ts
CHANGED
|
@@ -55,6 +55,7 @@ export type BinaryPolygonFeatures = BinaryPolygonGeometry & BinaryProperties;
|
|
|
55
55
|
* Represent a collection of Features, similar to a GeoJSON FeatureCollection
|
|
56
56
|
*/
|
|
57
57
|
export type BinaryFeatures = {
|
|
58
|
+
type?: BinaryGeometryType;
|
|
58
59
|
points?: BinaryPointFeatures;
|
|
59
60
|
lines?: BinaryLineFeatures;
|
|
60
61
|
polygons?: BinaryPolygonFeatures;
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
Field,
|
|
7
7
|
Data,
|
|
8
8
|
FixedSizeListVector
|
|
9
|
-
} from 'apache-arrow/Arrow';
|
|
9
|
+
} from 'apache-arrow/Arrow.dom';
|
|
10
10
|
import {AbstractVector} from 'apache-arrow/vector';
|
|
11
11
|
import {getArrowType, getArrowVector} from '../../lib/arrow/arrow-type-utils';
|
|
12
12
|
import type {Mesh} from './mesh-types';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type {Schema} from '../../lib/schema';
|
|
2
|
-
import type {Table as ApacheArrowTable, RecordBatch} from 'apache-arrow';
|
|
2
|
+
import type {Table as ApacheArrowTable, RecordBatch} from 'apache-arrow/Arrow.dom';
|
|
3
3
|
import type {AnyArray} from '../../types';
|
|
4
4
|
import type {Batch} from '../common';
|
|
5
5
|
|
package/dist/bundle.js
DELETED
package/dist/bundle.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bundle.ts"],"names":["moduleExports","require","_global","window","global","loaders","module","exports","Object","assign"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACA,MAAMC,OAAO,GAAG,OAAOC,MAAP,KAAkB,WAAlB,GAAgCC,MAAhC,GAAyCD,MAAzD;;AACAD,OAAO,CAACG,OAAR,GAAkBH,OAAO,CAACG,OAAR,IAAmB,EAArC;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcP,OAAO,CAACG,OAAtB,EAA+BL,aAA/B,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nconst _global = typeof window === 'undefined' ? global : window;\n_global.loaders = _global.loaders || {};\nmodule.exports = Object.assign(_global.loaders, moduleExports);\n"],"file":"bundle.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/category/mesh/deduce-mesh-schema.ts"],"names":["Schema","Field","FixedSizeList","getArrowTypeFromTypedArray","deduceMeshSchema","attributes","metadata","fields","deduceMeshFields","deduceMeshField","attributeName","attribute","optionalMetadata","type","value","makeMeshAttributeMetadata","field","size","push","result","Map","set","byteOffset","toString","byteStride","normalized"],"mappings":"AACA,SAAQA,MAAR,EAAgBC,KAAhB,EAAuBC,aAAvB,QAA2C,kBAA3C;AACA,SAAQC,0BAAR,QAAyC,uCAAzC;AAQA,OAAO,SAASC,gBAAT,CACLC,UADK,EAELC,QAFK,EAGG;AACR,QAAMC,MAAM,GAAGC,gBAAgB,CAACH,UAAD,CAA/B;AACA,SAAO,IAAIL,MAAJ,CAAWO,MAAX,EAAmBD,QAAnB,CAAP;AACD;AASD,OAAO,SAASG,eAAT,CACLC,aADK,EAELC,SAFK,EAGLC,gBAHK,EAIE;AACP,QAAMC,IAAI,GAAGV,0BAA0B,CAACQ,SAAS,CAACG,KAAX,CAAvC;AACA,QAAMR,QAAQ,GAAGM,gBAAgB,GAAGA,gBAAH,GAAsBG,yBAAyB,CAACJ,SAAD,CAAhF;AACA,QAAMK,KAAK,GAAG,IAAIf,KAAJ,CACZS,aADY,EAEZ,IAAIR,aAAJ,CAAkBS,SAAS,CAACM,IAA5B,EAAkC,IAAIhB,KAAJ,CAAU,OAAV,EAAmBY,IAAnB,CAAlC,CAFY,EAGZ,KAHY,EAIZP,QAJY,CAAd;AAMA,SAAOU,KAAP;AACD;;AAOD,SAASR,gBAAT,CAA0BH,UAA1B,EAA+D;AAC7D,QAAME,MAAe,GAAG,EAAxB;;AACA,OAAK,MAAMG,aAAX,IAA4BL,UAA5B,EAAwC;AACtC,UAAMM,SAAwB,GAAGN,UAAU,CAACK,aAAD,CAA3C;AACAH,IAAAA,MAAM,CAACW,IAAP,CAAYT,eAAe,CAACC,aAAD,EAAgBC,SAAhB,CAA3B;AACD;;AACD,SAAOJ,MAAP;AACD;;AAOD,OAAO,SAASQ,yBAAT,CAAmCJ,SAAnC,EAAkF;AACvF,QAAMQ,MAAM,GAAG,IAAIC,GAAJ,EAAf;;AACA,MAAI,gBAAgBT,SAApB,EAA+B;AAC7BQ,IAAAA,MAAM,CAACE,GAAP,CAAW,YAAX,EAAyBV,SAAS,CAACW,UAAV,CAAsBC,QAAtB,CAA+B,EAA/B,CAAzB;AACD;;AACD,MAAI,gBAAgBZ,SAApB,EAA+B;AAC7BQ,IAAAA,MAAM,CAACE,GAAP,CAAW,YAAX,EAAyBV,SAAS,CAACa,UAAV,CAAsBD,QAAtB,CAA+B,EAA/B,CAAzB;AACD;;AACD,MAAI,gBAAgBZ,SAApB,EAA+B;AAC7BQ,IAAAA,MAAM,CAACE,GAAP,CAAW,YAAX,EAAyBV,SAAS,CAACc,UAAV,CAAsBF,QAAtB,EAAzB;AACD;;AACD,SAAOJ,MAAP;AACD","sourcesContent":["import {MeshAttribute, MeshAttributes} from './mesh-types';\nimport {Schema, Field, FixedSizeList} from '../../lib/schema';\nimport {getArrowTypeFromTypedArray} from '../../lib/arrow/arrow-like-type-utils';\n\n/**\n * Create a schema for mesh attributes data\n * @param attributes\n * @param metadata\n * @returns\n */\nexport function deduceMeshSchema(\n attributes: MeshAttributes,\n metadata?: Map<string, string>\n): Schema {\n const fields = deduceMeshFields(attributes);\n return new Schema(fields, metadata);\n}\n\n/**\n * Create arrow-like schema field for mesh attribute\n * @param attributeName\n * @param attribute\n * @param optionalMetadata\n * @returns\n */\nexport function deduceMeshField(\n attributeName: string,\n attribute: MeshAttribute,\n optionalMetadata?: Map<string, string>\n): Field {\n const type = getArrowTypeFromTypedArray(attribute.value);\n const metadata = optionalMetadata ? optionalMetadata : makeMeshAttributeMetadata(attribute);\n const field = new Field(\n attributeName,\n new FixedSizeList(attribute.size, new Field('value', type)),\n false,\n metadata\n );\n return field;\n}\n\n/**\n * Create fields array for mesh attributes\n * @param attributes\n * @returns\n */\nfunction deduceMeshFields(attributes: MeshAttributes): Field[] {\n const fields: Field[] = [];\n for (const attributeName in attributes) {\n const attribute: MeshAttribute = attributes[attributeName];\n fields.push(deduceMeshField(attributeName, attribute));\n }\n return fields;\n}\n\n/**\n * Make metadata by mesh attribute properties\n * @param attribute\n * @returns\n */\nexport function makeMeshAttributeMetadata(attribute: MeshAttribute): Map<string, string> {\n const result = new Map();\n if ('byteOffset' in attribute) {\n result.set('byteOffset', attribute.byteOffset!.toString(10));\n }\n if ('byteStride' in attribute) {\n result.set('byteStride', attribute.byteStride!.toString(10));\n }\n if ('normalized' in attribute) {\n result.set('normalized', attribute.normalized!.toString());\n }\n return result;\n}\n"],"file":"deduce-mesh-schema.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/category/mesh/mesh-to-arrow-table.ts"],"names":["Table","Schema","RecordBatch","FixedSizeList","Field","Data","FixedSizeListVector","getArrowType","getArrowVector","makeMeshAttributeMetadata","convertMeshToArrowTable","mesh","batchSize","vectors","fields","attributeKey","attributes","attribute","value","size","type","vector","listType","field","data","length","undefined","listVector","push","schema","metadata","Map","recordBatch","table"],"mappings":"AAAA,SACEA,KADF,EAEEC,MAFF,EAGEC,WAHF,EAIEC,aAJF,EAKEC,KALF,EAMEC,IANF,EAOEC,mBAPF,QAQO,oBARP;AAUA,SAAQC,YAAR,EAAsBC,cAAtB,QAA2C,kCAA3C;AAEA,SAAQC,yBAAR,QAAwC,sBAAxC;AASA,OAAO,SAASC,uBAAT,CAAiCC,IAAjC,EAA6CC,SAA7C,EAAwE;AAAA;;AAC7E,QAAMC,OAAyB,GAAG,EAAlC;AACA,QAAMC,MAAe,GAAG,EAAxB;;AACA,OAAK,MAAMC,YAAX,IAA2BJ,IAAI,CAACK,UAAhC,EAA4C;AAC1C,UAAMC,SAAS,GAAGN,IAAI,CAACK,UAAL,CAAgBD,YAAhB,CAAlB;AACA,UAAM;AAACG,MAAAA,KAAD;AAAQC,MAAAA,IAAI,GAAG;AAAf,QAAoBF,SAA1B;AACA,UAAMG,IAAI,GAAGb,YAAY,CAACW,KAAD,CAAzB;AACA,UAAMG,MAAM,GAAGb,cAAc,CAACU,KAAD,CAA7B;AACA,UAAMI,QAAQ,GAAG,IAAInB,aAAJ,CAAkBgB,IAAlB,EAAwB,IAAIf,KAAJ,CAAU,OAAV,EAAmBgB,IAAnB,CAAxB,CAAjB;AACA,UAAMG,KAAK,GAAG,IAAInB,KAAJ,CAAUW,YAAV,EAAwBO,QAAxB,EAAkC,KAAlC,EAAyCb,yBAAyB,CAACQ,SAAD,CAAlE,CAAd;AACA,UAAMO,IAAI,GAAG,IAAInB,IAAJ,CAASiB,QAAT,EAAmB,CAAnB,EAAsBJ,KAAK,CAACO,MAAN,GAAeN,IAArC,EAA2C,CAA3C,EAA8CO,SAA9C,EAAyD,CAACL,MAAD,CAAzD,CAAb;AACA,UAAMM,UAAU,GAAG,IAAIrB,mBAAJ,CAAwBkB,IAAxB,CAAnB;AACAX,IAAAA,OAAO,CAACe,IAAR,CAAaD,UAAb;AACAb,IAAAA,MAAM,CAACc,IAAP,CAAYL,KAAZ;AACD;;AACD,QAAMM,MAAM,GAAG,IAAI5B,MAAJ,CAAWa,MAAX,EAAmB,CAAAH,IAAI,SAAJ,IAAAA,IAAI,WAAJ,4BAAAA,IAAI,CAAEkB,MAAN,8DAAcC,QAAd,KAA0B,IAAIC,GAAJ,EAA7C,CAAf;AACA,QAAMC,WAAW,GAAG,IAAI9B,WAAJ,CAAgB2B,MAAhB,EAAwBhB,OAAO,CAAC,CAAD,CAAP,CAAWY,MAAnC,EAA2CZ,OAA3C,CAApB;AACA,QAAMoB,KAAK,GAAG,IAAIjC,KAAJ,CAAU6B,MAAV,EAAkBG,WAAlB,CAAd;AACA,SAAOC,KAAP;AACD","sourcesContent":["import {\n Table,\n Schema,\n RecordBatch,\n FixedSizeList,\n Field,\n Data,\n FixedSizeListVector\n} from 'apache-arrow/Arrow';\nimport {AbstractVector} from 'apache-arrow/vector';\nimport {getArrowType, getArrowVector} from '../../lib/arrow/arrow-type-utils';\nimport type {Mesh} from './mesh-types';\nimport {makeMeshAttributeMetadata} from './deduce-mesh-schema';\n\n/**\n * * Convert a loaders.gl Mesh to an Apache Arrow Table\n * @param mesh\n * @param metadata\n * @param batchSize\n * @returns\n */\nexport function convertMeshToArrowTable(mesh: Mesh, batchSize?: number): Table {\n const vectors: AbstractVector[] = [];\n const fields: Field[] = [];\n for (const attributeKey in mesh.attributes) {\n const attribute = mesh.attributes[attributeKey];\n const {value, size = 1} = attribute;\n const type = getArrowType(value);\n const vector = getArrowVector(value);\n const listType = new FixedSizeList(size, new Field('value', type));\n const field = new Field(attributeKey, listType, false, makeMeshAttributeMetadata(attribute));\n const data = new Data(listType, 0, value.length / size, 0, undefined, [vector]);\n const listVector = new FixedSizeListVector(data);\n vectors.push(listVector);\n fields.push(field);\n }\n const schema = new Schema(fields, mesh?.schema?.metadata || new Map<string, string>());\n const recordBatch = new RecordBatch(schema, vectors[0].length, vectors);\n const table = new Table(schema, recordBatch);\n return table;\n}\n"],"file":"mesh-to-arrow-table.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/category/mesh/mesh-utils.ts"],"names":["getMeshSize","attributes","size","attributeName","attribute","ArrayBuffer","isView","byteLength","BYTES_PER_ELEMENT","getMeshBoundingBox","minX","Infinity","minY","minZ","maxX","maxY","maxZ","positions","POSITION","value","len","length","i","x","y","z"],"mappings":"AAiBA,OAAO,SAASA,WAAT,CAAqBC,UAArB,EAAsD;AAC3D,MAAIC,IAAI,GAAG,CAAX;;AACA,OAAK,MAAMC,aAAX,IAA4BF,UAA5B,EAAwC;AACtC,UAAMG,SAAS,GAAGH,UAAU,CAACE,aAAD,CAA5B;;AACA,QAAIE,WAAW,CAACC,MAAZ,CAAmBF,SAAnB,CAAJ,EAAmC;AAEjCF,MAAAA,IAAI,IAAIE,SAAS,CAACG,UAAV,GAAuBH,SAAS,CAACI,iBAAzC;AACD;AACF;;AACD,SAAON,IAAP;AACD;AAQD,OAAO,SAASO,kBAAT,CAA4BR,UAA5B,EAAqE;AAC1E,MAAIS,IAAI,GAAGC,QAAX;AACA,MAAIC,IAAI,GAAGD,QAAX;AACA,MAAIE,IAAI,GAAGF,QAAX;AACA,MAAIG,IAAI,GAAG,CAACH,QAAZ;AACA,MAAII,IAAI,GAAG,CAACJ,QAAZ;AACA,MAAIK,IAAI,GAAG,CAACL,QAAZ;AAEA,QAAMM,SAAS,GAAGhB,UAAU,CAACiB,QAAX,GAAsBjB,UAAU,CAACiB,QAAX,CAAoBC,KAA1C,GAAkD,EAApE;AACA,QAAMC,GAAG,GAAGH,SAAS,IAAIA,SAAS,CAACI,MAAnC;;AAEA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,GAApB,EAAyBE,CAAC,IAAI,CAA9B,EAAiC;AAC/B,UAAMC,CAAC,GAAGN,SAAS,CAACK,CAAD,CAAnB;AACA,UAAME,CAAC,GAAGP,SAAS,CAACK,CAAC,GAAG,CAAL,CAAnB;AACA,UAAMG,CAAC,GAAGR,SAAS,CAACK,CAAC,GAAG,CAAL,CAAnB;AAEAZ,IAAAA,IAAI,GAAGa,CAAC,GAAGb,IAAJ,GAAWa,CAAX,GAAeb,IAAtB;AACAE,IAAAA,IAAI,GAAGY,CAAC,GAAGZ,IAAJ,GAAWY,CAAX,GAAeZ,IAAtB;AACAC,IAAAA,IAAI,GAAGY,CAAC,GAAGZ,IAAJ,GAAWY,CAAX,GAAeZ,IAAtB;AAEAC,IAAAA,IAAI,GAAGS,CAAC,GAAGT,IAAJ,GAAWS,CAAX,GAAeT,IAAtB;AACAC,IAAAA,IAAI,GAAGS,CAAC,GAAGT,IAAJ,GAAWS,CAAX,GAAeT,IAAtB;AACAC,IAAAA,IAAI,GAAGS,CAAC,GAAGT,IAAJ,GAAWS,CAAX,GAAeT,IAAtB;AACD;;AACD,SAAO,CACL,CAACN,IAAD,EAAOE,IAAP,EAAaC,IAAb,CADK,EAEL,CAACC,IAAD,EAAOC,IAAP,EAAaC,IAAb,CAFK,CAAP;AAID","sourcesContent":["// Mesh category utilities\n// TODO - move to mesh category module, or to math.gl/geometry module\nimport {TypedArray} from '../../types';\nimport {MeshAttributes} from './mesh-types';\n\ntype TypedArrays = {[key: string]: TypedArray};\n\n/**\n * Holds an axis aligned bounding box\n * TODO - make sure AxisAlignedBoundingBox in math.gl/culling understands this format (or change this format)\n */\ntype BoundingBox = [[number, number, number], [number, number, number]];\n\n/**\n * Get number of vertices in mesh\n * @param attributes\n */\nexport function getMeshSize(attributes: TypedArrays): number {\n let size = 0;\n for (const attributeName in attributes) {\n const attribute = attributes[attributeName];\n if (ArrayBuffer.isView(attribute)) {\n // @ts-ignore DataView doesn't have BYTES_PER_ELEMENT\n size += attribute.byteLength * attribute.BYTES_PER_ELEMENT;\n }\n }\n return size;\n}\n\n/**\n * Get the (axis aligned) bounding box of a mesh\n * @param attributes\n * @returns array of two vectors representing the axis aligned bounding box\n */\n// eslint-disable-next-line complexity\nexport function getMeshBoundingBox(attributes: MeshAttributes): BoundingBox {\n let minX = Infinity;\n let minY = Infinity;\n let minZ = Infinity;\n let maxX = -Infinity;\n let maxY = -Infinity;\n let maxZ = -Infinity;\n\n const positions = attributes.POSITION ? attributes.POSITION.value : [];\n const len = positions && positions.length;\n\n for (let i = 0; i < len; i += 3) {\n const x = positions[i];\n const y = positions[i + 1];\n const z = positions[i + 2];\n\n minX = x < minX ? x : minX;\n minY = y < minY ? y : minY;\n minZ = z < minZ ? z : minZ;\n\n maxX = x > maxX ? x : maxX;\n maxY = y > maxY ? y : maxY;\n maxZ = z > maxZ ? z : maxZ;\n }\n return [\n [minX, minY, minZ],\n [maxX, maxY, maxZ]\n ];\n}\n"],"file":"mesh-utils.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/category/table/deduce-table-schema.ts"],"names":["deduceTableSchema","table","schema","deducedSchema","Array","isArray","deduceSchemaForRowTable","deduceSchemaForColumnarTable","Object","assign","columnarTable","field","column","ArrayBuffer","isView","constructor","length","value","deduceTypeFromValue","rowTable","row","Date","Number","Float32Array","String"],"mappings":"AAyCA,OAAO,SAASA,iBAAT,CAA2BC,KAA3B,EAAkCC,MAAlC,EAAmD;AACxD,QAAMC,aAAa,GAAGC,KAAK,CAACC,OAAN,CAAcJ,KAAd,IAClBK,uBAAuB,CAACL,KAAD,CADL,GAElBM,4BAA4B,CAACN,KAAD,CAFhC;AAIA,SAAOO,MAAM,CAACC,MAAP,CAAcN,aAAd,EAA6BD,MAA7B,CAAP;AACD;;AAED,SAASK,4BAAT,CAAsCG,aAAtC,EAAqD;AACnD,QAAMR,MAAM,GAAG,EAAf;;AACA,OAAK,MAAMS,KAAX,IAAoBD,aAApB,EAAmC;AACjC,UAAME,MAAM,GAAGF,aAAa,CAACC,KAAD,CAA5B;;AAEA,QAAIE,WAAW,CAACC,MAAZ,CAAmBF,MAAnB,CAAJ,EAAgC;AAC9BV,MAAAA,MAAM,CAACS,KAAD,CAAN,GAAgBC,MAAM,CAACG,WAAvB;AAED,KAHD,MAGO,IAAIH,MAAM,CAACI,MAAX,EAAmB;AACxB,YAAMC,KAAK,GAAGL,MAAM,CAAC,CAAD,CAApB;AACAV,MAAAA,MAAM,CAACS,KAAD,CAAN,GAAgBO,mBAAmB,CAACD,KAAD,CAAnC;AAED;;AAEDf,IAAAA,MAAM,CAACS,KAAD,CAAN,GAAgBT,MAAM,CAACS,KAAD,CAAN,IAAiB,IAAjC;AACD;;AACD,SAAOT,MAAP;AACD;;AAED,SAASI,uBAAT,CAAiCa,QAAjC,EAA2C;AACzC,QAAMjB,MAAM,GAAG,EAAf;;AACA,MAAIiB,QAAQ,CAACH,MAAb,EAAqB;AACnB,UAAMI,GAAG,GAAGD,QAAQ,CAAC,CAAD,CAApB;;AAEA,SAAK,MAAMR,KAAX,IAAoBS,GAApB,EAAyB;AACvB,YAAMH,KAAK,GAAGG,GAAG,CAACT,KAAD,CAAjB;AACAT,MAAAA,MAAM,CAACS,KAAD,CAAN,GAAgBO,mBAAmB,CAACD,KAAD,CAAnC;AACD;AACF;;AACD,SAAOf,MAAP;AACD;;AAED,SAASgB,mBAAT,CAA6BD,KAA7B,EAAoC;AAClC,MAAIA,KAAK,YAAYI,IAArB,EAA2B;AACzB,WAAOA,IAAP;AACD,GAFD,MAEO,IAAIJ,KAAK,YAAYK,MAArB,EAA6B;AAClC,WAAOC,YAAP;AACD,GAFM,MAEA,IAAI,OAAON,KAAP,KAAiB,QAArB,EAA+B;AACpC,WAAOO,MAAP;AACD;;AACD,SAAO,IAAP;AACD","sourcesContent":["// Type deduction\nimport {\n Schema\n // Int,\n // Int8,\n // Int16,\n // Int32,\n // Uint8,\n // Uint16,\n // Uint32,\n // Float32,\n // Float64\n // Bool,\n // Utf8,\n // TimestampMillisecond,\n // Null\n} from '../../lib/schema';\n\n// const TYPED_ARRAY_TO_TYPE = {\n// Int8Array: new Int8(),\n// Int16Array: new Int16(),\n// Int32Array: new Int32(),\n// Uint8Array: new Uint8(),\n// Uint8ClampedArray: new Uint8(),\n// Uint16Array: new Uint16(),\n// Uint32Array: new Uint32(),\n// Float32Array: new Float32(),\n// Float64Array: new Float64()\n// };\n\n// if (typeof BigInt64Array !== 'undefined') {\n// TYPED_ARRAY_TO_TYPE.BigInt64Array = new Int64();\n// TYPED_ARRAY_TO_TYPE.BigUint64Array = new Uint64();\n// }\n\n/**\n * SCHEMA SUPPORT - AUTODEDUCTION\n * @param {*} table\n * @param {*} schema\n * @returns\n */\nexport function deduceTableSchema(table, schema?: Schema) {\n const deducedSchema = Array.isArray(table)\n ? deduceSchemaForRowTable(table)\n : deduceSchemaForColumnarTable(table);\n // Deduced schema will fill in missing info from partial options.schema, if provided\n return Object.assign(deducedSchema, schema);\n}\n\nfunction deduceSchemaForColumnarTable(columnarTable) {\n const schema = {};\n for (const field in columnarTable) {\n const column = columnarTable[field];\n // Check if column is typed, if so we are done\n if (ArrayBuffer.isView(column)) {\n schema[field] = column.constructor;\n // else we need data\n } else if (column.length) {\n const value = column[0];\n schema[field] = deduceTypeFromValue(value);\n // TODO - support nested schemas?\n }\n // else we mark as present but unknow\n schema[field] = schema[field] || null;\n }\n return schema;\n}\n\nfunction deduceSchemaForRowTable(rowTable) {\n const schema = {};\n if (rowTable.length) {\n const row = rowTable[0];\n // TODO - Could look at additional rows if nulls in first row\n for (const field in row) {\n const value = row[field];\n schema[field] = deduceTypeFromValue(value);\n }\n }\n return schema;\n}\n\nfunction deduceTypeFromValue(value) {\n if (value instanceof Date) {\n return Date;\n } else if (value instanceof Number) {\n return Float32Array;\n } else if (typeof value === 'string') {\n return String;\n }\n return null;\n}\n\n/*\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction deduceSchema(rows) {\n const row = rows[0];\n\n const schema = {};\n let i = 0;\n for (const columnName in row) {\n const value = row[columnName];\n switch (typeof value) {\n case 'number':\n case 'boolean':\n // TODO - booleans could be handled differently...\n schema[columnName] = {name: String(columnName), index: i, type: Float32Array};\n break;\n\n case 'object':\n schema[columnName] = {name: String(columnName), index: i, type: Array};\n break;\n\n case 'string':\n default:\n schema[columnName] = {name: String(columnName), index: i, type: Array};\n // We currently only handle numeric rows\n // TODO we could offer a function to map strings to numbers?\n }\n i++;\n }\n return schema;\n}\n*/\n"],"file":"deduce-table-schema.js"}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["default","TableBatchBuilder","RowTableBatchAggregator","ColumnarTableBatchAggregator","convertToObjectRow","convertToArrayRow","getMeshSize","getMeshBoundingBox","convertMesh","deduceMeshSchema","deduceMeshField","makeMeshAttributeMetadata","Schema","Field","DataType","Null","Binary","Bool","Int","Int8","Int16","Int32","Int64","Uint8","Uint16","Uint32","Uint64","Float","Float16","Float32","Float64","Utf8","Date","DateDay","DateMillisecond","Time","TimeMillisecond","TimeSecond","Timestamp","TimestampSecond","TimestampMillisecond","TimestampMicrosecond","TimestampNanosecond","Interval","IntervalDayTime","IntervalYearMonth","FixedSizeList","Struct","deduceTypeFromColumn","deduceTypeFromValue","getTypeInfo","getArrowTypeFromTypedArray","AsyncQueue"],"mappings":"AAuBA,SAAQA,OAAO,IAAIC,iBAAnB,QAA2C,mCAA3C;AAEA,SAAQD,OAAO,IAAIE,uBAAnB,QAAiD,0CAAjD;AACA,SAAQF,OAAO,IAAIG,4BAAnB,QAAsD,+CAAtD;AAEA,SAAQC,kBAAR,EAA4BC,iBAA5B,QAAoD,uBAApD;AAYA,SAAQC,WAAR,EAAqBC,kBAArB,QAA8C,4BAA9C;AACA,SAAQC,WAAR,QAA0B,8BAA1B;AACA,SACEC,gBADF,EAEEC,eAFF,EAGEC,yBAHF,QAIO,oCAJP;AAmCA,SACEC,MADF,EAEEC,KAFF,EAGEC,QAHF,EAIEC,IAJF,EAKEC,MALF,EAMEC,IANF,EAOEC,GAPF,EAQEC,IARF,EASEC,KATF,EAUEC,KAVF,EAWEC,KAXF,EAYEC,KAZF,EAaEC,MAbF,EAcEC,MAdF,EAeEC,MAfF,EAgBEC,KAhBF,EAiBEC,OAjBF,EAkBEC,OAlBF,EAmBEC,OAnBF,EAoBEC,IApBF,EAqBEC,IArBF,EAsBEC,OAtBF,EAuBEC,eAvBF,EAwBEC,IAxBF,EAyBEC,eAzBF,EA0BEC,UA1BF,EA2BEC,SA3BF,EA4BEC,eA5BF,EA6BEC,oBA7BF,EA8BEC,oBA9BF,EA+BEC,mBA/BF,EAgCEC,QAhCF,EAiCEC,eAjCF,EAkCEC,iBAlCF,EAmCEC,aAnCF,EAoCEC,MApCF,QAqCO,cArCP;AA0CA,SAAQC,oBAAR,EAA8BC,mBAA9B,QAAwD,uCAAxD;AACA,SAAQC,WAAR,QAA0B,2BAA1B;AACA,SAAQC,0BAAR,QAAyC,mCAAzC;AAEA,SAAQnD,OAAO,IAAIoD,UAAnB,QAAoC,yBAApC","sourcesContent":["// COMMON CATEGORY\nexport type {TypedArray, NumberArray, AnyArray} from './types';\n\nexport type {Batch} from './category/common';\n\n// TABLE CATEGORY TYPES\n\nexport type {\n Table,\n ArrayRowTable,\n ObjectRowTable,\n ColumnarTable,\n ArrowTable\n} from './category/table/table-types';\nexport type {\n TableBatch,\n RowArrayTableBatch,\n RowObjectTableBatch,\n ColumnarTableBatch,\n ArrowTableBatch\n} from './category/table/table-types';\n\n// TABLE CATEGORY UTILS\nexport {default as TableBatchBuilder} from './lib/batches/table-batch-builder';\nexport type {TableBatchAggregator} from './lib/batches/table-batch-aggregator';\nexport {default as RowTableBatchAggregator} from './lib/batches/row-table-batch-aggregator';\nexport {default as ColumnarTableBatchAggregator} from './lib/batches/columnar-table-batch-aggregator';\n\nexport {convertToObjectRow, convertToArrayRow} from './lib/utils/row-utils';\n\n// MESH CATEGORY\nexport type {\n MeshTable,\n MeshArrowTable,\n Mesh,\n MeshGeometry,\n MeshAttribute,\n MeshAttributes\n} from './category/mesh/mesh-types';\n\nexport {getMeshSize, getMeshBoundingBox} from './category/mesh/mesh-utils';\nexport {convertMesh} from './category/mesh/convert-mesh';\nexport {\n deduceMeshSchema,\n deduceMeshField,\n makeMeshAttributeMetadata\n} from './category/mesh/deduce-mesh-schema';\n\n// TYPES\n// GIS CATEGORY - GEOJSON\nexport type {GeoJSON, Feature, Geometry, Position, GeoJsonProperties} from './category/gis';\nexport type {\n Point,\n MultiPoint,\n LineString,\n MultiLineString,\n Polygon,\n MultiPolygon\n} from './category/gis';\n\n// GIS CATEGORY - BINARY\nexport type {\n BinaryGeometryType,\n BinaryGeometry,\n BinaryPointGeometry,\n BinaryLineGeometry,\n BinaryPolygonGeometry,\n BinaryAttribute\n} from './category/gis';\nexport type {\n BinaryFeatures,\n BinaryPointFeatures,\n BinaryLineFeatures,\n BinaryPolygonFeatures\n} from './category/gis';\n\n// SCHEMA\nexport {\n Schema,\n Field,\n DataType,\n Null,\n Binary,\n Bool,\n Int,\n Int8,\n Int16,\n Int32,\n Int64,\n Uint8,\n Uint16,\n Uint32,\n Uint64,\n Float,\n Float16,\n Float32,\n Float64,\n Utf8,\n Date,\n DateDay,\n DateMillisecond,\n Time,\n TimeMillisecond,\n TimeSecond,\n Timestamp,\n TimestampSecond,\n TimestampMillisecond,\n TimestampMicrosecond,\n TimestampNanosecond,\n Interval,\n IntervalDayTime,\n IntervalYearMonth,\n FixedSizeList,\n Struct\n} from './lib/schema';\n\n// EXPERIMENTAL APIs\n\n// SCHEMA UTILS\nexport {deduceTypeFromColumn, deduceTypeFromValue} from './lib/schema-utils/deduce-column-type';\nexport {getTypeInfo} from './lib/arrow/get-type-info';\nexport {getArrowTypeFromTypedArray} from './lib/arrow/arrow-like-type-utils';\n\nexport {default as AsyncQueue} from './lib/utils/async-queue';\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/arrow/arrow-like-type-utils.ts"],"names":["Float32","Float64","Int16","Int32","Int8","Uint16","Uint32","Uint8","getArrowTypeFromTypedArray","array","constructor","Int8Array","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","Error"],"mappings":"AACA,SAAkBA,OAAlB,EAA2BC,OAA3B,EAAoCC,KAApC,EAA2CC,KAA3C,EAAkDC,IAAlD,EAAwDC,MAAxD,EAAgEC,MAAhE,EAAwEC,KAAxE,QAAoF,WAApF;AAEA,OAAO,SAASC,0BAAT,CAAoCC,KAApC,EAAiE;AACtE,UAAQA,KAAK,CAACC,WAAd;AACE,SAAKC,SAAL;AACE,aAAO,IAAIP,IAAJ,EAAP;;AACF,SAAKQ,UAAL;AACE,aAAO,IAAIL,KAAJ,EAAP;;AACF,SAAKM,UAAL;AACE,aAAO,IAAIX,KAAJ,EAAP;;AACF,SAAKY,WAAL;AACE,aAAO,IAAIT,MAAJ,EAAP;;AACF,SAAKU,UAAL;AACE,aAAO,IAAIZ,KAAJ,EAAP;;AACF,SAAKa,WAAL;AACE,aAAO,IAAIV,MAAJ,EAAP;;AACF,SAAKW,YAAL;AACE,aAAO,IAAIjB,OAAJ,EAAP;;AACF,SAAKkB,YAAL;AACE,aAAO,IAAIjB,OAAJ,EAAP;;AACF;AACE,YAAM,IAAIkB,KAAJ,CAAU,0BAAV,CAAN;AAlBJ;AAoBD","sourcesContent":["import type {TypedArray} from '../../types';\nimport {DataType, Float32, Float64, Int16, Int32, Int8, Uint16, Uint32, Uint8} from '../schema';\n\nexport function getArrowTypeFromTypedArray(array: TypedArray): DataType {\n switch (array.constructor) {\n case Int8Array:\n return new Int8();\n case Uint8Array:\n return new Uint8();\n case Int16Array:\n return new Int16();\n case Uint16Array:\n return new Uint16();\n case Int32Array:\n return new Int32();\n case Uint32Array:\n return new Uint32();\n case Float32Array:\n return new Float32();\n case Float64Array:\n return new Float64();\n default:\n throw new Error('array type not supported');\n }\n}\n"],"file":"arrow-like-type-utils.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/arrow/arrow-type-utils.ts"],"names":["Float32","Float64","Int16","Int32","Int8","Uint16","Uint32","Uint8","Int8Vector","Uint8Vector","Int16Vector","Uint16Vector","Int32Vector","Uint32Vector","Float32Vector","Float64Vector","getArrowType","array","constructor","Int8Array","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","Error","getArrowVector","from"],"mappings":"AACA,SAEEA,OAFF,EAGEC,OAHF,EAIEC,KAJF,EAKEC,KALF,EAMEC,IANF,EAOEC,MAPF,EAQEC,MARF,EASEC,KATF,EAUEC,UAVF,EAWEC,WAXF,EAYEC,WAZF,EAaEC,YAbF,EAcEC,WAdF,EAeEC,YAfF,EAgBEC,aAhBF,EAiBEC,aAjBF,QAkBO,cAlBP;AAqBA,OAAO,SAASC,YAAT,CAAsBC,KAAtB,EAAmD;AACxD,UAAQA,KAAK,CAACC,WAAd;AACE,SAAKC,SAAL;AACE,aAAO,IAAIf,IAAJ,EAAP;;AACF,SAAKgB,UAAL;AACE,aAAO,IAAIb,KAAJ,EAAP;;AACF,SAAKc,UAAL;AACE,aAAO,IAAInB,KAAJ,EAAP;;AACF,SAAKoB,WAAL;AACE,aAAO,IAAIjB,MAAJ,EAAP;;AACF,SAAKkB,UAAL;AACE,aAAO,IAAIpB,KAAJ,EAAP;;AACF,SAAKqB,WAAL;AACE,aAAO,IAAIlB,MAAJ,EAAP;;AACF,SAAKmB,YAAL;AACE,aAAO,IAAIzB,OAAJ,EAAP;;AACF,SAAK0B,YAAL;AACE,aAAO,IAAIzB,OAAJ,EAAP;;AACF;AACE,YAAM,IAAI0B,KAAJ,CAAU,0BAAV,CAAN;AAlBJ;AAoBD;AAED,OAAO,SAASC,cAAT,CAAwBX,KAAxB,EAA2D;AAChE,UAAQA,KAAK,CAACC,WAAd;AACE,SAAKC,SAAL;AACE,aAAOX,UAAU,CAACqB,IAAX,CAAgBZ,KAAhB,CAAP;;AACF,SAAKG,UAAL;AACE,aAAOX,WAAW,CAACoB,IAAZ,CAAiBZ,KAAjB,CAAP;;AACF,SAAKI,UAAL;AACE,aAAOX,WAAW,CAACmB,IAAZ,CAAiBZ,KAAjB,CAAP;;AACF,SAAKK,WAAL;AACE,aAAOX,YAAY,CAACkB,IAAb,CAAkBZ,KAAlB,CAAP;;AACF,SAAKM,UAAL;AACE,aAAOX,WAAW,CAACiB,IAAZ,CAAiBZ,KAAjB,CAAP;;AACF,SAAKO,WAAL;AACE,aAAOX,YAAY,CAACgB,IAAb,CAAkBZ,KAAlB,CAAP;;AACF,SAAKQ,YAAL;AACE,aAAOX,aAAa,CAACe,IAAd,CAAmBZ,KAAnB,CAAP;;AACF,SAAKS,YAAL;AACE,aAAOX,aAAa,CAACc,IAAd,CAAmBZ,KAAnB,CAAP;;AACF;AACE,YAAM,IAAIU,KAAJ,CAAU,0BAAV,CAAN;AAlBJ;AAoBD","sourcesContent":["import type {TypedArray} from '../../types';\nimport {\n DataType,\n Float32,\n Float64,\n Int16,\n Int32,\n Int8,\n Uint16,\n Uint32,\n Uint8,\n Int8Vector,\n Uint8Vector,\n Int16Vector,\n Uint16Vector,\n Int32Vector,\n Uint32Vector,\n Float32Vector,\n Float64Vector\n} from 'apache-arrow';\nimport {AbstractVector} from 'apache-arrow/vector';\n\nexport function getArrowType(array: TypedArray): DataType {\n switch (array.constructor) {\n case Int8Array:\n return new Int8();\n case Uint8Array:\n return new Uint8();\n case Int16Array:\n return new Int16();\n case Uint16Array:\n return new Uint16();\n case Int32Array:\n return new Int32();\n case Uint32Array:\n return new Uint32();\n case Float32Array:\n return new Float32();\n case Float64Array:\n return new Float64();\n default:\n throw new Error('array type not supported');\n }\n}\n\nexport function getArrowVector(array: TypedArray): AbstractVector {\n switch (array.constructor) {\n case Int8Array:\n return Int8Vector.from(array);\n case Uint8Array:\n return Uint8Vector.from(array);\n case Int16Array:\n return Int16Vector.from(array);\n case Uint16Array:\n return Uint16Vector.from(array);\n case Int32Array:\n return Int32Vector.from(array);\n case Uint32Array:\n return Uint32Vector.from(array);\n case Float32Array:\n return Float32Vector.from(array);\n case Float64Array:\n return Float64Vector.from(array);\n default:\n throw new Error('array type not supported');\n }\n}\n"],"file":"arrow-type-utils.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/arrow/get-type-info.ts"],"names":["Type","getTypeInfo","arrowTypeLike","typeId","ArrayType","typeName","toString","typeEnumName","getTypeKey","precision","ReverseType","typeKey","key"],"mappings":"AAAA,SAAQA,IAAR,QAAmB,WAAnB;AAOA,OAAO,SAASC,WAAT,CAAqBC,aAArB,EAML;AACA,SAAO;AACLC,IAAAA,MAAM,EAAED,aAAa,CAACC,MADjB;AAELC,IAAAA,SAAS,EAAEF,aAAa,CAACE,SAFpB;AAGLC,IAAAA,QAAQ,EAAEH,aAAa,CAACI,QAAd,EAHL;AAILC,IAAAA,YAAY,EAAEC,UAAU,CAACN,aAAa,CAACC,MAAf,CAJnB;AAKLM,IAAAA,SAAS,EAAEP,aAAa,CAACO;AALpB,GAAP;AAOD;AAED,IAAIC,WAA2C,GAAG,IAAlD;;AAEA,SAASF,UAAT,CAAoBG,OAApB,EAA6B;AAC3B,MAAI,CAACD,WAAL,EAAkB;AAChBA,IAAAA,WAAW,GAAG,EAAd;;AACA,SAAK,MAAME,GAAX,IAAkBZ,IAAlB,EAAwB;AACtBU,MAAAA,WAAW,CAACV,IAAI,CAACY,GAAD,CAAL,CAAX,GAAyBA,GAAzB;AACD;AACF;;AAED,SAAOF,WAAW,CAACC,OAAD,CAAlB;AACD","sourcesContent":["import {Type} from '../schema';\nimport {AnyArray} from '../../types';\n\n/**\n * Gets type information from an Arrow type object or \"mock\" Arrow type object\n * @param arrowTypeLike Arrow Type or type object of similar shape\n */\nexport function getTypeInfo(arrowTypeLike: any): {\n typeId: Type;\n ArrayType: AnyArray;\n typeName: string;\n typeEnumName?: string;\n precision?: number;\n} {\n return {\n typeId: arrowTypeLike.typeId,\n ArrayType: arrowTypeLike.ArrayType,\n typeName: arrowTypeLike.toString(),\n typeEnumName: getTypeKey(arrowTypeLike.typeId),\n precision: arrowTypeLike.precision\n };\n}\n\nlet ReverseType: {[key: string]: string} | null = null;\n\nfunction getTypeKey(typeKey) {\n if (!ReverseType) {\n ReverseType = {};\n for (const key in Type) {\n ReverseType[Type[key]] = key;\n }\n }\n\n return ReverseType[typeKey];\n}\n"],"file":"get-type-info.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/batches/base-table-batch-aggregator.ts"],"names":["DEFAULT_ROW_COUNT","RowTableBatchAggregator","constructor","schema","options","Array","isArray","_headers","key","index","name","rowCount","length","addArrayRow","row","cursor","Number","isFinite","rows","addObjectRow","getBatch","slice","batch","shape","batchType","data"],"mappings":";AAIA,MAAMA,iBAAiB,GAAG,GAA1B;AAEA,eAAe,MAAMC,uBAAN,CAA8D;AAS3EC,EAAAA,WAAW,CAACC,MAAD,EAAiBC,OAAjB,EAA6C;AAAA;;AAAA;;AAAA,oCALvC,CAKuC;;AAAA,kCAJnC,IAImC;;AAAA,oCAHvC,CAGuC;;AAAA,sCAF3B,EAE2B;;AACtD,SAAKA,OAAL,GAAeA,OAAf;AACA,SAAKD,MAAL,GAAcA,MAAd;;AAIA,QAAI,CAACE,KAAK,CAACC,OAAN,CAAcH,MAAd,CAAL,EAA4B;AAC1B,WAAKI,QAAL,GAAgB,EAAhB;;AACA,WAAK,MAAMC,GAAX,IAAkBL,MAAlB,EAA0B;AACxB,aAAKI,QAAL,CAAcJ,MAAM,CAACK,GAAD,CAAN,CAAYC,KAA1B,IAAmCN,MAAM,CAACK,GAAD,CAAN,CAAYE,IAA/C;AACD;AACF;AACF;;AAEDC,EAAAA,QAAQ,GAAW;AACjB,WAAO,KAAKC,MAAZ;AACD;;AAEDC,EAAAA,WAAW,CAACC,GAAD,EAAaC,MAAb,EAAoC;AAC7C,QAAIC,MAAM,CAACC,QAAP,CAAgBF,MAAhB,CAAJ,EAA6B;AAC3B,WAAKA,MAAL,GAAcA,MAAd;AACD;;AAED,SAAKG,IAAL,GAAY,KAAKA,IAAL,IAAa,IAAIb,KAAJ,CAAUL,iBAAV,CAAzB;AACA,SAAKkB,IAAL,CAAU,KAAKN,MAAf,IAAyBE,GAAzB;AACA,SAAKF,MAAL;AACD;;AAEDO,EAAAA,YAAY,CAACL,GAAD,EAAmCC,MAAnC,EAA0D;AACpE,QAAIC,MAAM,CAACC,QAAP,CAAgBF,MAAhB,CAAJ,EAA6B;AAC3B,WAAKA,MAAL,GAAcA,MAAd;AACD;;AAED,SAAKG,IAAL,GAAY,KAAKA,IAAL,IAAa,IAAIb,KAAJ,CAAUL,iBAAV,CAAzB;AACA,SAAKkB,IAAL,CAAU,KAAKN,MAAf,IAAyBE,GAAzB;AACA,SAAKF,MAAL;AACD;;AAEDQ,EAAAA,QAAQ,GAAsB;AAC5B,QAAIF,IAAI,GAAG,KAAKA,IAAhB;;AACA,QAAI,CAACA,IAAL,EAAW;AACT,aAAO,IAAP;AACD;;AAEDA,IAAAA,IAAI,GAAGA,IAAI,CAACG,KAAL,CAAW,CAAX,EAAc,KAAKT,MAAnB,CAAP;AACA,SAAKM,IAAL,GAAY,IAAZ;AAEA,UAAMI,KAAiB,GAAG;AACxBC,MAAAA,KAAK,EAAE,KAAKnB,OAAL,CAAamB,KADI;AAExBC,MAAAA,SAAS,EAAE,MAFa;AAGxBC,MAAAA,IAAI,EAAEP,IAHkB;AAIxBN,MAAAA,MAAM,EAAE,KAAKA,MAJW;AAKxBT,MAAAA,MAAM,EAAE,KAAKA,MALW;AAMxBY,MAAAA,MAAM,EAAE,KAAKA;AANW,KAA1B;AASA,WAAOO,KAAP;AACD;;AAlE0E","sourcesContent":["import type {Schema} from '../schema';\nimport type {TableBatch} from '../../category/table/table-types';\nimport {TableBatchAggregator, TableBatchOptions} from './table-batch-aggregator';\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport default class RowTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n options: TableBatchOptions;\n\n length: number = 0;\n rows: any[] | null = null;\n cursor: number = 0;\n private _headers: string[] = [];\n\n constructor(schema: Schema, options: TableBatchOptions) {\n this.options = options;\n this.schema = schema;\n\n // schema is an array if there're no headers\n // object if there are headers\n if (!Array.isArray(schema)) {\n this._headers = [];\n for (const key in schema) {\n this._headers[schema[key].index] = schema[key].name;\n }\n }\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[], cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);\n this.rows[this.length] = row;\n this.length++;\n }\n\n addObjectRow(row: {[columnName: string]: any}, cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);\n this.rows[this.length] = row;\n this.length++;\n }\n\n getBatch(): TableBatch | null {\n let rows = this.rows;\n if (!rows) {\n return null;\n }\n\n rows = rows.slice(0, this.length);\n this.rows = null;\n\n const batch: TableBatch = {\n shape: this.options.shape,\n batchType: 'data',\n data: rows,\n length: this.length,\n schema: this.schema,\n cursor: this.cursor\n };\n\n return batch;\n }\n}\n"],"file":"base-table-batch-aggregator.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/batches/columnar-table-batch-aggregator.ts"],"names":["DEFAULT_ROW_COUNT","ColumnarTableBatchAggregator","constructor","schema","options","_reallocateColumns","rowCount","length","addArrayRow","row","i","fieldName","columns","addObjectRow","getBatch","_pruneColumns","Array","isArray","field","name","index","batch","shape","batchType","data","allocated","ArrayType","type","Float32Array","oldColumn","ArrayBuffer","isView","typedArray","set","columnName","column","Object","entries","slice"],"mappings":";AAMA,MAAMA,iBAAiB,GAAG,GAA1B;AAEA,eAAe,MAAMC,4BAAN,CAAmE;AAMhFC,EAAAA,WAAW,CAACC,MAAD,EAAiBC,OAAjB,EAAqD;AAAA;;AAAA,oCAJ/C,CAI+C;;AAAA,uCAH5C,CAG4C;;AAAA,qCAFvB,EAEuB;;AAC9D,SAAKD,MAAL,GAAcA,MAAd;;AACA,SAAKE,kBAAL;AACD;;AAEDC,EAAAA,QAAQ,GAAW;AACjB,WAAO,KAAKC,MAAZ;AACD;;AAEDC,EAAAA,WAAW,CAACC,GAAD,EAAa;AAEtB,SAAKJ,kBAAL;;AACA,QAAIK,CAAC,GAAG,CAAR;;AAEA,SAAK,MAAMC,SAAX,IAAwB,KAAKC,OAA7B,EAAsC;AACpC,WAAKA,OAAL,CAAaD,SAAb,EAAwB,KAAKJ,MAA7B,IAAuCE,GAAG,CAACC,CAAC,EAAF,CAA1C;AACD;;AACD,SAAKH,MAAL;AACD;;AAEDM,EAAAA,YAAY,CAACJ,GAAD,EAAyC;AAEnD,SAAKJ,kBAAL;;AACA,SAAK,MAAMM,SAAX,IAAwBF,GAAxB,EAA6B;AAC3B,WAAKG,OAAL,CAAaD,SAAb,EAAwB,KAAKJ,MAA7B,IAAuCE,GAAG,CAACE,SAAD,CAA1C;AACD;;AACD,SAAKJ,MAAL;AACD;;AAEDO,EAAAA,QAAQ,GAAgD;AACtD,SAAKC,aAAL;;AACA,UAAMH,OAAO,GAAGI,KAAK,CAACC,OAAN,CAAc,KAAKd,MAAnB,IAA6B,KAAKS,OAAlC,GAA4C,EAA5D;;AAKA,QAAI,CAACI,KAAK,CAACC,OAAN,CAAc,KAAKd,MAAnB,CAAL,EAAiC;AAC/B,WAAK,MAAMQ,SAAX,IAAwB,KAAKR,MAA7B,EAAqC;AACnC,cAAMe,KAAK,GAAG,KAAKf,MAAL,CAAYQ,SAAZ,CAAd;AACAC,QAAAA,OAAO,CAACM,KAAK,CAACC,IAAP,CAAP,GAAsB,KAAKP,OAAL,CAAaM,KAAK,CAACE,KAAnB,CAAtB;AACD;AACF;;AAED,SAAKR,OAAL,GAAe,EAAf;AAEA,UAAMS,KAAyB,GAAG;AAChCC,MAAAA,KAAK,EAAE,gBADyB;AAEhCC,MAAAA,SAAS,EAAE,MAFqB;AAGhCC,MAAAA,IAAI,EAAEZ,OAH0B;AAIhCT,MAAAA,MAAM,EAAE,KAAKA,MAJmB;AAKhCI,MAAAA,MAAM,EAAE,KAAKA;AALmB,KAAlC;AAQA,WAAOc,KAAP;AACD;;AAIDhB,EAAAA,kBAAkB,GAAG;AACnB,QAAI,KAAKE,MAAL,GAAc,KAAKkB,SAAvB,EAAkC;AAChC;AACD;;AAGD,SAAKA,SAAL,GAAiB,KAAKA,SAAL,GAAiB,CAAjB,GAAsB,KAAKA,SAAL,IAAkB,CAAxC,GAA6CzB,iBAA9D;AACA,SAAKY,OAAL,GAAe,EAAf;;AAEA,SAAK,MAAMD,SAAX,IAAwB,KAAKR,MAA7B,EAAqC;AACnC,YAAMe,KAAK,GAAG,KAAKf,MAAL,CAAYQ,SAAZ,CAAd;AACA,YAAMe,SAAS,GAAGR,KAAK,CAACS,IAAN,IAAcC,YAAhC;AACA,YAAMC,SAAS,GAAG,KAAKjB,OAAL,CAAaM,KAAK,CAACE,KAAnB,CAAlB;;AAEA,UAAIS,SAAS,IAAIC,WAAW,CAACC,MAAZ,CAAmBF,SAAnB,CAAjB,EAAgD;AAE9C,cAAMG,UAAU,GAAG,IAAIN,SAAJ,CAAc,KAAKD,SAAnB,CAAnB;AACAO,QAAAA,UAAU,CAACC,GAAX,CAAeJ,SAAf;AACA,aAAKjB,OAAL,CAAaM,KAAK,CAACE,KAAnB,IAA4BY,UAA5B;AACD,OALD,MAKO,IAAIH,SAAJ,EAAe;AAEpBA,QAAAA,SAAS,CAACtB,MAAV,GAAmB,KAAKkB,SAAxB;AACA,aAAKb,OAAL,CAAaM,KAAK,CAACE,KAAnB,IAA4BS,SAA5B;AACD,OAJM,MAIA;AAEL,aAAKjB,OAAL,CAAaM,KAAK,CAACE,KAAnB,IAA4B,IAAIM,SAAJ,CAAc,KAAKD,SAAnB,CAA5B;AACD;AACF;AACF;;AAEDV,EAAAA,aAAa,GAAG;AACd,SAAK,MAAM,CAACmB,UAAD,EAAaC,MAAb,CAAX,IAAmCC,MAAM,CAACC,OAAP,CAAe,KAAKzB,OAApB,CAAnC,EAAiE;AAC/D,WAAKA,OAAL,CAAasB,UAAb,IAA2BC,MAAM,CAACG,KAAP,CAAa,CAAb,EAAgB,KAAK/B,MAArB,CAA3B;AACD;AACF;;AAlG+E","sourcesContent":["import type {Schema} from '../schema';\nimport type {ColumnarTableBatch, ArrowTableBatch} from '../../category/table/table-types';\nimport {TableBatchAggregator} from './table-batch-aggregator';\n\ntype ColumnarTableBatchOptions = {};\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport default class ColumnarTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n length: number = 0;\n allocated: number = 0;\n columns: {[columnName: string]: any[]} = {};\n\n constructor(schema: Schema, options: ColumnarTableBatchOptions) {\n this.schema = schema;\n this._reallocateColumns();\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[]) {\n // If user keeps pushing rows beyond batch size, reallocate\n this._reallocateColumns();\n let i = 0;\n // TODO what if no csv header, columns not populated?\n for (const fieldName in this.columns) {\n this.columns[fieldName][this.length] = row[i++];\n }\n this.length++;\n }\n\n addObjectRow(row: {[columnName: string]: any}): void {\n // If user keeps pushing rows beyond batch size, reallocate\n this._reallocateColumns();\n for (const fieldName in row) {\n this.columns[fieldName][this.length] = row[fieldName];\n }\n this.length++;\n }\n\n getBatch(): ColumnarTableBatch | ArrowTableBatch | null {\n this._pruneColumns();\n const columns = Array.isArray(this.schema) ? this.columns : {};\n\n // schema is an array if there're no headers\n // object if there are headers\n // columns should match schema format\n if (!Array.isArray(this.schema)) {\n for (const fieldName in this.schema) {\n const field = this.schema[fieldName];\n columns[field.name] = this.columns[field.index];\n }\n }\n\n this.columns = {};\n\n const batch: ColumnarTableBatch = {\n shape: 'columnar-table',\n batchType: 'data',\n data: columns,\n schema: this.schema,\n length: this.length\n };\n\n return batch;\n }\n\n // HELPERS\n\n _reallocateColumns() {\n if (this.length < this.allocated) {\n return;\n }\n\n // @ts-ignore TODO\n this.allocated = this.allocated > 0 ? (this.allocated *= 2) : DEFAULT_ROW_COUNT;\n this.columns = {};\n\n for (const fieldName in this.schema) {\n const field = this.schema[fieldName];\n const ArrayType = field.type || Float32Array;\n const oldColumn = this.columns[field.index];\n\n if (oldColumn && ArrayBuffer.isView(oldColumn)) {\n // Copy the old data to the new array\n const typedArray = new ArrayType(this.allocated);\n typedArray.set(oldColumn);\n this.columns[field.index] = typedArray;\n } else if (oldColumn) {\n // Plain array\n oldColumn.length = this.allocated;\n this.columns[field.index] = oldColumn;\n } else {\n // Create new\n this.columns[field.index] = new ArrayType(this.allocated);\n }\n }\n }\n\n _pruneColumns() {\n for (const [columnName, column] of Object.entries(this.columns)) {\n this.columns[columnName] = column.slice(0, this.length);\n }\n }\n}\n"],"file":"columnar-table-batch-aggregator.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/batches/row-table-batch-aggregator.ts"],"names":["convertToArrayRow","convertToObjectRow","DEFAULT_ROW_COUNT","RowTableBatchAggregator","constructor","schema","options","Array","isArray","_headers","key","index","name","rowCount","length","addArrayRow","row","cursor","Number","isFinite","shape","rowObject","addObjectRow","arrayRows","rowArray","objectRows","getBatch","rows","slice","batchType","data"],"mappings":";AAGA,SAAQA,iBAAR,EAA2BC,kBAA3B,QAAoD,oBAApD;AAGA,MAAMC,iBAAiB,GAAG,GAA1B;AAEA,eAAe,MAAMC,uBAAN,CAA8D;AAU3EC,EAAAA,WAAW,CAACC,MAAD,EAAiBC,OAAjB,EAA6C;AAAA;;AAAA;;AAAA,oCANvC,CAMuC;;AAAA,wCALP,IAKO;;AAAA,uCAJ9B,IAI8B;;AAAA,oCAHvC,CAGuC;;AAAA,sCAF3B,EAE2B;;AACtD,SAAKA,OAAL,GAAeA,OAAf;AACA,SAAKD,MAAL,GAAcA,MAAd;;AAIA,QAAI,CAACE,KAAK,CAACC,OAAN,CAAcH,MAAd,CAAL,EAA4B;AAC1B,WAAKI,QAAL,GAAgB,EAAhB;;AACA,WAAK,MAAMC,GAAX,IAAkBL,MAAlB,EAA0B;AACxB,aAAKI,QAAL,CAAcJ,MAAM,CAACK,GAAD,CAAN,CAAYC,KAA1B,IAAmCN,MAAM,CAACK,GAAD,CAAN,CAAYE,IAA/C;AACD;AACF;AACF;;AAEDC,EAAAA,QAAQ,GAAW;AACjB,WAAO,KAAKC,MAAZ;AACD;;AAEDC,EAAAA,WAAW,CAACC,GAAD,EAAaC,MAAb,EAAoC;AAC7C,QAAIC,MAAM,CAACC,QAAP,CAAgBF,MAAhB,CAAJ,EAA6B;AAC3B,WAAKA,MAAL,GAAcA,MAAd;AACD;;AAGD,YAAQ,KAAKX,OAAL,CAAac,KAArB;AACE,WAAK,kBAAL;AACE,cAAMC,SAAS,GAAGpB,kBAAkB,CAACe,GAAD,EAAM,KAAKP,QAAX,CAApC;AACA,aAAKa,YAAL,CAAkBD,SAAlB,EAA6BJ,MAA7B;AACA;;AACF,WAAK,iBAAL;AACE,aAAKM,SAAL,GAAiB,KAAKA,SAAL,IAAkB,IAAIhB,KAAJ,CAAUL,iBAAV,CAAnC;AACA,aAAKqB,SAAL,CAAe,KAAKT,MAApB,IAA8BE,GAA9B;AACA,aAAKF,MAAL;AACA;AATJ;AAWD;;AAEDQ,EAAAA,YAAY,CAACN,GAAD,EAAmCC,MAAnC,EAA0D;AACpE,QAAIC,MAAM,CAACC,QAAP,CAAgBF,MAAhB,CAAJ,EAA6B;AAC3B,WAAKA,MAAL,GAAcA,MAAd;AACD;;AAGD,YAAQ,KAAKX,OAAL,CAAac,KAArB;AACE,WAAK,iBAAL;AACE,cAAMI,QAAQ,GAAGxB,iBAAiB,CAACgB,GAAD,EAAM,KAAKP,QAAX,CAAlC;AACA,aAAKM,WAAL,CAAiBS,QAAjB,EAA2BP,MAA3B;AACA;;AACF,WAAK,kBAAL;AACE,aAAKQ,UAAL,GAAkB,KAAKA,UAAL,IAAmB,IAAIlB,KAAJ,CAAUL,iBAAV,CAArC;AACA,aAAKuB,UAAL,CAAgB,KAAKX,MAArB,IAA+BE,GAA/B;AACA,aAAKF,MAAL;AACA;AATJ;AAWD;;AAEDY,EAAAA,QAAQ,GAAsB;AAC5B,QAAIC,IAAI,GAAG,KAAKJ,SAAL,IAAkB,KAAKE,UAAlC;;AACA,QAAI,CAACE,IAAL,EAAW;AACT,aAAO,IAAP;AACD;;AAEDA,IAAAA,IAAI,GAAGA,IAAI,CAACC,KAAL,CAAW,CAAX,EAAc,KAAKd,MAAnB,CAAP;AACA,SAAKS,SAAL,GAAiB,IAAjB;AACA,SAAKE,UAAL,GAAkB,IAAlB;AAEA,WAAO;AACLL,MAAAA,KAAK,EAAE,KAAKd,OAAL,CAAac,KADf;AAELS,MAAAA,SAAS,EAAE,MAFN;AAGLC,MAAAA,IAAI,EAAEH,IAHD;AAILb,MAAAA,MAAM,EAAE,KAAKA,MAJR;AAKLT,MAAAA,MAAM,EAAE,KAAKA,MALR;AAMLY,MAAAA,MAAM,EAAE,KAAKA;AANR,KAAP;AAQD;;AApF0E","sourcesContent":["import type {Schema} from '../schema';\nimport type {TableBatch} from '../../category/table/table-types';\n// import type {ArrayRowTableBatch, ObjectRowTableBatch} from '../../category/table';\nimport {convertToArrayRow, convertToObjectRow} from '../utils/row-utils';\nimport {TableBatchAggregator, TableBatchOptions} from './table-batch-aggregator';\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport default class RowTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n options: TableBatchOptions;\n\n length: number = 0;\n objectRows: {[columnName: string]: any} | null = null;\n arrayRows: any[] | null = null;\n cursor: number = 0;\n private _headers: string[] = [];\n\n constructor(schema: Schema, options: TableBatchOptions) {\n this.options = options;\n this.schema = schema;\n\n // schema is an array if there're no headers\n // object if there are headers\n if (!Array.isArray(schema)) {\n this._headers = [];\n for (const key in schema) {\n this._headers[schema[key].index] = schema[key].name;\n }\n }\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[], cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n // eslint-disable-next-line default-case\n switch (this.options.shape) {\n case 'object-row-table':\n const rowObject = convertToObjectRow(row, this._headers);\n this.addObjectRow(rowObject, cursor);\n break;\n case 'array-row-table':\n this.arrayRows = this.arrayRows || new Array(DEFAULT_ROW_COUNT);\n this.arrayRows[this.length] = row;\n this.length++;\n break;\n }\n }\n\n addObjectRow(row: {[columnName: string]: any}, cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n // eslint-disable-next-line default-case\n switch (this.options.shape) {\n case 'array-row-table':\n const rowArray = convertToArrayRow(row, this._headers);\n this.addArrayRow(rowArray, cursor);\n break;\n case 'object-row-table':\n this.objectRows = this.objectRows || new Array(DEFAULT_ROW_COUNT);\n this.objectRows[this.length] = row;\n this.length++;\n break;\n }\n }\n\n getBatch(): TableBatch | null {\n let rows = this.arrayRows || this.objectRows;\n if (!rows) {\n return null;\n }\n\n rows = rows.slice(0, this.length);\n this.arrayRows = null;\n this.objectRows = null;\n\n return {\n shape: this.options.shape,\n batchType: 'data',\n data: rows,\n length: this.length,\n schema: this.schema,\n cursor: this.cursor\n };\n }\n}\n"],"file":"row-table-batch-aggregator.js"}
|