apache-arrow
Version:
Apache Arrow columnar in-memory format
322 lines (321 loc) • 19.5 kB
TypeScript
import { Data } from './data';
import { Type } from './enum';
import * as type from './type';
import { DataType } from './type';
import * as vecs from './vector/index';
import * as builders from './builder/index';
import { BuilderOptions } from './builder/index';
/** @ignore */ declare type FloatArray = Float32Array | Float64Array;
/** @ignore */ declare type IntArray = Int8Array | Int16Array | Int32Array;
/** @ignore */ declare type UintArray = Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray;
/** @ignore */
export declare type TypedArray = FloatArray | IntArray | UintArray;
/** @ignore */
export declare type BigIntArray = BigInt64Array | BigUint64Array;
/** @ignore */
export interface TypedArrayConstructor<T extends TypedArray> {
readonly prototype: T;
new (length?: number): T;
new (array: Iterable<number>): T;
new (buffer: ArrayBufferLike, byteOffset?: number, length?: number): T;
/**
* The size in bytes of each element in the array.
*/
readonly BYTES_PER_ELEMENT: number;
/**
* Returns a new array from a set of elements.
* @param items A set of elements to include in the new array object.
*/
of(...items: number[]): T;
/**
* Creates an array from an array-like or iterable object.
* @param arrayLike An array-like or iterable object to convert to an array.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
from(arrayLike: ArrayLike<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): T;
from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => number, thisArg?: any): T;
}
/** @ignore */
export interface BigIntArrayConstructor<T extends BigIntArray> {
readonly prototype: T;
new (length?: number): T;
new (array: Iterable<bigint>): T;
new (buffer: ArrayBufferLike, byteOffset?: number, length?: number): T;
/**
* The size in bytes of each element in the array.
*/
readonly BYTES_PER_ELEMENT: number;
/**
* Returns a new array from a set of elements.
* @param items A set of elements to include in the new array object.
*/
of(...items: bigint[]): T;
/**
* Creates an array from an array-like or iterable object.
* @param arrayLike An array-like or iterable object to convert to an array.
* @param mapfn A mapping function to call on every element of the array.
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
from(arrayLike: ArrayLike<bigint>, mapfn?: (v: bigint, k: number) => bigint, thisArg?: any): T;
from<U>(arrayLike: ArrayLike<U>, mapfn: (v: U, k: number) => bigint, thisArg?: any): T;
}
/** @ignore */
export declare type VectorCtorArgs<T extends VectorType<R>, R extends DataType = any, TArgs extends any[] = any[], TCtor extends new (data: Data<R>, ...args: TArgs) => T = new (data: Data<R>, ...args: TArgs) => T> = TCtor extends new (data: Data<R>, ...args: infer TArgs) => T ? TArgs : never;
/** @ignore */
export declare type BuilderCtorArgs<T extends BuilderType<R, any>, R extends DataType = any, TArgs extends any[] = any[], TCtor extends new (type: R, ...args: TArgs) => T = new (type: R, ...args: TArgs) => T> = TCtor extends new (type: R, ...args: infer TArgs) => T ? TArgs : never;
/**
* Obtain the constructor function of an instance type
* @ignore
*/
export declare type ConstructorType<T, TCtor extends new (...args: any[]) => T = new (...args: any[]) => T> = TCtor extends new (...args: any[]) => T ? TCtor : never;
/** @ignore */
export declare type VectorCtorType<T extends VectorType<R>, R extends DataType = any, TCtor extends new (type: R, data?: Data<R>[], offsets?: Uint32Array) => T = new (type: R, data?: Data<R>[], offsets?: Uint32Array) => T> = TCtor extends new (type: R, data?: Data<R>[], offsets?: Uint32Array) => T ? TCtor : never;
/** @ignore */
export declare type BuilderCtorType<T extends BuilderType<R, any>, R extends DataType = any, TCtor extends new (options: BuilderOptions<R, any>) => T = new (options: BuilderOptions<R, any>) => T> = TCtor extends new (options: BuilderOptions<R, any>) => T ? TCtor : never;
/** @ignore */
export declare type VectorType<T extends Type | DataType = any> = T extends Type ? TypeToVector<T> : T extends DataType ? DataTypeToVector<T> : vecs.BaseVector<any>;
/** @ignore */
export declare type BuilderType<T extends Type | DataType = any, TNull = any> = T extends Type ? TypeToBuilder<T, TNull> : T extends DataType ? DataTypeToBuilder<T, TNull> : builders.Builder<any, TNull>;
/** @ignore */
export declare type VectorCtor<T extends Type | DataType | VectorType> = T extends VectorType ? VectorCtorType<VectorType<T['TType']>> : T extends Type ? VectorCtorType<VectorType<T>> : T extends DataType ? VectorCtorType<VectorType<T['TType']>> : VectorCtorType<vecs.BaseVector<any>>;
/** @ignore */
export declare type BuilderCtor<T extends Type | DataType = any> = T extends Type ? BuilderCtorType<BuilderType<T>> : T extends DataType ? BuilderCtorType<BuilderType<T>> : BuilderCtorType<builders.Builder>;
/** @ignore */
export declare type DataTypeCtor<T extends Type | DataType | VectorType = any> = T extends DataType ? ConstructorType<T> : T extends VectorType ? ConstructorType<T['type']> : T extends Type ? ConstructorType<TypeToDataType<T>> : never;
/** @ignore */
declare type TypeToVector<T extends Type> = {
[]: vecs.Vector<any>;
[]: vecs.NullVector;
[]: vecs.BoolVector;
[]: vecs.Int8Vector;
[]: vecs.Int16Vector;
[]: vecs.Int32Vector;
[]: vecs.Int64Vector;
[]: vecs.Uint8Vector;
[]: vecs.Uint16Vector;
[]: vecs.Uint32Vector;
[]: vecs.Uint64Vector;
[]: vecs.IntVector;
[]: vecs.Float16Vector;
[]: vecs.Float32Vector;
[]: vecs.Float64Vector;
[]: vecs.FloatVector;
[]: vecs.Utf8Vector;
[]: vecs.BinaryVector;
[]: vecs.FixedSizeBinaryVector;
[]: vecs.DateVector;
[]: vecs.DateDayVector;
[]: vecs.DateMillisecondVector;
[]: vecs.TimestampVector;
[]: vecs.TimestampSecondVector;
[]: vecs.TimestampMillisecondVector;
[]: vecs.TimestampMicrosecondVector;
[]: vecs.TimestampNanosecondVector;
[]: vecs.TimeVector;
[]: vecs.TimeSecondVector;
[]: vecs.TimeMillisecondVector;
[]: vecs.TimeMicrosecondVector;
[]: vecs.TimeNanosecondVector;
[]: vecs.DecimalVector;
[]: vecs.UnionVector;
[]: vecs.DenseUnionVector;
[]: vecs.SparseUnionVector;
[]: vecs.IntervalVector;
[]: vecs.IntervalDayTimeVector;
[]: vecs.IntervalYearMonthVector;
[]: vecs.MapVector;
[]: vecs.ListVector;
[]: vecs.StructVector;
[]: vecs.DictionaryVector;
[]: vecs.FixedSizeListVector;
}[T];
/** @ignore */
declare type DataTypeToVector<T extends DataType = any> = {
[]: vecs.Vector<any>;
[]: T extends type.Null ? vecs.NullVector : never;
[]: T extends type.Bool ? vecs.BoolVector : never;
[]: T extends type.Int8 ? vecs.Int8Vector : never;
[]: T extends type.Int16 ? vecs.Int16Vector : never;
[]: T extends type.Int32 ? vecs.Int32Vector : never;
[]: T extends type.Int64 ? vecs.Int64Vector : never;
[]: T extends type.Uint8 ? vecs.Uint8Vector : never;
[]: T extends type.Uint16 ? vecs.Uint16Vector : never;
[]: T extends type.Uint32 ? vecs.Uint32Vector : never;
[]: T extends type.Uint64 ? vecs.Uint64Vector : never;
[]: T extends type.Int ? vecs.IntVector : never;
[]: T extends type.Float16 ? vecs.Float16Vector : never;
[]: T extends type.Float32 ? vecs.Float32Vector : never;
[]: T extends type.Float64 ? vecs.Float64Vector : never;
[]: T extends type.Float ? vecs.FloatVector : never;
[]: T extends type.Utf8 ? vecs.Utf8Vector : never;
[]: T extends type.Binary ? vecs.BinaryVector : never;
[]: T extends type.FixedSizeBinary ? vecs.FixedSizeBinaryVector : never;
[]: T extends type.Date_ ? vecs.DateVector : never;
[]: T extends type.DateDay ? vecs.DateDayVector : never;
[]: T extends type.DateMillisecond ? vecs.DateMillisecondVector : never;
[]: T extends type.Timestamp ? vecs.TimestampVector : never;
[]: T extends type.TimestampSecond ? vecs.TimestampSecondVector : never;
[]: T extends type.TimestampMillisecond ? vecs.TimestampMillisecondVector : never;
[]: T extends type.TimestampMicrosecond ? vecs.TimestampMicrosecondVector : never;
[]: T extends type.TimestampNanosecond ? vecs.TimestampNanosecondVector : never;
[]: T extends type.Time ? vecs.TimeVector : never;
[]: T extends type.TimeSecond ? vecs.TimeSecondVector : never;
[]: T extends type.TimeMillisecond ? vecs.TimeMillisecondVector : never;
[]: T extends type.TimeMicrosecond ? vecs.TimeMicrosecondVector : never;
[]: T extends type.TimeNanosecond ? vecs.TimeNanosecondVector : never;
[]: T extends type.Decimal ? vecs.DecimalVector : never;
[]: T extends type.Union ? vecs.UnionVector : never;
[]: T extends type.DenseUnion ? vecs.DenseUnionVector : never;
[]: T extends type.SparseUnion ? vecs.SparseUnionVector : never;
[]: T extends type.Interval ? vecs.IntervalVector : never;
[]: T extends type.IntervalDayTime ? vecs.IntervalDayTimeVector : never;
[]: T extends type.IntervalYearMonth ? vecs.IntervalYearMonthVector : never;
[]: T extends type.Map_ ? vecs.MapVector<T['keyType'], T['valueType']> : never;
[]: T extends type.List ? vecs.ListVector<T['valueType']> : never;
[]: T extends type.Struct ? vecs.StructVector<T['dataTypes']> : never;
[]: T extends type.Dictionary ? vecs.DictionaryVector<T['valueType'], T['indices']> : never;
[]: T extends type.FixedSizeList ? vecs.FixedSizeListVector<T['valueType']> : never;
}[T['TType']];
/** @ignore */
export declare type TypeToDataType<T extends Type> = {
[]: type.DataType;
[]: type.Null;
[]: type.Bool;
[]: type.Int;
[]: type.Int16;
[]: type.Int32;
[]: type.Int64;
[]: type.Uint8;
[]: type.Uint16;
[]: type.Uint32;
[]: type.Uint64;
[]: type.Int8;
[]: type.Float16;
[]: type.Float32;
[]: type.Float64;
[]: type.Float;
[]: type.Utf8;
[]: type.Binary;
[]: type.FixedSizeBinary;
[]: type.Date_;
[]: type.DateDay;
[]: type.DateMillisecond;
[]: type.Timestamp;
[]: type.TimestampSecond;
[]: type.TimestampMillisecond;
[]: type.TimestampMicrosecond;
[]: type.TimestampNanosecond;
[]: type.Time;
[]: type.TimeSecond;
[]: type.TimeMillisecond;
[]: type.TimeMicrosecond;
[]: type.TimeNanosecond;
[]: type.Decimal;
[]: type.Union;
[]: type.DenseUnion;
[]: type.SparseUnion;
[]: type.Interval;
[]: type.IntervalDayTime;
[]: type.IntervalYearMonth;
[]: type.Map_;
[]: type.List;
[]: type.Struct;
[]: type.Dictionary;
[]: type.FixedSizeList;
}[T];
/** @ignore */
declare type TypeToBuilder<T extends Type = any, TNull = any> = {
[]: builders.Builder;
[]: builders.NullBuilder<TNull>;
[]: builders.BoolBuilder<TNull>;
[]: builders.Int8Builder<TNull>;
[]: builders.Int16Builder<TNull>;
[]: builders.Int32Builder<TNull>;
[]: builders.Int64Builder<TNull>;
[]: builders.Uint8Builder<TNull>;
[]: builders.Uint16Builder<TNull>;
[]: builders.Uint32Builder<TNull>;
[]: builders.Uint64Builder<TNull>;
[]: builders.IntBuilder<any, TNull>;
[]: builders.Float16Builder<TNull>;
[]: builders.Float32Builder<TNull>;
[]: builders.Float64Builder<TNull>;
[]: builders.FloatBuilder<any, TNull>;
[]: builders.Utf8Builder<TNull>;
[]: builders.BinaryBuilder<TNull>;
[]: builders.FixedSizeBinaryBuilder<TNull>;
[]: builders.DateBuilder<any, TNull>;
[]: builders.DateDayBuilder<TNull>;
[]: builders.DateMillisecondBuilder<TNull>;
[]: builders.TimestampBuilder<any, TNull>;
[]: builders.TimestampSecondBuilder<TNull>;
[]: builders.TimestampMillisecondBuilder<TNull>;
[]: builders.TimestampMicrosecondBuilder<TNull>;
[]: builders.TimestampNanosecondBuilder<TNull>;
[]: builders.TimeBuilder<any, TNull>;
[]: builders.TimeSecondBuilder<TNull>;
[]: builders.TimeMillisecondBuilder<TNull>;
[]: builders.TimeMicrosecondBuilder<TNull>;
[]: builders.TimeNanosecondBuilder<TNull>;
[]: builders.DecimalBuilder<TNull>;
[]: builders.UnionBuilder<any, TNull>;
[]: builders.DenseUnionBuilder<any, TNull>;
[]: builders.SparseUnionBuilder<any, TNull>;
[]: builders.IntervalBuilder<any, TNull>;
[]: builders.IntervalDayTimeBuilder<TNull>;
[]: builders.IntervalYearMonthBuilder<TNull>;
[]: builders.MapBuilder<any, any, TNull>;
[]: builders.ListBuilder<any, TNull>;
[]: builders.StructBuilder<any, TNull>;
[]: builders.DictionaryBuilder<any, TNull>;
[]: builders.FixedSizeListBuilder<any, TNull>;
}[T];
/** @ignore */
declare type DataTypeToBuilder<T extends DataType = any, TNull = any> = {
[]: builders.Builder<any, TNull>;
[]: T extends type.Null ? builders.NullBuilder<TNull> : never;
[]: T extends type.Bool ? builders.BoolBuilder<TNull> : never;
[]: T extends type.Int8 ? builders.Int8Builder<TNull> : never;
[]: T extends type.Int16 ? builders.Int16Builder<TNull> : never;
[]: T extends type.Int32 ? builders.Int32Builder<TNull> : never;
[]: T extends type.Int64 ? builders.Int64Builder<TNull> : never;
[]: T extends type.Uint8 ? builders.Uint8Builder<TNull> : never;
[]: T extends type.Uint16 ? builders.Uint16Builder<TNull> : never;
[]: T extends type.Uint32 ? builders.Uint32Builder<TNull> : never;
[]: T extends type.Uint64 ? builders.Uint64Builder<TNull> : never;
[]: T extends type.Int ? builders.IntBuilder<T, TNull> : never;
[]: T extends type.Float16 ? builders.Float16Builder<TNull> : never;
[]: T extends type.Float32 ? builders.Float32Builder<TNull> : never;
[]: T extends type.Float64 ? builders.Float64Builder<TNull> : never;
[]: T extends type.Float ? builders.FloatBuilder<T, TNull> : never;
[]: T extends type.Utf8 ? builders.Utf8Builder<TNull> : never;
[]: T extends type.Binary ? builders.BinaryBuilder<TNull> : never;
[]: T extends type.FixedSizeBinary ? builders.FixedSizeBinaryBuilder<TNull> : never;
[]: T extends type.Date_ ? builders.DateBuilder<T, TNull> : never;
[]: T extends type.DateDay ? builders.DateDayBuilder<TNull> : never;
[]: T extends type.DateMillisecond ? builders.DateMillisecondBuilder<TNull> : never;
[]: T extends type.Timestamp ? builders.TimestampBuilder<T, TNull> : never;
[]: T extends type.TimestampSecond ? builders.TimestampSecondBuilder<TNull> : never;
[]: T extends type.TimestampMillisecond ? builders.TimestampMillisecondBuilder<TNull> : never;
[]: T extends type.TimestampMicrosecond ? builders.TimestampMicrosecondBuilder<TNull> : never;
[]: T extends type.TimestampNanosecond ? builders.TimestampNanosecondBuilder<TNull> : never;
[]: T extends type.Time ? builders.TimeBuilder<T, TNull> : never;
[]: T extends type.TimeSecond ? builders.TimeSecondBuilder<TNull> : never;
[]: T extends type.TimeMillisecond ? builders.TimeMillisecondBuilder<TNull> : never;
[]: T extends type.TimeMicrosecond ? builders.TimeMicrosecondBuilder<TNull> : never;
[]: T extends type.TimeNanosecond ? builders.TimeNanosecondBuilder<TNull> : never;
[]: T extends type.Decimal ? builders.DecimalBuilder<TNull> : never;
[]: T extends type.Union ? builders.UnionBuilder<T, TNull> : never;
[]: T extends type.DenseUnion ? builders.DenseUnionBuilder<T, TNull> : never;
[]: T extends type.SparseUnion ? builders.SparseUnionBuilder<T, TNull> : never;
[]: T extends type.Interval ? builders.IntervalBuilder<T, TNull> : never;
[]: T extends type.IntervalDayTime ? builders.IntervalDayTimeBuilder<TNull> : never;
[]: T extends type.IntervalYearMonth ? builders.IntervalYearMonthBuilder<TNull> : never;
[]: T extends type.Map_ ? builders.MapBuilder<T['keyType'], T['valueType'], TNull> : never;
[]: T extends type.List ? builders.ListBuilder<T['valueType'], TNull> : never;
[]: T extends type.Struct ? builders.StructBuilder<T['dataTypes'], TNull> : never;
[]: T extends type.Dictionary ? builders.DictionaryBuilder<T, TNull> : never;
[]: T extends type.FixedSizeList ? builders.FixedSizeListBuilder<T['valueType'], TNull> : never;
}[T['TType']];
export {};