@loaders.gl/schema 4.0.0-alpha.23 → 4.0.0-alpha.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.min.js +543 -934
- package/dist/es5/index.js +7 -0
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/table/arrow-api/arrow-like-table.js +1 -1
- package/dist/es5/lib/table/arrow-api/arrow-like-table.js.map +1 -1
- package/dist/es5/lib/table/batches/row-table-batch-aggregator.js.map +1 -1
- package/dist/es5/lib/table/simple-table/convert-table.js +24 -0
- package/dist/es5/lib/table/simple-table/convert-table.js.map +1 -1
- package/dist/es5/lib/table/simple-table/table-accessors.js +52 -31
- package/dist/es5/lib/table/simple-table/table-accessors.js.map +1 -1
- package/dist/es5/types/batch.js +2 -0
- package/dist/es5/types/batch.js.map +1 -0
- package/dist/es5/types/binary-geometries.js.map +1 -1
- package/dist/es5/types/category-gis.js.map +1 -1
- package/dist/es5/types/category-table.js.map +1 -1
- package/dist/es5/types/schema.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/table/arrow-api/arrow-like-table.js +1 -1
- package/dist/esm/lib/table/arrow-api/arrow-like-table.js.map +1 -1
- package/dist/esm/lib/table/batches/row-table-batch-aggregator.js.map +1 -1
- package/dist/esm/lib/table/simple-table/convert-table.js +22 -0
- package/dist/esm/lib/table/simple-table/convert-table.js.map +1 -1
- package/dist/esm/lib/table/simple-table/table-accessors.js +32 -11
- package/dist/esm/lib/table/simple-table/table-accessors.js.map +1 -1
- package/dist/esm/types/batch.js +2 -0
- package/dist/esm/types/batch.js.map +1 -0
- package/dist/esm/types/binary-geometries.js.map +1 -1
- package/dist/esm/types/category-gis.js.map +1 -1
- package/dist/esm/types/category-table.js.map +1 -1
- package/dist/esm/types/schema.js.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/table/batches/row-table-batch-aggregator.d.ts +3 -3
- package/dist/lib/table/batches/row-table-batch-aggregator.d.ts.map +1 -1
- package/dist/lib/table/simple-table/convert-table.d.ts +34 -1
- package/dist/lib/table/simple-table/convert-table.d.ts.map +1 -1
- package/dist/lib/table/simple-table/table-accessors.d.ts.map +1 -1
- package/dist/types/batch.d.ts +34 -0
- package/dist/types/batch.d.ts.map +1 -0
- package/dist/types/binary-geometries.d.ts +9 -7
- package/dist/types/binary-geometries.d.ts.map +1 -1
- package/dist/types/category-gis.d.ts +1 -1
- package/dist/types/category-gis.d.ts.map +1 -1
- package/dist/types/category-table.d.ts +21 -13
- package/dist/types/category-table.d.ts.map +1 -1
- package/dist/types/schema.d.ts +0 -15
- package/dist/types/schema.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +13 -7
- package/src/lib/table/arrow-api/arrow-like-table.ts +1 -1
- package/src/lib/table/batches/row-table-batch-aggregator.ts +2 -2
- package/src/lib/table/simple-table/convert-table.ts +73 -1
- package/src/lib/table/simple-table/table-accessors.ts +41 -13
- package/src/types/batch.ts +41 -0
- package/src/types/binary-geometries.ts +10 -7
- package/src/types/category-gis.ts +5 -4
- package/src/types/category-table.ts +22 -13
- package/src/types/schema.ts +0 -17
- package/dist/bundle.js +0 -5
- package/dist/index.js +0 -92
- package/dist/lib/mesh/convert-mesh.js +0 -40
- package/dist/lib/mesh/deduce-mesh-schema.js +0 -66
- package/dist/lib/mesh/mesh-to-arrow-table.js +0 -44
- package/dist/lib/mesh/mesh-utils.js +0 -51
- package/dist/lib/table/arrow/arrow-type-utils.js +0 -53
- package/dist/lib/table/arrow/convert-schema-arrow.js +0 -187
- package/dist/lib/table/arrow/convert-table-to-arrow.js +0 -57
- package/dist/lib/table/arrow-api/arrow-like-field.js +0 -34
- package/dist/lib/table/arrow-api/arrow-like-schema.js +0 -81
- package/dist/lib/table/arrow-api/arrow-like-table.js +0 -53
- package/dist/lib/table/arrow-api/arrow-like-type.js +0 -463
- package/dist/lib/table/arrow-api/enum.js +0 -97
- package/dist/lib/table/arrow-api/get-type-info.js +0 -29
- package/dist/lib/table/arrow-api/index.js +0 -25
- package/dist/lib/table/batches/base-table-batch-aggregator.js +0 -60
- package/dist/lib/table/batches/columnar-table-batch-aggregator.js +0 -92
- package/dist/lib/table/batches/row-table-batch-aggregator.js +0 -81
- package/dist/lib/table/batches/table-batch-aggregator.js +0 -3
- package/dist/lib/table/batches/table-batch-builder.js +0 -152
- package/dist/lib/table/simple-table/convert-table.js +0 -65
- package/dist/lib/table/simple-table/data-type.js +0 -93
- package/dist/lib/table/simple-table/make-table.js +0 -95
- package/dist/lib/table/simple-table/row-utils.js +0 -33
- package/dist/lib/table/simple-table/table-accessors.js +0 -319
- package/dist/lib/table/simple-table/table-column.js +0 -41
- package/dist/lib/table/simple-table/table-schema.js +0 -85
- package/dist/lib/utils/assert.js +0 -12
- package/dist/lib/utils/async-queue.js +0 -92
- package/dist/types/binary-geometries.js +0 -2
- package/dist/types/category-gis.js +0 -3
- package/dist/types/category-image.js +0 -2
- package/dist/types/category-mesh.js +0 -3
- package/dist/types/category-table.js +0 -3
- package/dist/types/category-texture.js +0 -3
- package/dist/types/flat-geometries.js +0 -3
- package/dist/types/schema.js +0 -3
- package/dist/types/types.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-accessors.d.ts","sourceRoot":"","sources":["../../../../src/lib/table/simple-table/table-accessors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAAE,aAAa,EAAE,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAEnF;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"table-accessors.d.ts","sourceRoot":"","sources":["../../../../src/lib/table/simple-table/table-accessors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAAE,aAAa,EAAE,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAEnF;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAoBnD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAqBpD;AAED,0DAA0D;AAC1D,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAyBxF;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAwB3F;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,CAuDjC;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,CA0DX;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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Schema } from './schema';
|
|
2
|
+
import type { RecordBatch } from 'apache-arrow';
|
|
3
|
+
/**
|
|
4
|
+
* A batch of data (or metadata/schema), from a streaming loader
|
|
5
|
+
* @see parseInBatches()
|
|
6
|
+
* @see loadInBatches()
|
|
7
|
+
*/
|
|
8
|
+
export type Batch = {
|
|
9
|
+
/** A batch can contain metadata, data, or in case of unstructured data (JSON) */
|
|
10
|
+
batchType: 'data' | 'metadata' | 'partial-result' | 'final-result';
|
|
11
|
+
/** A string identifying the shape of data in this batch (table, etc) */
|
|
12
|
+
shape: string;
|
|
13
|
+
/** Schema of the data in this batch */
|
|
14
|
+
schema?: Schema;
|
|
15
|
+
/** Data in this batch */
|
|
16
|
+
data: unknown;
|
|
17
|
+
/** If this is an arrow table. @deprecated Use `data` */
|
|
18
|
+
recordBatch?: RecordBatch;
|
|
19
|
+
/** Length of data in this batch */
|
|
20
|
+
length: number;
|
|
21
|
+
/** A count of batches received */
|
|
22
|
+
batch?: number;
|
|
23
|
+
/** A count of batches received */
|
|
24
|
+
count?: number;
|
|
25
|
+
/** Bytes used so far */
|
|
26
|
+
bytesUsed?: number;
|
|
27
|
+
/** cursor is the */
|
|
28
|
+
cursor?: number;
|
|
29
|
+
/** MIME type of the data generating this batch */
|
|
30
|
+
mimeType?: string;
|
|
31
|
+
/** Any other data */
|
|
32
|
+
[key: string]: unknown;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=batch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../src/types/batch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAE9C;;;;GAIG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,iFAAiF;IACjF,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,gBAAgB,GAAG,cAAc,CAAC;IACnE,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,yDAAyD;IACzD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IAEf,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qBAAqB;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC"}
|
|
@@ -39,16 +39,18 @@ export type BinaryProperties = {
|
|
|
39
39
|
properties: Properties;
|
|
40
40
|
fields?: Properties;
|
|
41
41
|
};
|
|
42
|
-
|
|
43
|
-
export type
|
|
44
|
-
export type
|
|
42
|
+
/** Binary feature + binary attributes */
|
|
43
|
+
export type BinaryFeature = BinaryPointFeature | BinaryLineFeature | BinaryPolygonFeature;
|
|
44
|
+
export type BinaryPointFeature = BinaryPointGeometry & BinaryProperties;
|
|
45
|
+
export type BinaryLineFeature = BinaryLineGeometry & BinaryProperties;
|
|
46
|
+
export type BinaryPolygonFeature = BinaryPolygonGeometry & BinaryProperties;
|
|
45
47
|
/**
|
|
46
48
|
* Represent a collection of Features, similar to a GeoJSON FeatureCollection
|
|
47
49
|
*/
|
|
48
|
-
export type
|
|
49
|
-
points?:
|
|
50
|
-
lines?:
|
|
51
|
-
polygons?:
|
|
50
|
+
export type BinaryFeatureCollection = {
|
|
51
|
+
points?: BinaryPointFeature;
|
|
52
|
+
lines?: BinaryLineFeature;
|
|
53
|
+
polygons?: BinaryPolygonFeature;
|
|
52
54
|
};
|
|
53
55
|
export {};
|
|
54
56
|
//# sourceMappingURL=binary-geometries.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-geometries.d.ts","sourceRoot":"","sources":["../../src/types/binary-geometries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAIxC,MAAM,MAAM,eAAe,GAAG;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAAC;AAChE,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;AAEpE,KAAK,YAAY,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAC,CAAC;AACrD,KAAK,UAAU,GAAG,MAAM,EAAE,CAAC;AAE3B;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,qBAAqB,CAAC;AAE9F,mDAAmD;AACnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,eAAe,CAAC;CAC5B,CAAC;AAEF,qFAAqF;AACrF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,eAAe,CAAC;IAC3B,WAAW,EAAE,eAAe,CAAC;CAC9B,CAAC;AAEF,2FAA2F;AAC3F,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,eAAe,CAAC;IAC3B,cAAc,EAAE,eAAe,CAAC;IAChC,uBAAuB,EAAE,eAAe,CAAC;IACzC,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF,8CAA8C;AAC9C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,eAAe,CAAC;IAC5B,gBAAgB,EAAE,eAAe,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"binary-geometries.d.ts","sourceRoot":"","sources":["../../src/types/binary-geometries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAIxC,MAAM,MAAM,eAAe,GAAG;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAAC;AAChE,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;AAEpE,KAAK,YAAY,GAAG;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAC,CAAC;AACrD,KAAK,UAAU,GAAG,MAAM,EAAE,CAAC;AAE3B;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,qBAAqB,CAAC;AAE9F,mDAAmD;AACnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,eAAe,CAAC;CAC5B,CAAC;AAEF,qFAAqF;AACrF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,eAAe,CAAC;IAC3B,WAAW,EAAE,eAAe,CAAC;CAC9B,CAAC;AAEF,2FAA2F;AAC3F,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,eAAe,CAAC;IAC3B,cAAc,EAAE,eAAe,CAAC;IAChC,uBAAuB,EAAE,eAAe,CAAC;IACzC,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF,8CAA8C;AAC9C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,eAAe,CAAC;IAC5B,gBAAgB,EAAE,eAAe,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;AAE1F,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;AACxE,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,GAAG,gBAAgB,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { GeoJSON, Feature, FeatureCollection, Geometry, Position, GeoJsonProperties } from 'geojson';
|
|
2
2
|
export type { Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection } from 'geojson';
|
|
3
3
|
export type { FlatGeometryType, FlatIndexedGeometry, FlatPoint, FlatLineString, FlatPolygon, FlatGeometry, FlatFeature } from './flat-geometries';
|
|
4
|
-
export type { BinaryAttribute, BinaryGeometryType, BinaryGeometry, BinaryPointGeometry, BinaryLineGeometry, BinaryPolygonGeometry, BinaryProperties,
|
|
4
|
+
export type { BinaryAttribute, BinaryGeometryType, BinaryGeometry, BinaryPointGeometry, BinaryLineGeometry, BinaryPolygonGeometry, BinaryProperties, BinaryFeatureCollection, BinaryFeature, BinaryPointFeature, BinaryLineFeature, BinaryPolygonFeature } from './binary-geometries';
|
|
5
5
|
/** Aggregate information for converting GeoJSON into other formats */
|
|
6
6
|
export type GeojsonGeometryInfo = {
|
|
7
7
|
coordLength: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category-gis.d.ts","sourceRoot":"","sources":["../../src/types/category-gis.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,OAAO,EACP,OAAO,EACP,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,KAAK,EACL,UAAU,EACV,UAAU,EACV,eAAe,EACf,OAAO,EACP,YAAY,EACZ,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,
|
|
1
|
+
{"version":3,"file":"category-gis.d.ts","sourceRoot":"","sources":["../../src/types/category-gis.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,OAAO,EACP,OAAO,EACP,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,KAAK,EACL,UAAU,EACV,UAAU,EACV,eAAe,EACf,OAAO,EACP,YAAY,EACZ,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,sEAAsE;AACtE,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type { Table as ApacheArrowTable
|
|
2
|
-
import type {
|
|
1
|
+
import type { Table as ApacheArrowTable } from 'apache-arrow';
|
|
2
|
+
import type { Schema } from './schema';
|
|
3
|
+
import type { Batch } from './batch';
|
|
3
4
|
import type { Feature } from './category-gis';
|
|
4
5
|
/** A general table */
|
|
5
|
-
export type Table = RowTable | ArrayRowTable | ObjectRowTable |
|
|
6
|
+
export type Table = RowTable | ArrayRowTable | ObjectRowTable | GeoJSONTable | ColumnarTable | ArrowTable;
|
|
6
7
|
/** A table organized as an array of rows */
|
|
7
|
-
export type RowTable = ArrayRowTable | ObjectRowTable |
|
|
8
|
+
export type RowTable = ArrayRowTable | ObjectRowTable | GeoJSONTable;
|
|
8
9
|
/** A table organized as an array of rows, each row is an array of values */
|
|
9
10
|
export type ArrayRowTable = {
|
|
10
11
|
shape: 'array-row-table';
|
|
@@ -19,11 +20,17 @@ export type ObjectRowTable = {
|
|
|
19
20
|
[columnName: string]: any;
|
|
20
21
|
}[];
|
|
21
22
|
};
|
|
22
|
-
/**
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* A table organized as an array of rows, each row is a GeoJSON Feature
|
|
25
|
+
* @note For compatibility with GeoJSON, rows are stored in `table.features` instead of `table.data`
|
|
26
|
+
*/
|
|
27
|
+
export type GeoJSONTable = {
|
|
28
|
+
shape: 'geojson-table';
|
|
25
29
|
schema?: Schema;
|
|
26
|
-
|
|
30
|
+
/** For compatibility with GeoJSON, the type field must always be set to `FeatureCollection` */
|
|
31
|
+
type: 'FeatureCollection';
|
|
32
|
+
/** For compatibility with GeoJSON, rows are stored in `table.features` instead of `table.data` */
|
|
33
|
+
features: Feature[];
|
|
27
34
|
};
|
|
28
35
|
/** A table organized as a map of columns, each column is an array of value */
|
|
29
36
|
export type ColumnarTable = {
|
|
@@ -48,7 +55,7 @@ export type Tables<TableType = Table> = {
|
|
|
48
55
|
}[];
|
|
49
56
|
};
|
|
50
57
|
/** Batch for a general table */
|
|
51
|
-
export type TableBatch = ArrayRowTableBatch | ObjectRowTableBatch |
|
|
58
|
+
export type TableBatch = ArrayRowTableBatch | ObjectRowTableBatch | GeoJSONTableBatch | ColumnarTableBatch | ArrowTableBatch;
|
|
52
59
|
/** Batch for a table organized as an array of rows, each row is an array of values */
|
|
53
60
|
export type ArrayRowTableBatch = Batch & {
|
|
54
61
|
shape: 'array-row-table';
|
|
@@ -68,11 +75,12 @@ export type ObjectRowTableBatch = Batch & {
|
|
|
68
75
|
length: number;
|
|
69
76
|
};
|
|
70
77
|
/** Batch for a table organized as an array of rows, each row is an array of values */
|
|
71
|
-
export type
|
|
72
|
-
shape: 'geojson-
|
|
78
|
+
export type GeoJSONTableBatch = Batch & {
|
|
79
|
+
shape: 'geojson-table';
|
|
73
80
|
schema?: Schema;
|
|
74
81
|
schemaType?: 'explicit' | 'deduced';
|
|
75
|
-
|
|
82
|
+
type: 'FeatureCollection';
|
|
83
|
+
features: Feature[];
|
|
76
84
|
length: number;
|
|
77
85
|
};
|
|
78
86
|
/** Batch for a table organized as a map of columns, each column is an array of value */
|
|
@@ -90,7 +98,7 @@ export type ArrowTableBatch = Batch & {
|
|
|
90
98
|
shape: 'arrow-table';
|
|
91
99
|
schemaType?: 'explicit' | 'deduced';
|
|
92
100
|
schema?: Schema;
|
|
93
|
-
data:
|
|
101
|
+
data: ApacheArrowTable;
|
|
94
102
|
length: number;
|
|
95
103
|
};
|
|
96
104
|
//# sourceMappingURL=category-table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category-table.d.ts","sourceRoot":"","sources":["../../src/types/category-table.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,KAAK,IAAI,gBAAgB,
|
|
1
|
+
{"version":3,"file":"category-table.d.ts","sourceRoot":"","sources":["../../src/types/category-table.ts"],"names":[],"mappings":"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"}
|
package/dist/types/schema.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { RecordBatch } from 'apache-arrow';
|
|
2
1
|
/** For dictionary type */
|
|
3
2
|
export type KeyType = 'int8' | 'int16' | 'int32' | 'uint8' | 'uint16' | 'uint32';
|
|
4
3
|
/** ArrowLike DataType class */
|
|
@@ -60,18 +59,4 @@ export type Schema = {
|
|
|
60
59
|
fields: Field[];
|
|
61
60
|
metadata: SchemaMetadata;
|
|
62
61
|
};
|
|
63
|
-
export type Batch = {
|
|
64
|
-
batchType: 'data' | 'metadata' | 'partial-result' | 'final-result';
|
|
65
|
-
batch?: number;
|
|
66
|
-
mimeType?: string;
|
|
67
|
-
shape: string;
|
|
68
|
-
data: any;
|
|
69
|
-
recordBatch?: RecordBatch;
|
|
70
|
-
length: number;
|
|
71
|
-
schema?: Schema;
|
|
72
|
-
bytesUsed?: number;
|
|
73
|
-
count?: number;
|
|
74
|
-
cursor?: number;
|
|
75
|
-
[key: string]: any;
|
|
76
|
-
};
|
|
77
62
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"AAEA,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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/schema",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.25",
|
|
4
4
|
"description": "Table format APIs for JSON, CSV, etc...",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@types/geojson": "^7946.0.7"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "40135f391b869388dbbcd615bbe51178d0c370be"
|
|
38
38
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
// COMMON CATEGORY
|
|
2
2
|
export type {
|
|
3
3
|
TypedArray,
|
|
4
|
+
BigTypedArray,
|
|
4
5
|
TypedArrayConstructor,
|
|
6
|
+
BigTypedArrayConstructor,
|
|
5
7
|
NumberArray,
|
|
6
8
|
ArrayType,
|
|
7
9
|
AnyArray
|
|
8
10
|
} from './types/types';
|
|
9
11
|
|
|
10
|
-
export type {Schema, Field, DataType,
|
|
12
|
+
export type {Schema, Field, DataType, SchemaMetadata, FieldMetadata} from './types/schema';
|
|
13
|
+
|
|
14
|
+
export type {Batch} from './types/batch';
|
|
11
15
|
|
|
12
16
|
// TABLE CATEGORY TYPES
|
|
13
17
|
export type {
|
|
@@ -15,7 +19,7 @@ export type {
|
|
|
15
19
|
RowTable,
|
|
16
20
|
ArrayRowTable,
|
|
17
21
|
ObjectRowTable,
|
|
18
|
-
|
|
22
|
+
GeoJSONTable,
|
|
19
23
|
ColumnarTable,
|
|
20
24
|
ArrowTable,
|
|
21
25
|
Tables
|
|
@@ -24,7 +28,7 @@ export type {
|
|
|
24
28
|
TableBatch,
|
|
25
29
|
ArrayRowTableBatch,
|
|
26
30
|
ObjectRowTableBatch,
|
|
27
|
-
|
|
31
|
+
GeoJSONTableBatch,
|
|
28
32
|
ColumnarTableBatch,
|
|
29
33
|
ArrowTableBatch
|
|
30
34
|
} from './types/category-table';
|
|
@@ -52,6 +56,7 @@ export {
|
|
|
52
56
|
export {ArrowLikeTable} from './lib/table/arrow-api/arrow-like-table';
|
|
53
57
|
|
|
54
58
|
export {makeTableFromData} from './lib/table/simple-table/make-table';
|
|
59
|
+
export {convertTable} from './lib/table/simple-table/convert-table';
|
|
55
60
|
export {deduceTableSchema} from './lib/table/simple-table/table-schema';
|
|
56
61
|
export {convertToObjectRow, convertToArrayRow} from './lib/table/simple-table/row-utils';
|
|
57
62
|
export {getDataTypeFromArray} from './lib/table/simple-table/data-type';
|
|
@@ -122,10 +127,11 @@ export type {
|
|
|
122
127
|
BinaryAttribute
|
|
123
128
|
} from './types/category-gis';
|
|
124
129
|
export type {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
130
|
+
BinaryFeatureCollection,
|
|
131
|
+
BinaryFeature,
|
|
132
|
+
BinaryPointFeature,
|
|
133
|
+
BinaryLineFeature,
|
|
134
|
+
BinaryPolygonFeature
|
|
129
135
|
} from './types/category-gis';
|
|
130
136
|
|
|
131
137
|
// SCHEMA
|
|
@@ -13,8 +13,8 @@ export class RowTableBatchAggregator implements TableBatchAggregator {
|
|
|
13
13
|
options: TableBatchOptions;
|
|
14
14
|
|
|
15
15
|
length: number = 0;
|
|
16
|
-
objectRows: {[columnName: string]:
|
|
17
|
-
arrayRows:
|
|
16
|
+
objectRows: {[columnName: string]: unknown}[] | null = null;
|
|
17
|
+
arrayRows: unknown[][] | null = null;
|
|
18
18
|
cursor: number = 0;
|
|
19
19
|
private _headers: string[] = [];
|
|
20
20
|
|
|
@@ -5,10 +5,57 @@ import {
|
|
|
5
5
|
getTableRowAsArray,
|
|
6
6
|
getTableRowAsObject
|
|
7
7
|
} from './table-accessors';
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
Table,
|
|
10
|
+
ArrayRowTable,
|
|
11
|
+
ObjectRowTable,
|
|
12
|
+
ColumnarTable,
|
|
13
|
+
ArrowTable
|
|
14
|
+
} from '../../../types/category-table';
|
|
9
15
|
import {deduceTableSchema} from './table-schema';
|
|
10
16
|
import {makeColumnFromField} from './table-column';
|
|
11
17
|
|
|
18
|
+
export function convertTable(table: Table, shape: 'object-row-table'): ObjectRowTable;
|
|
19
|
+
export function convertTable(table: Table, shape: 'array-row-table'): ArrayRowTable;
|
|
20
|
+
export function convertTable(table: Table, shape: 'columnar-table'): ColumnarTable;
|
|
21
|
+
export function convertTable(table: Table, shape: 'arrow-table'): ArrowTable;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Convert a table to a different shape
|
|
25
|
+
* @param table
|
|
26
|
+
* @param shape
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
29
|
+
export function convertTable(
|
|
30
|
+
table: Table,
|
|
31
|
+
shape: 'object-row-table' | 'array-row-table' | 'columnar-table' | 'arrow-table'
|
|
32
|
+
) {
|
|
33
|
+
switch (shape) {
|
|
34
|
+
case 'object-row-table':
|
|
35
|
+
return makeObjectRowTable(table);
|
|
36
|
+
case 'array-row-table':
|
|
37
|
+
return makeArrayRowTable(table);
|
|
38
|
+
case 'columnar-table':
|
|
39
|
+
return makeColumnarTable(table);
|
|
40
|
+
case 'arrow-table':
|
|
41
|
+
return makeArrowTable(table);
|
|
42
|
+
default:
|
|
43
|
+
throw new Error(shape);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Convert a table to apache arrow format
|
|
49
|
+
* @note this depends on the `@loaders.gl/arrow module being imported
|
|
50
|
+
*/
|
|
51
|
+
export function makeArrowTable(table: Table): Table {
|
|
52
|
+
const _makeArrowTable = globalThis.__luma?._makeArrowTable;
|
|
53
|
+
if (!_makeArrowTable) {
|
|
54
|
+
throw new Error('');
|
|
55
|
+
}
|
|
56
|
+
return _makeArrowTable(table);
|
|
57
|
+
}
|
|
58
|
+
|
|
12
59
|
/** Convert any simple table into columnar format */
|
|
13
60
|
export function makeColumnarTable(table: Table): ColumnarTable {
|
|
14
61
|
// TODO - should schema really be optional?
|
|
@@ -70,3 +117,28 @@ export function makeObjectRowTable(table: Table): ObjectRowTable {
|
|
|
70
117
|
data
|
|
71
118
|
};
|
|
72
119
|
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
/**
|
|
123
|
+
*
|
|
124
|
+
* @note - should be part of schema module
|
|
125
|
+
export function convertColumnarToRowFormatTable(columnarTable: ColumnarTable): ObjectRowTable {
|
|
126
|
+
const tableKeys = ;
|
|
127
|
+
const tableRowsCount = columnarTable[tableKeys[0]].length;
|
|
128
|
+
|
|
129
|
+
const objectRows: ObjectRowTable['data'] = [];
|
|
130
|
+
|
|
131
|
+
for (let index = 0; index < tableRowsCount; index++) {
|
|
132
|
+
const objectRow = {};
|
|
133
|
+
for (const fieldName of Object.keys(columnarTable.data)) {
|
|
134
|
+
objectRow[fieldName] = columnarTable[fieldName][index];
|
|
135
|
+
}
|
|
136
|
+
objectRows.push(objectRow);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return {
|
|
140
|
+
shape: 'object-row-table',
|
|
141
|
+
data: objectRows
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
*/
|
|
@@ -11,9 +11,11 @@ export function getTableLength(table: Table): number {
|
|
|
11
11
|
switch (table.shape) {
|
|
12
12
|
case 'array-row-table':
|
|
13
13
|
case 'object-row-table':
|
|
14
|
-
case 'geojson-row-table':
|
|
15
14
|
return table.data.length;
|
|
16
15
|
|
|
16
|
+
case 'geojson-table':
|
|
17
|
+
return table.features.length;
|
|
18
|
+
|
|
17
19
|
case 'arrow-table':
|
|
18
20
|
return table.data.numRows;
|
|
19
21
|
|
|
@@ -42,12 +44,11 @@ export function getTableNumCols(table: Table): number {
|
|
|
42
44
|
case 'array-row-table':
|
|
43
45
|
return table.data[0].length;
|
|
44
46
|
case 'object-row-table':
|
|
45
|
-
case 'geojson-row-table':
|
|
46
47
|
return Object.keys(table.data[0]).length;
|
|
47
|
-
|
|
48
|
+
case 'geojson-table':
|
|
49
|
+
return Object.keys(table.features[0]).length;
|
|
48
50
|
case 'columnar-table':
|
|
49
51
|
return Object.keys(table.data).length;
|
|
50
|
-
|
|
51
52
|
case 'arrow-table':
|
|
52
53
|
return table.data.numCols;
|
|
53
54
|
default:
|
|
@@ -63,9 +64,11 @@ export function getTableCell(table: Table, rowIndex: number, columnName: string)
|
|
|
63
64
|
return table.data[rowIndex][columnIndex];
|
|
64
65
|
|
|
65
66
|
case 'object-row-table':
|
|
66
|
-
case 'geojson-row-table':
|
|
67
67
|
return table.data[rowIndex][columnName];
|
|
68
68
|
|
|
69
|
+
case 'geojson-table':
|
|
70
|
+
return table.features[rowIndex][columnName];
|
|
71
|
+
|
|
69
72
|
case 'columnar-table':
|
|
70
73
|
const column = table.data[columnName];
|
|
71
74
|
return column[rowIndex];
|
|
@@ -88,13 +91,16 @@ export function getTableCellAt(table: Table, rowIndex: number, columnIndex: numb
|
|
|
88
91
|
return table.data[rowIndex][columnIndex];
|
|
89
92
|
|
|
90
93
|
case 'object-row-table':
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
+
const columnName1 = getTableColumnName(table, columnIndex);
|
|
95
|
+
return table.data[rowIndex][columnName1];
|
|
96
|
+
|
|
97
|
+
case 'geojson-table':
|
|
98
|
+
const columnName2 = getTableColumnName(table, columnIndex);
|
|
99
|
+
return table.features[rowIndex][columnName2];
|
|
94
100
|
|
|
95
101
|
case 'columnar-table':
|
|
96
|
-
|
|
97
|
-
const column = table.data[
|
|
102
|
+
const columnName3 = getTableColumnName(table, columnIndex);
|
|
103
|
+
const column = table.data[columnName3];
|
|
98
104
|
return column[rowIndex];
|
|
99
105
|
|
|
100
106
|
case 'arrow-table':
|
|
@@ -112,7 +118,8 @@ export function getTableRowShape(table: Table): 'array-row-table' | 'object-row-
|
|
|
112
118
|
case 'object-row-table':
|
|
113
119
|
return table.shape;
|
|
114
120
|
|
|
115
|
-
case 'geojson-
|
|
121
|
+
case 'geojson-table':
|
|
122
|
+
// TODO - this is not correct, geojson-table is not a row table
|
|
116
123
|
return 'object-row-table';
|
|
117
124
|
|
|
118
125
|
case 'columnar-table':
|
|
@@ -156,7 +163,6 @@ export function getTableRowAsObject(
|
|
|
156
163
|
return copy ? Object.fromEntries(Object.entries(table.data[rowIndex])) : table.data[rowIndex];
|
|
157
164
|
|
|
158
165
|
case 'array-row-table':
|
|
159
|
-
case 'geojson-row-table':
|
|
160
166
|
if (table.schema) {
|
|
161
167
|
const objectRow: {[columnName: string]: unknown} = target || {};
|
|
162
168
|
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
@@ -166,6 +172,17 @@ export function getTableRowAsObject(
|
|
|
166
172
|
}
|
|
167
173
|
throw new Error('no schema');
|
|
168
174
|
|
|
175
|
+
case 'geojson-table':
|
|
176
|
+
if (table.schema) {
|
|
177
|
+
const objectRow: {[columnName: string]: unknown} = target || {};
|
|
178
|
+
// TODO - should lift properties to top level
|
|
179
|
+
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
180
|
+
objectRow[table.schema.fields[i].name] = table.features[rowIndex][i];
|
|
181
|
+
}
|
|
182
|
+
return objectRow;
|
|
183
|
+
}
|
|
184
|
+
throw new Error('no schema');
|
|
185
|
+
|
|
169
186
|
case 'columnar-table':
|
|
170
187
|
if (table.schema) {
|
|
171
188
|
const objectRow: {[columnName: string]: unknown} = target || {};
|
|
@@ -214,7 +231,6 @@ export function getTableRowAsArray(
|
|
|
214
231
|
return copy ? Array.from(table.data[rowIndex]) : table.data[rowIndex];
|
|
215
232
|
|
|
216
233
|
case 'object-row-table':
|
|
217
|
-
case 'geojson-row-table':
|
|
218
234
|
if (table.schema) {
|
|
219
235
|
const arrayRow: unknown[] = target || [];
|
|
220
236
|
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
@@ -225,6 +241,18 @@ export function getTableRowAsArray(
|
|
|
225
241
|
// Warning: just slap on the values, this risks mismatches between rows
|
|
226
242
|
return Object.values(table.data[rowIndex]);
|
|
227
243
|
|
|
244
|
+
case 'geojson-table':
|
|
245
|
+
if (table.schema) {
|
|
246
|
+
const arrayRow: unknown[] = target || [];
|
|
247
|
+
// TODO - should lift properties to top level
|
|
248
|
+
for (let i = 0; i < table.schema.fields.length; i++) {
|
|
249
|
+
arrayRow[i] = table.features[rowIndex][table.schema.fields[i].name];
|
|
250
|
+
}
|
|
251
|
+
return arrayRow;
|
|
252
|
+
}
|
|
253
|
+
// Warning: just slap on the values, this risks mismatches between rows
|
|
254
|
+
return Object.values(table.features[rowIndex]);
|
|
255
|
+
|
|
228
256
|
case 'columnar-table':
|
|
229
257
|
if (table.schema) {
|
|
230
258
|
const arrayRow: unknown[] = target || [];
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import {Schema} from './schema';
|
|
4
|
+
import type {RecordBatch} from 'apache-arrow';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* A batch of data (or metadata/schema), from a streaming loader
|
|
8
|
+
* @see parseInBatches()
|
|
9
|
+
* @see loadInBatches()
|
|
10
|
+
*/
|
|
11
|
+
export type Batch = {
|
|
12
|
+
/** A batch can contain metadata, data, or in case of unstructured data (JSON) */
|
|
13
|
+
batchType: 'data' | 'metadata' | 'partial-result' | 'final-result';
|
|
14
|
+
/** A string identifying the shape of data in this batch (table, etc) */
|
|
15
|
+
shape: string;
|
|
16
|
+
/** Schema of the data in this batch */
|
|
17
|
+
schema?: Schema;
|
|
18
|
+
/** Data in this batch */
|
|
19
|
+
data: unknown;
|
|
20
|
+
/** If this is an arrow table. @deprecated Use `data` */
|
|
21
|
+
recordBatch?: RecordBatch;
|
|
22
|
+
/** Length of data in this batch */
|
|
23
|
+
length: number;
|
|
24
|
+
|
|
25
|
+
/** A count of batches received */
|
|
26
|
+
batch?: number;
|
|
27
|
+
|
|
28
|
+
/** A count of batches received */
|
|
29
|
+
count?: number;
|
|
30
|
+
|
|
31
|
+
/** Bytes used so far */
|
|
32
|
+
bytesUsed?: number;
|
|
33
|
+
/** cursor is the */
|
|
34
|
+
cursor?: number;
|
|
35
|
+
|
|
36
|
+
/** MIME type of the data generating this batch */
|
|
37
|
+
mimeType?: string;
|
|
38
|
+
|
|
39
|
+
/** Any other data */
|
|
40
|
+
[key: string]: unknown;
|
|
41
|
+
};
|
|
@@ -45,15 +45,18 @@ export type BinaryProperties = {
|
|
|
45
45
|
fields?: Properties;
|
|
46
46
|
};
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
export type
|
|
50
|
-
|
|
48
|
+
/** Binary feature + binary attributes */
|
|
49
|
+
export type BinaryFeature = BinaryPointFeature | BinaryLineFeature | BinaryPolygonFeature;
|
|
50
|
+
|
|
51
|
+
export type BinaryPointFeature = BinaryPointGeometry & BinaryProperties;
|
|
52
|
+
export type BinaryLineFeature = BinaryLineGeometry & BinaryProperties;
|
|
53
|
+
export type BinaryPolygonFeature = BinaryPolygonGeometry & BinaryProperties;
|
|
51
54
|
|
|
52
55
|
/**
|
|
53
56
|
* Represent a collection of Features, similar to a GeoJSON FeatureCollection
|
|
54
57
|
*/
|
|
55
|
-
export type
|
|
56
|
-
points?:
|
|
57
|
-
lines?:
|
|
58
|
-
polygons?:
|
|
58
|
+
export type BinaryFeatureCollection = {
|
|
59
|
+
points?: BinaryPointFeature;
|
|
60
|
+
lines?: BinaryLineFeature;
|
|
61
|
+
polygons?: BinaryPolygonFeature;
|
|
59
62
|
};
|
|
@@ -40,10 +40,11 @@ export type {
|
|
|
40
40
|
BinaryLineGeometry,
|
|
41
41
|
BinaryPolygonGeometry,
|
|
42
42
|
BinaryProperties,
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
BinaryFeatureCollection,
|
|
44
|
+
BinaryFeature,
|
|
45
|
+
BinaryPointFeature,
|
|
46
|
+
BinaryLineFeature,
|
|
47
|
+
BinaryPolygonFeature
|
|
47
48
|
} from './binary-geometries';
|
|
48
49
|
|
|
49
50
|
/** Aggregate information for converting GeoJSON into other formats */
|