@loaders.gl/schema 4.0.2 → 4.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dist.dev.js CHANGED
@@ -86,8 +86,9 @@ var __exports__ = (() => {
86
86
  getTableRowAsObject: () => getTableRowAsObject,
87
87
  getTableRowShape: () => getTableRowShape,
88
88
  getTypeInfo: () => getTypeInfo,
89
+ isTable: () => isTable,
89
90
  makeArrayRowIterator: () => makeArrayRowIterator,
90
- makeBatchesFromTable: () => makeBatchesFromTable,
91
+ makeBatchFromTable: () => makeBatchFromTable,
91
92
  makeMeshAttributeMetadata: () => makeMeshAttributeMetadata,
92
93
  makeObjectRowIterator: () => makeObjectRowIterator,
93
94
  makeRowIterator: () => makeRowIterator,
@@ -459,6 +460,22 @@ var __exports__ = (() => {
459
460
  };
460
461
 
461
462
  // src/lib/table/simple-table/table-accessors.ts
463
+ function isTable(table) {
464
+ const shape = typeof table === "object" && table?.shape;
465
+ switch (shape) {
466
+ case "array-row-table":
467
+ case "object-row-table":
468
+ return Array.isArray(table.data);
469
+ case "geojson-table":
470
+ return Array.isArray(table.features);
471
+ case "columnar-table":
472
+ return table.data && typeof table.data === "object";
473
+ case "arrow-table":
474
+ return Boolean(table?.data?.numRows !== void 0);
475
+ default:
476
+ return false;
477
+ }
478
+ }
462
479
  function getTableLength(table) {
463
480
  switch (table.shape) {
464
481
  case "array-row-table":
@@ -998,8 +1015,8 @@ var __exports__ = (() => {
998
1015
  }
999
1016
 
1000
1017
  // src/lib/table/simple-table/make-table-from-batches.ts
1001
- function* makeBatchesFromTable(table) {
1002
- yield {
1018
+ function makeBatchFromTable(table) {
1019
+ return {
1003
1020
  ...table,
1004
1021
  length: getTableLength(table),
1005
1022
  batchType: "data"
package/dist/index.cjs CHANGED
@@ -79,8 +79,9 @@ __export(src_exports, {
79
79
  getTableRowAsObject: () => getTableRowAsObject,
80
80
  getTableRowShape: () => getTableRowShape,
81
81
  getTypeInfo: () => getTypeInfo,
82
+ isTable: () => isTable,
82
83
  makeArrayRowIterator: () => makeArrayRowIterator,
83
- makeBatchesFromTable: () => makeBatchesFromTable,
84
+ makeBatchFromTable: () => makeBatchFromTable,
84
85
  makeMeshAttributeMetadata: () => makeMeshAttributeMetadata,
85
86
  makeObjectRowIterator: () => makeObjectRowIterator,
86
87
  makeRowIterator: () => makeRowIterator,
@@ -460,6 +461,23 @@ var TableBatchBuilder = class {
460
461
  };
461
462
 
462
463
  // src/lib/table/simple-table/table-accessors.ts
464
+ function isTable(table) {
465
+ var _a;
466
+ const shape = typeof table === "object" && (table == null ? void 0 : table.shape);
467
+ switch (shape) {
468
+ case "array-row-table":
469
+ case "object-row-table":
470
+ return Array.isArray(table.data);
471
+ case "geojson-table":
472
+ return Array.isArray(table.features);
473
+ case "columnar-table":
474
+ return table.data && typeof table.data === "object";
475
+ case "arrow-table":
476
+ return Boolean(((_a = table == null ? void 0 : table.data) == null ? void 0 : _a.numRows) !== void 0);
477
+ default:
478
+ return false;
479
+ }
480
+ }
463
481
  function getTableLength(table) {
464
482
  switch (table.shape) {
465
483
  case "array-row-table":
@@ -988,8 +1006,8 @@ function getTableShapeFromData(data) {
988
1006
 
989
1007
  // src/lib/table/simple-table/make-table-from-batches.ts
990
1008
  var import_schema = require("@loaders.gl/schema");
991
- function* makeBatchesFromTable(table) {
992
- yield { ...table, length: (0, import_schema.getTableLength)(table), batchType: "data" };
1009
+ function makeBatchFromTable(table) {
1010
+ return { ...table, length: (0, import_schema.getTableLength)(table), batchType: "data" };
993
1011
  }
994
1012
  async function makeTableFromBatches(batchIterator) {
995
1013
  let arrayRows;
package/dist/index.d.ts CHANGED
@@ -7,10 +7,10 @@ export { TableBatchBuilder } from './lib/table/batches/table-batch-builder';
7
7
  export type { TableBatchAggregator } from './lib/table/batches/table-batch-aggregator';
8
8
  export { RowTableBatchAggregator } from './lib/table/batches/row-table-batch-aggregator';
9
9
  export { ColumnarTableBatchAggregator } from './lib/table/batches/columnar-table-batch-aggregator';
10
- export { getTableLength, getTableNumCols, getTableCell, getTableRowShape, getTableColumnIndex, getTableColumnName, getTableRowAsObject, getTableRowAsArray, makeRowIterator, makeArrayRowIterator, makeObjectRowIterator } from './lib/table/simple-table/table-accessors';
10
+ export { isTable, getTableLength, getTableNumCols, getTableCell, getTableRowShape, getTableColumnIndex, getTableColumnName, getTableRowAsObject, getTableRowAsArray, makeRowIterator, makeArrayRowIterator, makeObjectRowIterator } from './lib/table/simple-table/table-accessors';
11
11
  export { ArrowLikeTable } from './lib/table/arrow-api/arrow-like-table';
12
12
  export { makeTableFromData } from './lib/table/simple-table/make-table';
13
- export { makeTableFromBatches, makeBatchesFromTable } from './lib/table/simple-table/make-table-from-batches';
13
+ export { makeTableFromBatches, makeBatchFromTable } from './lib/table/simple-table/make-table-from-batches';
14
14
  export { convertTable } from './lib/table/simple-table/convert-table';
15
15
  export { deduceTableSchema } from './lib/table/simple-table/table-schema';
16
16
  export { convertToObjectRow, convertToArrayRow } from './lib/table/simple-table/row-utils';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  export { TableBatchBuilder } from "./lib/table/batches/table-batch-builder.js";
2
2
  export { RowTableBatchAggregator } from "./lib/table/batches/row-table-batch-aggregator.js";
3
3
  export { ColumnarTableBatchAggregator } from "./lib/table/batches/columnar-table-batch-aggregator.js";
4
- export { getTableLength, getTableNumCols, getTableCell, getTableRowShape, getTableColumnIndex, getTableColumnName, getTableRowAsObject, getTableRowAsArray, makeRowIterator, makeArrayRowIterator, makeObjectRowIterator } from "./lib/table/simple-table/table-accessors.js";
4
+ export { isTable, getTableLength, getTableNumCols, getTableCell, getTableRowShape, getTableColumnIndex, getTableColumnName, getTableRowAsObject, getTableRowAsArray, makeRowIterator, makeArrayRowIterator, makeObjectRowIterator } from "./lib/table/simple-table/table-accessors.js";
5
5
  export { ArrowLikeTable } from "./lib/table/arrow-api/arrow-like-table.js";
6
6
  export { makeTableFromData } from "./lib/table/simple-table/make-table.js";
7
- export { makeTableFromBatches, makeBatchesFromTable } from "./lib/table/simple-table/make-table-from-batches.js";
7
+ export { makeTableFromBatches, makeBatchFromTable } from "./lib/table/simple-table/make-table-from-batches.js";
8
8
  export { convertTable } from "./lib/table/simple-table/convert-table.js";
9
9
  export { deduceTableSchema } from "./lib/table/simple-table/table-schema.js";
10
10
  export { convertToObjectRow, convertToArrayRow } from "./lib/table/simple-table/row-utils.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["TableBatchBuilder","RowTableBatchAggregator","ColumnarTableBatchAggregator","getTableLength","getTableNumCols","getTableCell","getTableRowShape","getTableColumnIndex","getTableColumnName","getTableRowAsObject","getTableRowAsArray","makeRowIterator","makeArrayRowIterator","makeObjectRowIterator","ArrowLikeTable","makeTableFromData","makeTableFromBatches","makeBatchesFromTable","convertTable","deduceTableSchema","convertToObjectRow","convertToArrayRow","getDataTypeFromArray","getMeshSize","getMeshBoundingBox","deduceMeshSchema","deduceMeshField","makeMeshAttributeMetadata","Schema","ArrowLikeSchema","Field","ArrowLikeField","DataType","ArrowLikeDataType","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","getTypeInfo","default","AsyncQueue"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n// COMMON CATEGORY\nexport type {\n TypedArray,\n BigTypedArray,\n TypedArrayConstructor,\n BigTypedArrayConstructor,\n NumberArray,\n ArrayType,\n AnyArray\n} from './types/types';\n\nexport type {Schema, Field, DataType, SchemaMetadata, FieldMetadata} from './types/schema';\n\nexport type {Batch} from './types/batch';\n\n// TABLE CATEGORY TYPES\nexport type {\n Table,\n RowTable,\n ArrayRowTable,\n ObjectRowTable,\n GeoJSONTable,\n ColumnarTable,\n ArrowTable,\n Tables\n} from './types/category-table';\nexport type {\n TableBatch,\n ArrayRowTableBatch,\n ObjectRowTableBatch,\n GeoJSONTableBatch,\n ColumnarTableBatch,\n ArrowTableBatch\n} from './types/category-table';\n\n// TABLE CATEGORY UTILS\nexport {TableBatchBuilder} from './lib/table/batches/table-batch-builder';\nexport type {TableBatchAggregator} from './lib/table/batches/table-batch-aggregator';\nexport {RowTableBatchAggregator} from './lib/table/batches/row-table-batch-aggregator';\nexport {ColumnarTableBatchAggregator} from './lib/table/batches/columnar-table-batch-aggregator';\n\nexport {\n getTableLength,\n getTableNumCols,\n getTableCell,\n getTableRowShape,\n getTableColumnIndex,\n getTableColumnName,\n getTableRowAsObject,\n getTableRowAsArray,\n makeRowIterator,\n makeArrayRowIterator,\n makeObjectRowIterator\n} from './lib/table/simple-table/table-accessors';\n\nexport {ArrowLikeTable} from './lib/table/arrow-api/arrow-like-table';\n\nexport {makeTableFromData} from './lib/table/simple-table/make-table';\nexport {\n makeTableFromBatches,\n makeBatchesFromTable\n} from './lib/table/simple-table/make-table-from-batches';\nexport {convertTable} from './lib/table/simple-table/convert-table';\nexport {deduceTableSchema} from './lib/table/simple-table/table-schema';\nexport {convertToObjectRow, convertToArrayRow} from './lib/table/simple-table/row-utils';\nexport {getDataTypeFromArray} from './lib/table/simple-table/data-type';\n\n// MESH CATEGORY\nexport type {\n MeshTable,\n MeshArrowTable,\n Mesh,\n MeshGeometry,\n MeshAttribute,\n MeshAttributes\n} from './types/category-mesh';\n\nexport {getMeshSize, getMeshBoundingBox} from './lib/mesh/mesh-utils';\n// Commented out due to https://github.com/visgl/deck.gl/issues/6906 and https://github.com/visgl/loaders.gl/issues/2177\n// export {convertMesh} from './category/mesh/convert-mesh';\nexport {\n deduceMeshSchema,\n deduceMeshField,\n makeMeshAttributeMetadata\n} from './lib/mesh/deduce-mesh-schema';\n\n// TEXTURES\nexport type {TextureLevel, GPUTextureFormat} from './types/category-texture';\n\n// IMAGES\nexport type {ImageDataType, ImageType, ImageTypeEnum} from './types/category-image';\n\n// TYPES\n// GIS CATEGORY - GEOJSON\nexport type {\n GeoJSON,\n Feature,\n FeatureCollection,\n Geometry,\n Position,\n GeoJsonProperties,\n Point,\n MultiPoint,\n LineString,\n MultiLineString,\n Polygon,\n MultiPolygon,\n GeometryCollection\n} from './types/category-gis';\n\nexport type {GeojsonGeometryInfo} from './types/category-gis';\n\n// GIS CATEGORY - FLAT GEOJSON\nexport type {\n FlatFeature,\n FlatIndexedGeometry,\n FlatGeometry,\n FlatGeometryType,\n FlatPoint,\n FlatLineString,\n FlatPolygon\n} from './types/category-gis';\n\n// GIS CATEGORY - BINARY\nexport type {\n BinaryGeometryType,\n BinaryGeometry,\n BinaryPointGeometry,\n BinaryLineGeometry,\n BinaryPolygonGeometry,\n BinaryAttribute\n} from './types/category-gis';\nexport type {\n BinaryFeatureCollection,\n BinaryFeature,\n BinaryPointFeature,\n BinaryLineFeature,\n BinaryPolygonFeature\n} from './types/category-gis';\n\n// SCHEMA\nexport {\n Schema as ArrowLikeSchema,\n Field as ArrowLikeField,\n DataType as ArrowLikeDataType,\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/table/arrow-api';\n\n// EXPERIMENTAL APIs\n\n// SCHEMA UTILS\nexport {getTypeInfo} from './lib/table/arrow-api/get-type-info';\n\nexport {default as AsyncQueue} from './lib/utils/async-queue';\n"],"mappings":"SAuCQA,iBAAiB;AAAA,SAEjBC,uBAAuB;AAAA,SACvBC,4BAA4B;AAAA,SAGlCC,cAAc,EACdC,eAAe,EACfC,YAAY,EACZC,gBAAgB,EAChBC,mBAAmB,EACnBC,kBAAkB,EAClBC,mBAAmB,EACnBC,kBAAkB,EAClBC,eAAe,EACfC,oBAAoB,EACpBC,qBAAqB;AAAA,SAGfC,cAAc;AAAA,SAEdC,iBAAiB;AAAA,SAEvBC,oBAAoB,EACpBC,oBAAoB;AAAA,SAEdC,YAAY;AAAA,SACZC,iBAAiB;AAAA,SACjBC,kBAAkB,EAAEC,iBAAiB;AAAA,SACrCC,oBAAoB;AAAA,SAYpBC,WAAW,EAAEC,kBAAkB;AAAA,SAIrCC,gBAAgB,EAChBC,eAAe,EACfC,yBAAyB;AAAA,SA2DzBC,MAAM,IAAIC,eAAe,EACzBC,KAAK,IAAIC,cAAc,EACvBC,QAAQ,IAAIC,iBAAiB,EAC7BC,IAAI,EACJC,MAAM,EACNC,IAAI,EACJC,GAAG,EACHC,IAAI,EACJC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,KAAK,EACLC,OAAO,EACPC,OAAO,EACPC,OAAO,EACPC,IAAI,EACJC,IAAI,EACJC,OAAO,EACPC,eAAe,EACfC,IAAI,EACJC,eAAe,EACfC,UAAU,EACVC,SAAS,EACTC,eAAe,EACfC,oBAAoB,EACpBC,oBAAoB,EACpBC,mBAAmB,EACnBC,QAAQ,EACRC,eAAe,EACfC,iBAAiB,EACjBC,aAAa,EACbC,MAAM;AAAA,SAMAC,WAAW;AAAA,SAEXC,OAAO,IAAIC,UAAU"}
1
+ {"version":3,"file":"index.js","names":["TableBatchBuilder","RowTableBatchAggregator","ColumnarTableBatchAggregator","isTable","getTableLength","getTableNumCols","getTableCell","getTableRowShape","getTableColumnIndex","getTableColumnName","getTableRowAsObject","getTableRowAsArray","makeRowIterator","makeArrayRowIterator","makeObjectRowIterator","ArrowLikeTable","makeTableFromData","makeTableFromBatches","makeBatchFromTable","convertTable","deduceTableSchema","convertToObjectRow","convertToArrayRow","getDataTypeFromArray","getMeshSize","getMeshBoundingBox","deduceMeshSchema","deduceMeshField","makeMeshAttributeMetadata","Schema","ArrowLikeSchema","Field","ArrowLikeField","DataType","ArrowLikeDataType","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","getTypeInfo","default","AsyncQueue"],"sources":["../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n// COMMON CATEGORY\nexport type {\n TypedArray,\n BigTypedArray,\n TypedArrayConstructor,\n BigTypedArrayConstructor,\n NumberArray,\n ArrayType,\n AnyArray\n} from './types/types';\n\nexport type {Schema, Field, DataType, SchemaMetadata, FieldMetadata} from './types/schema';\n\nexport type {Batch} from './types/batch';\n\n// TABLE CATEGORY TYPES\nexport type {\n Table,\n RowTable,\n ArrayRowTable,\n ObjectRowTable,\n GeoJSONTable,\n ColumnarTable,\n ArrowTable,\n Tables\n} from './types/category-table';\nexport type {\n TableBatch,\n ArrayRowTableBatch,\n ObjectRowTableBatch,\n GeoJSONTableBatch,\n ColumnarTableBatch,\n ArrowTableBatch\n} from './types/category-table';\n\n// TABLE CATEGORY UTILS\nexport {TableBatchBuilder} from './lib/table/batches/table-batch-builder';\nexport type {TableBatchAggregator} from './lib/table/batches/table-batch-aggregator';\nexport {RowTableBatchAggregator} from './lib/table/batches/row-table-batch-aggregator';\nexport {ColumnarTableBatchAggregator} from './lib/table/batches/columnar-table-batch-aggregator';\n\nexport {\n isTable,\n getTableLength,\n getTableNumCols,\n getTableCell,\n getTableRowShape,\n getTableColumnIndex,\n getTableColumnName,\n getTableRowAsObject,\n getTableRowAsArray,\n makeRowIterator,\n makeArrayRowIterator,\n makeObjectRowIterator\n} from './lib/table/simple-table/table-accessors';\n\nexport {ArrowLikeTable} from './lib/table/arrow-api/arrow-like-table';\n\nexport {makeTableFromData} from './lib/table/simple-table/make-table';\nexport {\n makeTableFromBatches,\n makeBatchFromTable\n} from './lib/table/simple-table/make-table-from-batches';\nexport {convertTable} from './lib/table/simple-table/convert-table';\nexport {deduceTableSchema} from './lib/table/simple-table/table-schema';\nexport {convertToObjectRow, convertToArrayRow} from './lib/table/simple-table/row-utils';\nexport {getDataTypeFromArray} from './lib/table/simple-table/data-type';\n\n// MESH CATEGORY\nexport type {\n MeshTable,\n MeshArrowTable,\n Mesh,\n MeshGeometry,\n MeshAttribute,\n MeshAttributes\n} from './types/category-mesh';\n\nexport {getMeshSize, getMeshBoundingBox} from './lib/mesh/mesh-utils';\n// Commented out due to https://github.com/visgl/deck.gl/issues/6906 and https://github.com/visgl/loaders.gl/issues/2177\n// export {convertMesh} from './category/mesh/convert-mesh';\nexport {\n deduceMeshSchema,\n deduceMeshField,\n makeMeshAttributeMetadata\n} from './lib/mesh/deduce-mesh-schema';\n\n// TEXTURES\nexport type {TextureLevel, GPUTextureFormat} from './types/category-texture';\n\n// IMAGES\nexport type {ImageDataType, ImageType, ImageTypeEnum} from './types/category-image';\n\n// TYPES\n// GIS CATEGORY - GEOJSON\nexport type {\n GeoJSON,\n Feature,\n FeatureCollection,\n Geometry,\n Position,\n GeoJsonProperties,\n Point,\n MultiPoint,\n LineString,\n MultiLineString,\n Polygon,\n MultiPolygon,\n GeometryCollection\n} from './types/category-gis';\n\nexport type {GeojsonGeometryInfo} from './types/category-gis';\n\n// GIS CATEGORY - FLAT GEOJSON\nexport type {\n FlatFeature,\n FlatIndexedGeometry,\n FlatGeometry,\n FlatGeometryType,\n FlatPoint,\n FlatLineString,\n FlatPolygon\n} from './types/category-gis';\n\n// GIS CATEGORY - BINARY\nexport type {\n BinaryGeometryType,\n BinaryGeometry,\n BinaryPointGeometry,\n BinaryLineGeometry,\n BinaryPolygonGeometry,\n BinaryAttribute\n} from './types/category-gis';\nexport type {\n BinaryFeatureCollection,\n BinaryFeature,\n BinaryPointFeature,\n BinaryLineFeature,\n BinaryPolygonFeature\n} from './types/category-gis';\n\n// SCHEMA\nexport {\n Schema as ArrowLikeSchema,\n Field as ArrowLikeField,\n DataType as ArrowLikeDataType,\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/table/arrow-api';\n\n// EXPERIMENTAL APIs\n\n// SCHEMA UTILS\nexport {getTypeInfo} from './lib/table/arrow-api/get-type-info';\n\nexport {default as AsyncQueue} from './lib/utils/async-queue';\n"],"mappings":"SAuCQA,iBAAiB;AAAA,SAEjBC,uBAAuB;AAAA,SACvBC,4BAA4B;AAAA,SAGlCC,OAAO,EACPC,cAAc,EACdC,eAAe,EACfC,YAAY,EACZC,gBAAgB,EAChBC,mBAAmB,EACnBC,kBAAkB,EAClBC,mBAAmB,EACnBC,kBAAkB,EAClBC,eAAe,EACfC,oBAAoB,EACpBC,qBAAqB;AAAA,SAGfC,cAAc;AAAA,SAEdC,iBAAiB;AAAA,SAEvBC,oBAAoB,EACpBC,kBAAkB;AAAA,SAEZC,YAAY;AAAA,SACZC,iBAAiB;AAAA,SACjBC,kBAAkB,EAAEC,iBAAiB;AAAA,SACrCC,oBAAoB;AAAA,SAYpBC,WAAW,EAAEC,kBAAkB;AAAA,SAIrCC,gBAAgB,EAChBC,eAAe,EACfC,yBAAyB;AAAA,SA2DzBC,MAAM,IAAIC,eAAe,EACzBC,KAAK,IAAIC,cAAc,EACvBC,QAAQ,IAAIC,iBAAiB,EAC7BC,IAAI,EACJC,MAAM,EACNC,IAAI,EACJC,GAAG,EACHC,IAAI,EACJC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,KAAK,EACLC,OAAO,EACPC,OAAO,EACPC,OAAO,EACPC,IAAI,EACJC,IAAI,EACJC,OAAO,EACPC,eAAe,EACfC,IAAI,EACJC,eAAe,EACfC,UAAU,EACVC,SAAS,EACTC,eAAe,EACfC,oBAAoB,EACpBC,oBAAoB,EACpBC,mBAAmB,EACnBC,QAAQ,EACRC,eAAe,EACfC,iBAAiB,EACjBC,aAAa,EACbC,MAAM;AAAA,SAMAC,WAAW;AAAA,SAEXC,OAAO,IAAIC,UAAU"}
@@ -1,17 +1,22 @@
1
1
  import type { TableBatch, Table } from '@loaders.gl/schema';
2
2
  /**
3
- * Returns an async iterator that yields a single table as a sequence of batches.
3
+ * Returns an iterator that yields a single table as a sequence of batches.
4
4
  * @note Currently only a single batch is yielded.
5
5
  * @note All batches will have the same shape and schema as the original table.
6
- * @param batchIterator
7
- * @returns `null` if no batches are yielded by the async iterator
6
+ * @returns
8
7
  */
9
8
  export declare function makeBatchesFromTable(table: Table): IterableIterator<TableBatch>;
9
+ /**
10
+ * Returns a table packaged as a single table batch
11
+ * @note The batch will have the same shape and schema as the original table.
12
+ * @returns `null` if no batches are yielded by the async iterator
13
+ */
14
+ export declare function makeBatchFromTable(table: Table): TableBatch;
10
15
  /**
11
16
  * Assembles all batches from an async iterator into a single table.
12
17
  * @note All batches must have the same shape and schema
13
18
  * @param batchIterator
14
19
  * @returns `null` if no batches are yielded by the async iterator
15
20
  */
16
- export declare function makeTableFromBatches(batchIterator: AsyncIterableIterator<TableBatch> | IterableIterator<TableBatch>): Promise<Table | null>;
21
+ export declare function makeTableFromBatches(batchIterator: AsyncIterable<TableBatch> | Iterable<TableBatch>): Promise<Table | null>;
17
22
  //# sourceMappingURL=make-table-from-batches.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-table-from-batches.d.ts","sourceRoot":"","sources":["../../../../src/lib/table/simple-table/make-table-from-batches.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,UAAU,EACV,KAAK,EAKN,MAAM,oBAAoB,CAAC;AAG5B;;;;;;GAMG;AACH,wBAAiB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAEhF;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,qBAAqB,CAAC,UAAU,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAC,GAC9E,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CA4DvB"}
1
+ {"version":3,"file":"make-table-from-batches.d.ts","sourceRoot":"","sources":["../../../../src/lib/table/simple-table/make-table-from-batches.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,UAAU,EACV,KAAK,EAKN,MAAM,oBAAoB,CAAC;AAG5B;;;;;GAKG;AACH,wBAAiB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAE3D;AAED;;;;;GAKG;AAEH,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,GAC9D,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CA4DvB"}
@@ -1,6 +1,9 @@
1
1
  import { getTableLength } from '@loaders.gl/schema';
2
2
  export function* makeBatchesFromTable(table) {
3
- yield {
3
+ yield makeBatchFromTable(table);
4
+ }
5
+ export function makeBatchFromTable(table) {
6
+ return {
4
7
  ...table,
5
8
  length: getTableLength(table),
6
9
  batchType: 'data'
@@ -1 +1 @@
1
- {"version":3,"file":"make-table-from-batches.js","names":["getTableLength","makeBatchesFromTable","table","length","batchType","makeTableFromBatches","batchIterator","arrayRows","objectRows","features","shape","schema","batch","rowIndex","row","data","push","Error","type"],"sources":["../../../../src/lib/table/simple-table/make-table-from-batches.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {\n TableBatch,\n Table,\n Schema,\n ObjectRowTable,\n ArrayRowTable,\n Feature\n} from '@loaders.gl/schema';\nimport {getTableLength} from '@loaders.gl/schema';\n\n/**\n * Returns an async iterator that yields a single table as a sequence of batches.\n * @note Currently only a single batch is yielded.\n * @note All batches will have the same shape and schema as the original table.\n * @param batchIterator\n * @returns `null` if no batches are yielded by the async iterator\n */\nexport function* makeBatchesFromTable(table: Table): IterableIterator<TableBatch> {\n yield {...table, length: getTableLength(table), batchType: 'data'};\n}\n\n/**\n * Assembles all batches from an async iterator into a single table.\n * @note All batches must have the same shape and schema\n * @param batchIterator\n * @returns `null` if no batches are yielded by the async iterator\n */\nexport async function makeTableFromBatches(\n batchIterator: AsyncIterableIterator<TableBatch> | IterableIterator<TableBatch>\n): Promise<Table | null> {\n let arrayRows: ArrayRowTable['data'];\n let objectRows: ObjectRowTable['data'];\n let features: Feature[];\n let shape: Table['shape'] | null = null;\n let schema: Schema | undefined;\n\n for await (const batch of batchIterator) {\n shape = shape || batch.shape;\n schema = schema || batch.schema;\n\n switch (batch.shape) {\n case 'array-row-table':\n arrayRows = arrayRows! || [];\n for (let rowIndex = 0; rowIndex < getTableLength(batch); rowIndex++) {\n const row = batch.data[rowIndex];\n arrayRows.push(row);\n }\n break;\n\n case 'object-row-table':\n objectRows = objectRows! || [];\n for (let rowIndex = 0; rowIndex < getTableLength(batch); rowIndex++) {\n const row = batch.data[rowIndex];\n objectRows.push(row);\n }\n break;\n\n case 'geojson-table':\n features = features! || [];\n for (let rowIndex = 0; rowIndex < getTableLength(batch); rowIndex++) {\n const row = batch.features[rowIndex];\n features.push(row);\n }\n break;\n\n case 'columnar-table':\n case 'arrow-table':\n default:\n throw new Error('shape');\n }\n }\n\n if (!shape) {\n return null;\n }\n\n switch (shape) {\n case 'array-row-table':\n return {shape: 'array-row-table', data: arrayRows!, schema};\n\n case 'object-row-table':\n return {shape: 'object-row-table', data: objectRows!, schema};\n\n case 'geojson-table':\n return {shape: 'geojson-table', type: 'FeatureCollection', features: features!, schema};\n\n default:\n return null;\n }\n}\n"],"mappings":"AAWA,SAAQA,cAAc,QAAO,oBAAoB;AASjD,OAAO,UAAUC,oBAAoBA,CAACC,KAAY,EAAgC;EAChF,MAAM;IAAC,GAAGA,KAAK;IAAEC,MAAM,EAAEH,cAAc,CAACE,KAAK,CAAC;IAAEE,SAAS,EAAE;EAAM,CAAC;AACpE;AAQA,OAAO,eAAeC,oBAAoBA,CACxCC,aAA+E,EACxD;EACvB,IAAIC,SAAgC;EACpC,IAAIC,UAAkC;EACtC,IAAIC,QAAmB;EACvB,IAAIC,KAA4B,GAAG,IAAI;EACvC,IAAIC,MAA0B;EAE9B,WAAW,MAAMC,KAAK,IAAIN,aAAa,EAAE;IACvCI,KAAK,GAAGA,KAAK,IAAIE,KAAK,CAACF,KAAK;IAC5BC,MAAM,GAAGA,MAAM,IAAIC,KAAK,CAACD,MAAM;IAE/B,QAAQC,KAAK,CAACF,KAAK;MACjB,KAAK,iBAAiB;QACpBH,SAAS,GAAGA,SAAS,IAAK,EAAE;QAC5B,KAAK,IAAIM,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGb,cAAc,CAACY,KAAK,CAAC,EAAEC,QAAQ,EAAE,EAAE;UACnE,MAAMC,GAAG,GAAGF,KAAK,CAACG,IAAI,CAACF,QAAQ,CAAC;UAChCN,SAAS,CAACS,IAAI,CAACF,GAAG,CAAC;QACrB;QACA;MAEF,KAAK,kBAAkB;QACrBN,UAAU,GAAGA,UAAU,IAAK,EAAE;QAC9B,KAAK,IAAIK,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGb,cAAc,CAACY,KAAK,CAAC,EAAEC,QAAQ,EAAE,EAAE;UACnE,MAAMC,GAAG,GAAGF,KAAK,CAACG,IAAI,CAACF,QAAQ,CAAC;UAChCL,UAAU,CAACQ,IAAI,CAACF,GAAG,CAAC;QACtB;QACA;MAEF,KAAK,eAAe;QAClBL,QAAQ,GAAGA,QAAQ,IAAK,EAAE;QAC1B,KAAK,IAAII,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGb,cAAc,CAACY,KAAK,CAAC,EAAEC,QAAQ,EAAE,EAAE;UACnE,MAAMC,GAAG,GAAGF,KAAK,CAACH,QAAQ,CAACI,QAAQ,CAAC;UACpCJ,QAAQ,CAACO,IAAI,CAACF,GAAG,CAAC;QACpB;QACA;MAEF,KAAK,gBAAgB;MACrB,KAAK,aAAa;MAClB;QACE,MAAM,IAAIG,KAAK,CAAC,OAAO,CAAC;IAC5B;EACF;EAEA,IAAI,CAACP,KAAK,EAAE;IACV,OAAO,IAAI;EACb;EAEA,QAAQA,KAAK;IACX,KAAK,iBAAiB;MACpB,OAAO;QAACA,KAAK,EAAE,iBAAiB;QAAEK,IAAI,EAAER,SAAU;QAAEI;MAAM,CAAC;IAE7D,KAAK,kBAAkB;MACrB,OAAO;QAACD,KAAK,EAAE,kBAAkB;QAAEK,IAAI,EAAEP,UAAW;QAAEG;MAAM,CAAC;IAE/D,KAAK,eAAe;MAClB,OAAO;QAACD,KAAK,EAAE,eAAe;QAAEQ,IAAI,EAAE,mBAAmB;QAAET,QAAQ,EAAEA,QAAS;QAAEE;MAAM,CAAC;IAEzF;MACE,OAAO,IAAI;EACf;AACF"}
1
+ {"version":3,"file":"make-table-from-batches.js","names":["getTableLength","makeBatchesFromTable","table","makeBatchFromTable","length","batchType","makeTableFromBatches","batchIterator","arrayRows","objectRows","features","shape","schema","batch","rowIndex","row","data","push","Error","type"],"sources":["../../../../src/lib/table/simple-table/make-table-from-batches.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {\n TableBatch,\n Table,\n Schema,\n ObjectRowTable,\n ArrayRowTable,\n Feature\n} from '@loaders.gl/schema';\nimport {getTableLength} from '@loaders.gl/schema';\n\n/**\n * Returns an iterator that yields a single table as a sequence of batches.\n * @note Currently only a single batch is yielded.\n * @note All batches will have the same shape and schema as the original table.\n * @returns\n */\nexport function* makeBatchesFromTable(table: Table): IterableIterator<TableBatch> {\n yield makeBatchFromTable(table);\n}\n\n/**\n * Returns a table packaged as a single table batch\n * @note The batch will have the same shape and schema as the original table.\n * @returns `null` if no batches are yielded by the async iterator\n */\nexport function makeBatchFromTable(table: Table): TableBatch {\n return {...table, length: getTableLength(table), batchType: 'data'};\n}\n\n/**\n * Assembles all batches from an async iterator into a single table.\n * @note All batches must have the same shape and schema\n * @param batchIterator\n * @returns `null` if no batches are yielded by the async iterator\n */\n// eslint-disable-next-line complexity\nexport async function makeTableFromBatches(\n batchIterator: AsyncIterable<TableBatch> | Iterable<TableBatch>\n): Promise<Table | null> {\n let arrayRows: ArrayRowTable['data'];\n let objectRows: ObjectRowTable['data'];\n let features: Feature[];\n let shape: Table['shape'] | null = null;\n let schema: Schema | undefined;\n\n for await (const batch of batchIterator) {\n shape = shape || batch.shape;\n schema = schema || batch.schema;\n\n switch (batch.shape) {\n case 'array-row-table':\n arrayRows = arrayRows! || [];\n for (let rowIndex = 0; rowIndex < getTableLength(batch); rowIndex++) {\n const row = batch.data[rowIndex];\n arrayRows.push(row);\n }\n break;\n\n case 'object-row-table':\n objectRows = objectRows! || [];\n for (let rowIndex = 0; rowIndex < getTableLength(batch); rowIndex++) {\n const row = batch.data[rowIndex];\n objectRows.push(row);\n }\n break;\n\n case 'geojson-table':\n features = features! || [];\n for (let rowIndex = 0; rowIndex < getTableLength(batch); rowIndex++) {\n const row = batch.features[rowIndex];\n features.push(row);\n }\n break;\n\n case 'columnar-table':\n case 'arrow-table':\n default:\n throw new Error('shape');\n }\n }\n\n if (!shape) {\n return null;\n }\n\n switch (shape) {\n case 'array-row-table':\n return {shape: 'array-row-table', data: arrayRows!, schema};\n\n case 'object-row-table':\n return {shape: 'object-row-table', data: objectRows!, schema};\n\n case 'geojson-table':\n return {shape: 'geojson-table', type: 'FeatureCollection', features: features!, schema};\n\n default:\n return null;\n }\n}\n"],"mappings":"AAWA,SAAQA,cAAc,QAAO,oBAAoB;AAQjD,OAAO,UAAUC,oBAAoBA,CAACC,KAAY,EAAgC;EAChF,MAAMC,kBAAkB,CAACD,KAAK,CAAC;AACjC;AAOA,OAAO,SAASC,kBAAkBA,CAACD,KAAY,EAAc;EAC3D,OAAO;IAAC,GAAGA,KAAK;IAAEE,MAAM,EAAEJ,cAAc,CAACE,KAAK,CAAC;IAAEG,SAAS,EAAE;EAAM,CAAC;AACrE;AASA,OAAO,eAAeC,oBAAoBA,CACxCC,aAA+D,EACxC;EACvB,IAAIC,SAAgC;EACpC,IAAIC,UAAkC;EACtC,IAAIC,QAAmB;EACvB,IAAIC,KAA4B,GAAG,IAAI;EACvC,IAAIC,MAA0B;EAE9B,WAAW,MAAMC,KAAK,IAAIN,aAAa,EAAE;IACvCI,KAAK,GAAGA,KAAK,IAAIE,KAAK,CAACF,KAAK;IAC5BC,MAAM,GAAGA,MAAM,IAAIC,KAAK,CAACD,MAAM;IAE/B,QAAQC,KAAK,CAACF,KAAK;MACjB,KAAK,iBAAiB;QACpBH,SAAS,GAAGA,SAAS,IAAK,EAAE;QAC5B,KAAK,IAAIM,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGd,cAAc,CAACa,KAAK,CAAC,EAAEC,QAAQ,EAAE,EAAE;UACnE,MAAMC,GAAG,GAAGF,KAAK,CAACG,IAAI,CAACF,QAAQ,CAAC;UAChCN,SAAS,CAACS,IAAI,CAACF,GAAG,CAAC;QACrB;QACA;MAEF,KAAK,kBAAkB;QACrBN,UAAU,GAAGA,UAAU,IAAK,EAAE;QAC9B,KAAK,IAAIK,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGd,cAAc,CAACa,KAAK,CAAC,EAAEC,QAAQ,EAAE,EAAE;UACnE,MAAMC,GAAG,GAAGF,KAAK,CAACG,IAAI,CAACF,QAAQ,CAAC;UAChCL,UAAU,CAACQ,IAAI,CAACF,GAAG,CAAC;QACtB;QACA;MAEF,KAAK,eAAe;QAClBL,QAAQ,GAAGA,QAAQ,IAAK,EAAE;QAC1B,KAAK,IAAII,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGd,cAAc,CAACa,KAAK,CAAC,EAAEC,QAAQ,EAAE,EAAE;UACnE,MAAMC,GAAG,GAAGF,KAAK,CAACH,QAAQ,CAACI,QAAQ,CAAC;UACpCJ,QAAQ,CAACO,IAAI,CAACF,GAAG,CAAC;QACpB;QACA;MAEF,KAAK,gBAAgB;MACrB,KAAK,aAAa;MAClB;QACE,MAAM,IAAIG,KAAK,CAAC,OAAO,CAAC;IAC5B;EACF;EAEA,IAAI,CAACP,KAAK,EAAE;IACV,OAAO,IAAI;EACb;EAEA,QAAQA,KAAK;IACX,KAAK,iBAAiB;MACpB,OAAO;QAACA,KAAK,EAAE,iBAAiB;QAAEK,IAAI,EAAER,SAAU;QAAEI;MAAM,CAAC;IAE7D,KAAK,kBAAkB;MACrB,OAAO;QAACD,KAAK,EAAE,kBAAkB;QAAEK,IAAI,EAAEP,UAAW;QAAEG;MAAM,CAAC;IAE/D,KAAK,eAAe;MAClB,OAAO;QAACD,KAAK,EAAE,eAAe;QAAEQ,IAAI,EAAE,mBAAmB;QAAET,QAAQ,EAAEA,QAAS;QAAEE;MAAM,CAAC;IAEzF;MACE,OAAO,IAAI;EACf;AACF"}
@@ -1,4 +1,5 @@
1
1
  import { Table, ArrayRowTable, ObjectRowTable } from '../../../types/category-table';
2
+ export declare function isTable(table: any): table is Table;
2
3
  /**
3
4
  * Returns the length of the table (i.e. the number of rows)
4
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"table-accessors.d.ts","sourceRoot":"","sources":["../../../../src/lib/table/simple-table/table-accessors.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,KAAK,EAAE,aAAa,EAAE,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAEnF;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAqBnD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAsBpD;AAED,0DAA0D;AAC1D,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CA0BxF;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAyB3F;AAED,iCAAiC;AACjC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,iBAAiB,GAAG,kBAAkB,CAcrF;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED;;;;GAIG;AAEH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE;IAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,GACZ;IAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAwDjC;AAED;;;;GAIG;AAEH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,OAAO,EAAE,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,EAAE,CA2DX;AAED,8CAA8C;AAC9C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAc7D;AAED,+CAA+C;AAC/C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,CAc/D;AAED,+CAA+C;AAC/C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,CAc9D;AAID;;;;GAIG;AACH,wBAAiB,eAAe,CAC9B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,kBAAkB,GAAG,iBAAiB,GAC5C,QAAQ,CAAC,OAAO,EAAE,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC,CAYhD;AAED;;;;GAIG;AACH,wBAAiB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAK/F;AAED;;;;GAIG;AACH,wBAAiB,qBAAqB,CACpC,KAAK,EAAE,KAAK,EACZ,MAAM,GAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAM,GACpC,QAAQ,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC,CAKpC"}
1
+ {"version":3,"file":"table-accessors.d.ts","sourceRoot":"","sources":["../../../../src/lib/table/simple-table/table-accessors.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,KAAK,EAAE,aAAa,EAAE,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAEnF,wBAAgB,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,KAAK,CAmBlD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAqBnD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAsBpD;AAED,0DAA0D;AAC1D,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CA0BxF;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAyB3F;AAED,iCAAiC;AACjC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,iBAAiB,GAAG,kBAAkB,CAcrF;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED;;;;GAIG;AAEH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE;IAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,EACxC,IAAI,CAAC,EAAE,MAAM,GACZ;IAAC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAwDjC;AAED;;;;GAIG;AAEH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,OAAO,EAAE,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,EAAE,CA2DX;AAED,8CAA8C;AAC9C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAc7D;AAED,+CAA+C;AAC/C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,CAc/D;AAED,+CAA+C;AAC/C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,CAc9D;AAID;;;;GAIG;AACH,wBAAiB,eAAe,CAC9B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,kBAAkB,GAAG,iBAAiB,GAC5C,QAAQ,CAAC,OAAO,EAAE,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC,CAYhD;AAED;;;;GAIG;AACH,wBAAiB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAK/F;AAED;;;;GAIG;AACH,wBAAiB,qBAAqB,CACpC,KAAK,EAAE,KAAK,EACZ,MAAM,GAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAM,GACpC,QAAQ,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,CAAC,CAKpC"}
@@ -1,3 +1,20 @@
1
+ export function isTable(table) {
2
+ var _table$data;
3
+ const shape = typeof table === 'object' && (table === null || table === void 0 ? void 0 : table.shape);
4
+ switch (shape) {
5
+ case 'array-row-table':
6
+ case 'object-row-table':
7
+ return Array.isArray(table.data);
8
+ case 'geojson-table':
9
+ return Array.isArray(table.features);
10
+ case 'columnar-table':
11
+ return table.data && typeof table.data === 'object';
12
+ case 'arrow-table':
13
+ return Boolean((table === null || table === void 0 ? void 0 : (_table$data = table.data) === null || _table$data === void 0 ? void 0 : _table$data.numRows) !== undefined);
14
+ default:
15
+ return false;
16
+ }
17
+ }
1
18
  export function getTableLength(table) {
2
19
  switch (table.shape) {
3
20
  case 'array-row-table':
@@ -1 +1 @@
1
- {"version":3,"file":"table-accessors.js","names":["getTableLength","table","shape","data","length","features","arrowTable","numRows","column","Object","values","Error","getTableNumCols","schema","fields","keys","numCols","getTableCell","rowIndex","columnName","_arrowTable$getChildA","columnIndex","getTableColumnIndex","arrowColumnIndex","findIndex","field","name","getChildAt","get","getTableCellAt","_arrowTable$getChildA2","columnName1","getTableColumnName","columnName2","columnName3","getTableRowShape","_table$schema","undefined","_table$schema2","_table$schema2$fields","getTableRowAsObject","target","copy","fromEntries","entries","objectRow","i","row","getTableRowAsArray","Array","from","arrayRow","makeArrayRowTable","makeObjectRowTable","makeColumnarTable","makeRowIterator","makeArrayRowIterator","makeObjectRowIterator","arguments"],"sources":["../../../../src/lib/table/simple-table/table-accessors.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable no-else-return */\n\nimport {Table, ArrayRowTable, ObjectRowTable} from '../../../types/category-table';\n\n/**\n * Returns the length of the table (i.e. the number of rows)\n */\nexport function getTableLength(table: Table): number {\n switch (table.shape) {\n case 'array-row-table':\n case 'object-row-table':\n return table.data.length;\n\n case 'geojson-table':\n return table.features.length;\n\n case 'arrow-table':\n const arrowTable = table.data as any;\n return arrowTable.numRows;\n\n case 'columnar-table':\n for (const column of Object.values(table.data)) {\n return column.length || 0;\n }\n return 0;\n default:\n throw new Error('table');\n }\n}\n\n/**\n * Returns the number of columns in the table\n * @throws Fails to deduce number of columns if the table has no schema and is empty\n */\nexport function getTableNumCols(table: Table): number {\n if (table.schema) {\n return table.schema.fields.length;\n }\n if (getTableLength(table) === 0) {\n throw new Error('empty table');\n }\n switch (table.shape) {\n case 'array-row-table':\n return table.data[0].length;\n case 'object-row-table':\n return Object.keys(table.data[0]).length;\n case 'geojson-table':\n return Object.keys(table.features[0]).length;\n case 'columnar-table':\n return Object.keys(table.data).length;\n case 'arrow-table':\n const arrowTable = table.data as any;\n return arrowTable.numCols;\n default:\n throw new Error('table');\n }\n}\n\n/** Get a table cell value at row index and column name */\nexport function getTableCell(table: Table, rowIndex: number, columnName: string): unknown {\n switch (table.shape) {\n case 'array-row-table':\n const columnIndex = getTableColumnIndex(table, columnName);\n return table.data[rowIndex][columnIndex];\n\n case 'object-row-table':\n return table.data[rowIndex][columnName];\n\n case 'geojson-table':\n return table.features[rowIndex][columnName];\n\n case 'columnar-table':\n const column = table.data[columnName];\n return column[rowIndex];\n\n case 'arrow-table':\n const arrowTable = table.data as any;\n const arrowColumnIndex = arrowTable.schema.fields.findIndex(\n (field) => field.name === columnName\n );\n return arrowTable.getChildAt(arrowColumnIndex)?.get(rowIndex);\n\n default:\n throw new Error('todo');\n }\n}\n\n/** Get a table cell value at row index and column name */\nexport function getTableCellAt(table: Table, rowIndex: number, columnIndex: number): unknown {\n switch (table.shape) {\n case 'array-row-table':\n return table.data[rowIndex][columnIndex];\n\n case 'object-row-table':\n const columnName1 = getTableColumnName(table, columnIndex);\n return table.data[rowIndex][columnName1];\n\n case 'geojson-table':\n const columnName2 = getTableColumnName(table, columnIndex);\n return table.features[rowIndex][columnName2];\n\n case 'columnar-table':\n const columnName3 = getTableColumnName(table, columnIndex);\n const column = table.data[columnName3];\n return column[rowIndex];\n\n case 'arrow-table':\n const arrowTable = table.data as any;\n return arrowTable.getChildAt(columnIndex)?.get(rowIndex);\n\n default:\n throw new Error('todo');\n }\n}\n\n/** Deduce the table row shape */\nexport function getTableRowShape(table: Table): 'array-row-table' | 'object-row-table' {\n switch (table.shape) {\n case 'array-row-table':\n case 'object-row-table':\n return table.shape;\n\n case 'geojson-table':\n // TODO - this is not correct, geojson-table is not a row table\n return 'object-row-table';\n\n case 'columnar-table':\n default:\n throw new Error('Not a row table');\n }\n}\n\n/** Get the index of a named table column. Requires the table to have a schema */\nexport function getTableColumnIndex(table: Table, columnName: string): number {\n const columnIndex = table.schema?.fields.findIndex((field) => field.name === columnName);\n if (columnIndex === undefined) {\n throw new Error(columnName);\n }\n return columnIndex;\n}\n\n/** Get the name of a table column by index. Requires the table to have a schema */\nexport function getTableColumnName(table: Table, columnIndex: number): string {\n const columnName = table.schema?.fields[columnIndex]?.name;\n if (!columnName) {\n throw new Error(`${columnIndex}`);\n }\n return columnName;\n}\n\n/**\n * Returns one row of the table in object format.\n * @param target Optional parameter will be used if needed to store the row. Can be reused between calls to improve performance\n * @returns an array representing the row. May be the original array in the row, a new object, or the target parameter\n */\n// eslint-disable-next-line complexity\nexport function getTableRowAsObject(\n table: Table,\n rowIndex: number,\n target?: {[columnName: string]: unknown},\n copy?: 'copy'\n): {[columnName: string]: unknown} {\n switch (table.shape) {\n case 'object-row-table':\n return copy ? Object.fromEntries(Object.entries(table.data[rowIndex])) : table.data[rowIndex];\n\n case 'array-row-table':\n if (table.schema) {\n const objectRow: {[columnName: string]: unknown} = target || {};\n for (let i = 0; i < table.schema.fields.length; i++) {\n objectRow[table.schema.fields[i].name] = table.data[rowIndex][i];\n }\n return objectRow;\n }\n throw new Error('no schema');\n\n case 'geojson-table':\n if (table.schema) {\n const objectRow: {[columnName: string]: unknown} = target || {};\n // TODO - should lift properties to top level\n for (let i = 0; i < table.schema.fields.length; i++) {\n objectRow[table.schema.fields[i].name] = table.features[rowIndex][i];\n }\n return objectRow;\n }\n throw new Error('no schema');\n\n case 'columnar-table':\n if (table.schema) {\n const objectRow: {[columnName: string]: unknown} = target || {};\n for (let i = 0; i < table.schema.fields.length; i++) {\n objectRow[table.schema.fields[i].name] =\n table.data[table.schema.fields[i].name][rowIndex];\n }\n return objectRow;\n } else {\n // eslint-disable-line no-else-return\n const objectRow: {[columnName: string]: unknown} = target || {};\n for (const [name, column] of Object.entries(table.data)) {\n objectRow[name] = column[rowIndex];\n }\n return objectRow;\n }\n\n case 'arrow-table':\n const arrowTable = table.data as any;\n const objectRow: {[columnName: string]: unknown} = target || {};\n const row = arrowTable.get(rowIndex);\n const schema = arrowTable.schema;\n for (let i = 0; i < schema.fields.length; i++) {\n objectRow[schema.fields[i].name] = row?.[schema.fields[i].name];\n }\n return objectRow;\n\n default:\n throw new Error('shape');\n }\n}\n\n/**\n * Returns one row of the table in array format.\n * @param target Optional parameter will be used if needed to store the row. Can be reused between calls to improve performance.\n * @returns an array representing the row. May be the original array in the row, a new object, or the target parameter\n */\n// eslint-disable-next-line complexity\nexport function getTableRowAsArray(\n table: Table,\n rowIndex: number,\n target?: unknown[],\n copy?: 'copy'\n): unknown[] {\n switch (table.shape) {\n case 'array-row-table':\n return copy ? Array.from(table.data[rowIndex]) : table.data[rowIndex];\n\n case 'object-row-table':\n if (table.schema) {\n const arrayRow: unknown[] = target || [];\n for (let i = 0; i < table.schema.fields.length; i++) {\n arrayRow[i] = table.data[rowIndex][table.schema.fields[i].name];\n }\n return arrayRow;\n }\n // Warning: just slap on the values, this risks mismatches between rows\n return Object.values(table.data[rowIndex]);\n\n case 'geojson-table':\n if (table.schema) {\n const arrayRow: unknown[] = target || [];\n // TODO - should lift properties to top level\n for (let i = 0; i < table.schema.fields.length; i++) {\n arrayRow[i] = table.features[rowIndex][table.schema.fields[i].name];\n }\n return arrayRow;\n }\n // Warning: just slap on the values, this risks mismatches between rows\n return Object.values(table.features[rowIndex]);\n\n case 'columnar-table':\n if (table.schema) {\n const arrayRow: unknown[] = target || [];\n for (let i = 0; i < table.schema.fields.length; i++) {\n arrayRow[i] = table.data[table.schema.fields[i].name][rowIndex];\n }\n return arrayRow;\n } else {\n // eslint-disable-line no-else-return\n const arrayRow: unknown[] = target || [];\n let i = 0;\n for (const column of Object.values(table.data)) {\n arrayRow[i] = column[rowIndex];\n i++;\n }\n return arrayRow;\n }\n\n case 'arrow-table':\n const arrowTable = table.data as any;\n const arrayRow: unknown[] = target || [];\n const row = arrowTable.get(rowIndex);\n const schema = arrowTable.schema;\n for (let i = 0; i < schema.fields.length; i++) {\n arrayRow[i] = row?.[schema.fields[i].name];\n }\n return arrayRow;\n\n default:\n throw new Error('shape');\n }\n}\n\n/** Convert any table into array row format */\nexport function makeArrayRowTable(table: Table): ArrayRowTable {\n if (table.shape === 'array-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<unknown[]>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsArray(table, rowIndex);\n }\n return {\n shape: 'array-row-table',\n schema: table.schema,\n data\n };\n}\n\n/** Convert any table into object row format */\nexport function makeObjectRowTable(table: Table): ObjectRowTable {\n if (table.shape === 'object-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<{[key: string]: unknown}>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsObject(table, rowIndex);\n }\n return {\n shape: 'object-row-table',\n schema: table.schema,\n data\n };\n}\n\n/** Convert any table into object row format */\nexport function makeColumnarTable(table: Table): ObjectRowTable {\n if (table.shape === 'object-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<{[key: string]: unknown}>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsObject(table, rowIndex);\n }\n return {\n shape: 'object-row-table',\n schema: table.schema,\n data\n };\n}\n\n// Row Iterators\n\n/**\n * Iterate over table rows\n * @param table\n * @param shape\n */\nexport function* makeRowIterator(\n table: Table,\n shape: 'object-row-table' | 'array-row-table'\n): Iterable<unknown[] | {[key: string]: unknown}> {\n switch (shape) {\n case 'array-row-table':\n yield* makeArrayRowIterator(table);\n break;\n case 'object-row-table':\n yield* makeObjectRowIterator(table);\n break;\n\n default:\n throw new Error(`Unknown row type ${shape}`);\n }\n}\n\n/**\n * Streaming processing: Iterate over table, yielding array rows\n * @param table\n * @param shape\n */\nexport function* makeArrayRowIterator(table: Table, target: unknown[] = []): Iterable<unknown[]> {\n const length = getTableLength(table);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n yield getTableRowAsArray(table, rowIndex, target);\n }\n}\n\n/**\n * Streaming processing: Iterate over table, yielding object rows\n * @param table\n * @param shape\n */\nexport function* makeObjectRowIterator(\n table: Table,\n target: {[key: string]: unknown} = {}\n): Iterable<{[key: string]: unknown}> {\n const length = getTableLength(table);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n yield getTableRowAsObject(table, rowIndex, target);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"table-accessors.js","names":["isTable","table","_table$data","shape","Array","isArray","data","features","Boolean","numRows","undefined","getTableLength","length","arrowTable","column","Object","values","Error","getTableNumCols","schema","fields","keys","numCols","getTableCell","rowIndex","columnName","_arrowTable$getChildA","columnIndex","getTableColumnIndex","arrowColumnIndex","findIndex","field","name","getChildAt","get","getTableCellAt","_arrowTable$getChildA2","columnName1","getTableColumnName","columnName2","columnName3","getTableRowShape","_table$schema","_table$schema2","_table$schema2$fields","getTableRowAsObject","target","copy","fromEntries","entries","objectRow","i","row","getTableRowAsArray","from","arrayRow","makeArrayRowTable","makeObjectRowTable","makeColumnarTable","makeRowIterator","makeArrayRowIterator","makeObjectRowIterator","arguments"],"sources":["../../../../src/lib/table/simple-table/table-accessors.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable no-else-return */\n\nimport {Table, ArrayRowTable, ObjectRowTable} from '../../../types/category-table';\n\nexport function isTable(table: any): table is Table {\n const shape = typeof table === 'object' && table?.shape;\n switch (shape) {\n case 'array-row-table':\n case 'object-row-table':\n return Array.isArray(table.data);\n\n case 'geojson-table':\n return Array.isArray(table.features);\n\n case 'columnar-table':\n return table.data && typeof table.data === 'object';\n\n case 'arrow-table':\n return Boolean(table?.data?.numRows !== undefined);\n\n default:\n return false;\n }\n}\n\n/**\n * Returns the length of the table (i.e. the number of rows)\n */\nexport function getTableLength(table: Table): number {\n switch (table.shape) {\n case 'array-row-table':\n case 'object-row-table':\n return table.data.length;\n\n case 'geojson-table':\n return table.features.length;\n\n case 'arrow-table':\n const arrowTable = table.data as any;\n return arrowTable.numRows;\n\n case 'columnar-table':\n for (const column of Object.values(table.data)) {\n return column.length || 0;\n }\n return 0;\n default:\n throw new Error('table');\n }\n}\n\n/**\n * Returns the number of columns in the table\n * @throws Fails to deduce number of columns if the table has no schema and is empty\n */\nexport function getTableNumCols(table: Table): number {\n if (table.schema) {\n return table.schema.fields.length;\n }\n if (getTableLength(table) === 0) {\n throw new Error('empty table');\n }\n switch (table.shape) {\n case 'array-row-table':\n return table.data[0].length;\n case 'object-row-table':\n return Object.keys(table.data[0]).length;\n case 'geojson-table':\n return Object.keys(table.features[0]).length;\n case 'columnar-table':\n return Object.keys(table.data).length;\n case 'arrow-table':\n const arrowTable = table.data as any;\n return arrowTable.numCols;\n default:\n throw new Error('table');\n }\n}\n\n/** Get a table cell value at row index and column name */\nexport function getTableCell(table: Table, rowIndex: number, columnName: string): unknown {\n switch (table.shape) {\n case 'array-row-table':\n const columnIndex = getTableColumnIndex(table, columnName);\n return table.data[rowIndex][columnIndex];\n\n case 'object-row-table':\n return table.data[rowIndex][columnName];\n\n case 'geojson-table':\n return table.features[rowIndex][columnName];\n\n case 'columnar-table':\n const column = table.data[columnName];\n return column[rowIndex];\n\n case 'arrow-table':\n const arrowTable = table.data as any;\n const arrowColumnIndex = arrowTable.schema.fields.findIndex(\n (field) => field.name === columnName\n );\n return arrowTable.getChildAt(arrowColumnIndex)?.get(rowIndex);\n\n default:\n throw new Error('todo');\n }\n}\n\n/** Get a table cell value at row index and column name */\nexport function getTableCellAt(table: Table, rowIndex: number, columnIndex: number): unknown {\n switch (table.shape) {\n case 'array-row-table':\n return table.data[rowIndex][columnIndex];\n\n case 'object-row-table':\n const columnName1 = getTableColumnName(table, columnIndex);\n return table.data[rowIndex][columnName1];\n\n case 'geojson-table':\n const columnName2 = getTableColumnName(table, columnIndex);\n return table.features[rowIndex][columnName2];\n\n case 'columnar-table':\n const columnName3 = getTableColumnName(table, columnIndex);\n const column = table.data[columnName3];\n return column[rowIndex];\n\n case 'arrow-table':\n const arrowTable = table.data as any;\n return arrowTable.getChildAt(columnIndex)?.get(rowIndex);\n\n default:\n throw new Error('todo');\n }\n}\n\n/** Deduce the table row shape */\nexport function getTableRowShape(table: Table): 'array-row-table' | 'object-row-table' {\n switch (table.shape) {\n case 'array-row-table':\n case 'object-row-table':\n return table.shape;\n\n case 'geojson-table':\n // TODO - this is not correct, geojson-table is not a row table\n return 'object-row-table';\n\n case 'columnar-table':\n default:\n throw new Error('Not a row table');\n }\n}\n\n/** Get the index of a named table column. Requires the table to have a schema */\nexport function getTableColumnIndex(table: Table, columnName: string): number {\n const columnIndex = table.schema?.fields.findIndex((field) => field.name === columnName);\n if (columnIndex === undefined) {\n throw new Error(columnName);\n }\n return columnIndex;\n}\n\n/** Get the name of a table column by index. Requires the table to have a schema */\nexport function getTableColumnName(table: Table, columnIndex: number): string {\n const columnName = table.schema?.fields[columnIndex]?.name;\n if (!columnName) {\n throw new Error(`${columnIndex}`);\n }\n return columnName;\n}\n\n/**\n * Returns one row of the table in object format.\n * @param target Optional parameter will be used if needed to store the row. Can be reused between calls to improve performance\n * @returns an array representing the row. May be the original array in the row, a new object, or the target parameter\n */\n// eslint-disable-next-line complexity\nexport function getTableRowAsObject(\n table: Table,\n rowIndex: number,\n target?: {[columnName: string]: unknown},\n copy?: 'copy'\n): {[columnName: string]: unknown} {\n switch (table.shape) {\n case 'object-row-table':\n return copy ? Object.fromEntries(Object.entries(table.data[rowIndex])) : table.data[rowIndex];\n\n case 'array-row-table':\n if (table.schema) {\n const objectRow: {[columnName: string]: unknown} = target || {};\n for (let i = 0; i < table.schema.fields.length; i++) {\n objectRow[table.schema.fields[i].name] = table.data[rowIndex][i];\n }\n return objectRow;\n }\n throw new Error('no schema');\n\n case 'geojson-table':\n if (table.schema) {\n const objectRow: {[columnName: string]: unknown} = target || {};\n // TODO - should lift properties to top level\n for (let i = 0; i < table.schema.fields.length; i++) {\n objectRow[table.schema.fields[i].name] = table.features[rowIndex][i];\n }\n return objectRow;\n }\n throw new Error('no schema');\n\n case 'columnar-table':\n if (table.schema) {\n const objectRow: {[columnName: string]: unknown} = target || {};\n for (let i = 0; i < table.schema.fields.length; i++) {\n objectRow[table.schema.fields[i].name] =\n table.data[table.schema.fields[i].name][rowIndex];\n }\n return objectRow;\n } else {\n // eslint-disable-line no-else-return\n const objectRow: {[columnName: string]: unknown} = target || {};\n for (const [name, column] of Object.entries(table.data)) {\n objectRow[name] = column[rowIndex];\n }\n return objectRow;\n }\n\n case 'arrow-table':\n const arrowTable = table.data as any;\n const objectRow: {[columnName: string]: unknown} = target || {};\n const row = arrowTable.get(rowIndex);\n const schema = arrowTable.schema;\n for (let i = 0; i < schema.fields.length; i++) {\n objectRow[schema.fields[i].name] = row?.[schema.fields[i].name];\n }\n return objectRow;\n\n default:\n throw new Error('shape');\n }\n}\n\n/**\n * Returns one row of the table in array format.\n * @param target Optional parameter will be used if needed to store the row. Can be reused between calls to improve performance.\n * @returns an array representing the row. May be the original array in the row, a new object, or the target parameter\n */\n// eslint-disable-next-line complexity\nexport function getTableRowAsArray(\n table: Table,\n rowIndex: number,\n target?: unknown[],\n copy?: 'copy'\n): unknown[] {\n switch (table.shape) {\n case 'array-row-table':\n return copy ? Array.from(table.data[rowIndex]) : table.data[rowIndex];\n\n case 'object-row-table':\n if (table.schema) {\n const arrayRow: unknown[] = target || [];\n for (let i = 0; i < table.schema.fields.length; i++) {\n arrayRow[i] = table.data[rowIndex][table.schema.fields[i].name];\n }\n return arrayRow;\n }\n // Warning: just slap on the values, this risks mismatches between rows\n return Object.values(table.data[rowIndex]);\n\n case 'geojson-table':\n if (table.schema) {\n const arrayRow: unknown[] = target || [];\n // TODO - should lift properties to top level\n for (let i = 0; i < table.schema.fields.length; i++) {\n arrayRow[i] = table.features[rowIndex][table.schema.fields[i].name];\n }\n return arrayRow;\n }\n // Warning: just slap on the values, this risks mismatches between rows\n return Object.values(table.features[rowIndex]);\n\n case 'columnar-table':\n if (table.schema) {\n const arrayRow: unknown[] = target || [];\n for (let i = 0; i < table.schema.fields.length; i++) {\n arrayRow[i] = table.data[table.schema.fields[i].name][rowIndex];\n }\n return arrayRow;\n } else {\n // eslint-disable-line no-else-return\n const arrayRow: unknown[] = target || [];\n let i = 0;\n for (const column of Object.values(table.data)) {\n arrayRow[i] = column[rowIndex];\n i++;\n }\n return arrayRow;\n }\n\n case 'arrow-table':\n const arrowTable = table.data as any;\n const arrayRow: unknown[] = target || [];\n const row = arrowTable.get(rowIndex);\n const schema = arrowTable.schema;\n for (let i = 0; i < schema.fields.length; i++) {\n arrayRow[i] = row?.[schema.fields[i].name];\n }\n return arrayRow;\n\n default:\n throw new Error('shape');\n }\n}\n\n/** Convert any table into array row format */\nexport function makeArrayRowTable(table: Table): ArrayRowTable {\n if (table.shape === 'array-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<unknown[]>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsArray(table, rowIndex);\n }\n return {\n shape: 'array-row-table',\n schema: table.schema,\n data\n };\n}\n\n/** Convert any table into object row format */\nexport function makeObjectRowTable(table: Table): ObjectRowTable {\n if (table.shape === 'object-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<{[key: string]: unknown}>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsObject(table, rowIndex);\n }\n return {\n shape: 'object-row-table',\n schema: table.schema,\n data\n };\n}\n\n/** Convert any table into object row format */\nexport function makeColumnarTable(table: Table): ObjectRowTable {\n if (table.shape === 'object-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<{[key: string]: unknown}>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsObject(table, rowIndex);\n }\n return {\n shape: 'object-row-table',\n schema: table.schema,\n data\n };\n}\n\n// Row Iterators\n\n/**\n * Iterate over table rows\n * @param table\n * @param shape\n */\nexport function* makeRowIterator(\n table: Table,\n shape: 'object-row-table' | 'array-row-table'\n): Iterable<unknown[] | {[key: string]: unknown}> {\n switch (shape) {\n case 'array-row-table':\n yield* makeArrayRowIterator(table);\n break;\n case 'object-row-table':\n yield* makeObjectRowIterator(table);\n break;\n\n default:\n throw new Error(`Unknown row type ${shape}`);\n }\n}\n\n/**\n * Streaming processing: Iterate over table, yielding array rows\n * @param table\n * @param shape\n */\nexport function* makeArrayRowIterator(table: Table, target: unknown[] = []): Iterable<unknown[]> {\n const length = getTableLength(table);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n yield getTableRowAsArray(table, rowIndex, target);\n }\n}\n\n/**\n * Streaming processing: Iterate over table, yielding object rows\n * @param table\n * @param shape\n */\nexport function* makeObjectRowIterator(\n table: Table,\n target: {[key: string]: unknown} = {}\n): Iterable<{[key: string]: unknown}> {\n const length = getTableLength(table);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n yield getTableRowAsObject(table, rowIndex, target);\n }\n}\n"],"mappings":"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"}
@@ -2,6 +2,11 @@
2
2
  export type KeyType = 'int8' | 'int16' | 'int32' | 'uint8' | 'uint16' | 'uint32';
3
3
  /** ArrowLike DataType class */
4
4
  export type DataType = 'null' | 'bool' | 'int' | 'int8' | 'int16' | 'int32' | 'int64' | 'uint8' | 'uint16' | 'uint32' | 'uint64' | 'float' | 'float16' | 'float32' | 'float64' | 'binary' | 'utf8' | 'date-day' | 'date-millisecond' | 'time-second' | 'time-millisecond' | 'time-microsecond' | 'time-nanosecond' | 'timestamp-second' | 'timestamp-millisecond' | 'timestamp-microsecond' | 'timestamp-nanosecond' | 'interval-daytime' | 'interval-yearmonth' | {
5
+ type: 'decimal';
6
+ bitWidth: number;
7
+ precision: number;
8
+ scale: number;
9
+ } | {
5
10
  type: 'list';
6
11
  children: Field[];
7
12
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAGA,0BAA0B;AAC1B,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjF,+BAA+B;AAC/B,MAAM,MAAM,QAAQ,GAChB,MAAM,GAEN,MAAM,GACN,KAAK,GACL,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,SAAS,GACT,SAAS,GACT,SAAS,GACT,QAAQ,GACR,MAAM,GACN,UAAU,GACV,kBAAkB,GAClB,aAAa,GACb,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,uBAAuB,GACvB,uBAAuB,GACvB,sBAAsB,GACtB,kBAAkB,GAClB,oBAAoB,GAEpB;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;CAAC,GACjC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;CAAC,GACnC;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,kBAAkB,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;CAC7C,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,kBAAkB,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;CAC7C,GACD;IAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,GAC9C;IAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;CAAC,GAC9D;IAAC,IAAI,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;CAAC,GACrD;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAC,CAAC;AAGjG;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACpD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnD,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAGA,0BAA0B;AAC1B,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEjF,+BAA+B;AAC/B,MAAM,MAAM,QAAQ,GAChB,MAAM,GAEN,MAAM,GACN,KAAK,GACL,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,SAAS,GACT,SAAS,GACT,SAAS,GACT,QAAQ,GACR,MAAM,GACN,UAAU,GACV,kBAAkB,GAClB,aAAa,GACb,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,uBAAuB,GACvB,uBAAuB,GACvB,sBAAsB,GACtB,kBAAkB,GAClB,oBAAoB,GAEpB;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,GACrE;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;CAAC,GACjC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;CAAC,GACnC;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,kBAAkB,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;CAC7C,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,kBAAkB,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;CAC7C,GACD;IAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,GAC9C;IAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;CAAC,GAC9D;IAAC,IAAI,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,KAAK,EAAE,CAAA;CAAC,GACrD;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAC,CAAC;AAGjG;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACpD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnD,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;CAC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":[],"sources":["../../src/types/schema.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n/** For dictionary type */\nexport type KeyType = 'int8' | 'int16' | 'int32' | 'uint8' | 'uint16' | 'uint32';\n\n/** ArrowLike DataType class */\nexport type DataType =\n | 'null'\n // Primitive types\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 | 'binary'\n | 'utf8'\n | 'date-day'\n | 'date-millisecond'\n | 'time-second'\n | 'time-millisecond'\n | 'time-microsecond'\n | 'time-nanosecond'\n | 'timestamp-second'\n | 'timestamp-millisecond'\n | 'timestamp-microsecond'\n | 'timestamp-nanosecond'\n | 'interval-daytime'\n | 'interval-yearmonth'\n // Composite types\n | {type: 'list'; children: Field[]} // one child only\n | {type: 'struct'; children: Field[]}\n | {\n type: 'sparse-union';\n typeIds: Int32Array;\n children: Field[];\n typeIdToChildIndex: {[key: number]: number};\n }\n | {\n type: 'dense-union';\n typeIds: Int32Array;\n children: Field[];\n typeIdToChildIndex: {[key: number]: number};\n }\n | {type: 'fixed-size-binary'; byteWidth: number}\n | {type: 'fixed-size-list'; listSize: number; children: Field[]}\n | {type: 'map'; keysSorted: boolean; children: Field[]} // Field is \"struct\"\n | {type: 'dictionary'; id: number; indices: KeyType; dictionary: DataType; isOrdered: boolean};\n// TODO - unions etc\n\n/**\n * SchemaMetadata\n */\nexport type SchemaMetadata = Record<string, string>;\nexport type FieldMetadata = Record<string, string>;\n\nexport type Field = {\n name: string;\n type: DataType;\n nullable?: boolean;\n metadata?: FieldMetadata;\n};\n\n/**\n * `Schema` type that that can hold all data required by an Arrow Schema\n * but is fully serializable. Helper functions make it easy to convert to and from arrow schemas\n * https://loaders.gl/arrowjs/docs/api-reference/schema\n */\nexport type Schema = {\n fields: Field[];\n metadata: SchemaMetadata;\n};\n"],"mappings":""}
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../src/types/schema.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright (c) vis.gl contributors\n\n/** For dictionary type */\nexport type KeyType = 'int8' | 'int16' | 'int32' | 'uint8' | 'uint16' | 'uint32';\n\n/** ArrowLike DataType class */\nexport type DataType =\n | 'null'\n // Primitive types\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 | 'binary'\n | 'utf8'\n | 'date-day'\n | 'date-millisecond'\n | 'time-second'\n | 'time-millisecond'\n | 'time-microsecond'\n | 'time-nanosecond'\n | 'timestamp-second'\n | 'timestamp-millisecond'\n | 'timestamp-microsecond'\n | 'timestamp-nanosecond'\n | 'interval-daytime'\n | 'interval-yearmonth'\n // Composite types\n | {type: 'decimal'; bitWidth: number; precision: number; scale: number}\n | {type: 'list'; children: Field[]} // one child only\n | {type: 'struct'; children: Field[]}\n | {\n type: 'sparse-union';\n typeIds: Int32Array;\n children: Field[];\n typeIdToChildIndex: {[key: number]: number};\n }\n | {\n type: 'dense-union';\n typeIds: Int32Array;\n children: Field[];\n typeIdToChildIndex: {[key: number]: number};\n }\n | {type: 'fixed-size-binary'; byteWidth: number}\n | {type: 'fixed-size-list'; listSize: number; children: Field[]}\n | {type: 'map'; keysSorted: boolean; children: Field[]} // Field is \"struct\"\n | {type: 'dictionary'; id: number; indices: KeyType; dictionary: DataType; isOrdered: boolean};\n// TODO - unions etc\n\n/**\n * SchemaMetadata\n */\nexport type SchemaMetadata = Record<string, string>;\nexport type FieldMetadata = Record<string, string>;\n\nexport type Field = {\n name: string;\n type: DataType;\n nullable?: boolean;\n metadata?: FieldMetadata;\n};\n\n/**\n * `Schema` type that that can hold all data required by an Arrow Schema\n * but is fully serializable. Helper functions make it easy to convert to and from arrow schemas\n * https://loaders.gl/arrowjs/docs/api-reference/schema\n */\nexport type Schema = {\n fields: Field[];\n metadata: SchemaMetadata;\n};\n"],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/schema",
3
- "version": "4.0.2",
3
+ "version": "4.0.4",
4
4
  "description": "Table format APIs for JSON, CSV, etc...",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -42,5 +42,5 @@
42
42
  "dependencies": {
43
43
  "@types/geojson": "^7946.0.7"
44
44
  },
45
- "gitHead": "471058d109d5652f28c32c1f296fd632f9a5c806"
45
+ "gitHead": "4dc810fa04bb400f4aedfef98a83c7ef882ed3d7"
46
46
  }
package/src/index.ts CHANGED
@@ -43,6 +43,7 @@ export {RowTableBatchAggregator} from './lib/table/batches/row-table-batch-aggre
43
43
  export {ColumnarTableBatchAggregator} from './lib/table/batches/columnar-table-batch-aggregator';
44
44
 
45
45
  export {
46
+ isTable,
46
47
  getTableLength,
47
48
  getTableNumCols,
48
49
  getTableCell,
@@ -61,7 +62,7 @@ export {ArrowLikeTable} from './lib/table/arrow-api/arrow-like-table';
61
62
  export {makeTableFromData} from './lib/table/simple-table/make-table';
62
63
  export {
63
64
  makeTableFromBatches,
64
- makeBatchesFromTable
65
+ makeBatchFromTable
65
66
  } from './lib/table/simple-table/make-table-from-batches';
66
67
  export {convertTable} from './lib/table/simple-table/convert-table';
67
68
  export {deduceTableSchema} from './lib/table/simple-table/table-schema';
@@ -12,14 +12,22 @@ import type {
12
12
  import {getTableLength} from '@loaders.gl/schema';
13
13
 
14
14
  /**
15
- * Returns an async iterator that yields a single table as a sequence of batches.
15
+ * Returns an iterator that yields a single table as a sequence of batches.
16
16
  * @note Currently only a single batch is yielded.
17
17
  * @note All batches will have the same shape and schema as the original table.
18
- * @param batchIterator
19
- * @returns `null` if no batches are yielded by the async iterator
18
+ * @returns
20
19
  */
21
20
  export function* makeBatchesFromTable(table: Table): IterableIterator<TableBatch> {
22
- yield {...table, length: getTableLength(table), batchType: 'data'};
21
+ yield makeBatchFromTable(table);
22
+ }
23
+
24
+ /**
25
+ * Returns a table packaged as a single table batch
26
+ * @note The batch will have the same shape and schema as the original table.
27
+ * @returns `null` if no batches are yielded by the async iterator
28
+ */
29
+ export function makeBatchFromTable(table: Table): TableBatch {
30
+ return {...table, length: getTableLength(table), batchType: 'data'};
23
31
  }
24
32
 
25
33
  /**
@@ -28,8 +36,9 @@ export function* makeBatchesFromTable(table: Table): IterableIterator<TableBatch
28
36
  * @param batchIterator
29
37
  * @returns `null` if no batches are yielded by the async iterator
30
38
  */
39
+ // eslint-disable-next-line complexity
31
40
  export async function makeTableFromBatches(
32
- batchIterator: AsyncIterableIterator<TableBatch> | IterableIterator<TableBatch>
41
+ batchIterator: AsyncIterable<TableBatch> | Iterable<TableBatch>
33
42
  ): Promise<Table | null> {
34
43
  let arrayRows: ArrayRowTable['data'];
35
44
  let objectRows: ObjectRowTable['data'];
@@ -5,6 +5,27 @@
5
5
 
6
6
  import {Table, ArrayRowTable, ObjectRowTable} from '../../../types/category-table';
7
7
 
8
+ export function isTable(table: any): table is Table {
9
+ const shape = typeof table === 'object' && table?.shape;
10
+ switch (shape) {
11
+ case 'array-row-table':
12
+ case 'object-row-table':
13
+ return Array.isArray(table.data);
14
+
15
+ case 'geojson-table':
16
+ return Array.isArray(table.features);
17
+
18
+ case 'columnar-table':
19
+ return table.data && typeof table.data === 'object';
20
+
21
+ case 'arrow-table':
22
+ return Boolean(table?.data?.numRows !== undefined);
23
+
24
+ default:
25
+ return false;
26
+ }
27
+ }
28
+
8
29
  /**
9
30
  * Returns the length of the table (i.e. the number of rows)
10
31
  */
@@ -37,6 +37,7 @@ export type DataType =
37
37
  | 'interval-daytime'
38
38
  | 'interval-yearmonth'
39
39
  // Composite types
40
+ | {type: 'decimal'; bitWidth: number; precision: number; scale: number}
40
41
  | {type: 'list'; children: Field[]} // one child only
41
42
  | {type: 'struct'; children: Field[]}
42
43
  | {