@loaders.gl/schema 4.0.0-alpha.4 → 4.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +2 -2
- package/dist/dist.min.js +13589 -0
- package/dist/es5/bundle.js +6 -0
- package/dist/es5/bundle.js.map +1 -0
- package/dist/es5/index.js +406 -0
- package/dist/es5/index.js.map +1 -0
- package/dist/es5/lib/mesh/convert-mesh.js +34 -0
- package/dist/es5/lib/mesh/convert-mesh.js.map +1 -0
- package/dist/es5/lib/mesh/deduce-mesh-schema.js +56 -0
- package/dist/es5/lib/mesh/deduce-mesh-schema.js.map +1 -0
- package/dist/es5/lib/mesh/mesh-to-arrow-table.js +2 -0
- package/dist/es5/lib/mesh/mesh-to-arrow-table.js.map +1 -0
- package/dist/es5/lib/mesh/mesh-utils.js +40 -0
- package/dist/es5/lib/mesh/mesh-utils.js.map +1 -0
- package/dist/es5/lib/table/arrow/arrow-type-utils.js +30 -0
- package/dist/es5/lib/table/arrow/arrow-type-utils.js.map +1 -0
- package/dist/es5/lib/table/arrow/convert-schema-arrow.js +179 -0
- package/dist/es5/lib/table/arrow/convert-schema-arrow.js.map +1 -0
- package/dist/es5/lib/table/arrow/convert-table-to-arrow.js +2 -0
- package/dist/es5/lib/table/arrow/convert-table-to-arrow.js.map +1 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-field.js +49 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-field.js.map +1 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-schema.js +118 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-schema.js.map +1 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-table.js +80 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-table.js.map +1 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-type.js +740 -0
- package/dist/es5/lib/table/arrow-api/arrow-like-type.js.map +1 -0
- package/dist/es5/lib/table/arrow-api/enum.js +55 -0
- package/dist/es5/lib/table/arrow-api/enum.js.map +1 -0
- package/dist/es5/lib/table/arrow-api/get-type-info.js +27 -0
- package/dist/es5/lib/table/arrow-api/get-type-info.js.map +1 -0
- package/dist/es5/lib/table/arrow-api/index.js +44 -0
- package/dist/es5/lib/table/arrow-api/index.js.map +1 -0
- package/dist/es5/lib/table/batches/base-table-batch-aggregator.js +78 -0
- package/dist/es5/lib/table/batches/base-table-batch-aggregator.js.map +1 -0
- package/dist/es5/lib/table/batches/columnar-table-batch-aggregator.js +106 -0
- package/dist/es5/lib/table/batches/columnar-table-batch-aggregator.js.map +1 -0
- package/dist/es5/lib/table/batches/row-table-batch-aggregator.js +96 -0
- package/dist/es5/lib/table/batches/row-table-batch-aggregator.js.map +1 -0
- package/dist/es5/lib/table/batches/table-batch-aggregator.js +2 -0
- package/dist/es5/lib/table/batches/table-batch-aggregator.js.map +1 -0
- package/dist/es5/lib/table/batches/table-batch-builder.js +173 -0
- package/dist/es5/lib/table/batches/table-batch-builder.js.map +1 -0
- package/dist/es5/lib/table/simple-table/convert-table.js +82 -0
- package/dist/es5/lib/table/simple-table/convert-table.js.map +1 -0
- package/dist/es5/lib/table/simple-table/data-type.js +94 -0
- package/dist/es5/lib/table/simple-table/data-type.js.map +1 -0
- package/dist/es5/lib/table/simple-table/make-table.js +60 -0
- package/dist/es5/lib/table/simple-table/make-table.js.map +1 -0
- package/dist/es5/lib/table/simple-table/row-utils.js +34 -0
- package/dist/es5/lib/table/simple-table/row-utils.js.map +1 -0
- package/dist/es5/lib/table/simple-table/table-accessors.js +343 -0
- package/dist/es5/lib/table/simple-table/table-accessors.js.map +1 -0
- package/dist/es5/lib/table/simple-table/table-column.js +12 -0
- package/dist/es5/lib/table/simple-table/table-column.js.map +1 -0
- package/dist/es5/lib/table/simple-table/table-schema.js +85 -0
- package/dist/es5/lib/table/simple-table/table-schema.js.map +1 -0
- package/dist/es5/lib/utils/assert.js +12 -0
- package/dist/es5/lib/utils/assert.js.map +1 -0
- package/dist/es5/lib/utils/async-queue.js +169 -0
- package/dist/es5/lib/utils/async-queue.js.map +1 -0
- package/dist/es5/types/category-gis.js +2 -0
- package/dist/es5/types/category-gis.js.map +1 -0
- package/dist/es5/types/category-image.js +2 -0
- package/dist/es5/types/category-image.js.map +1 -0
- package/dist/es5/types/category-mesh.js +2 -0
- package/dist/es5/types/category-mesh.js.map +1 -0
- package/dist/es5/types/category-table.js +2 -0
- package/dist/es5/types/category-table.js.map +1 -0
- package/dist/es5/types/category-texture.js +2 -0
- package/dist/es5/types/category-texture.js.map +1 -0
- package/dist/es5/types/schema.js +2 -0
- package/dist/es5/types/schema.js.map +1 -0
- package/dist/es5/types/types.js +2 -0
- package/dist/es5/types/types.js.map +1 -0
- package/dist/esm/bundle.js +4 -0
- package/dist/esm/bundle.js.map +1 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/{category → esm/lib}/mesh/convert-mesh.js +0 -11
- package/dist/esm/lib/mesh/convert-mesh.js.map +1 -0
- package/dist/esm/lib/mesh/deduce-mesh-schema.js +48 -0
- package/dist/esm/lib/mesh/deduce-mesh-schema.js.map +1 -0
- package/dist/esm/lib/mesh/mesh-to-arrow-table.js +2 -0
- package/dist/esm/lib/mesh/mesh-to-arrow-table.js.map +1 -0
- package/dist/{category → esm/lib}/mesh/mesh-utils.js +0 -5
- package/dist/esm/lib/mesh/mesh-utils.js.map +1 -0
- package/dist/{lib/arrow/arrow-like-type-utils.js → esm/lib/table/arrow/arrow-type-utils.js} +3 -11
- package/dist/esm/lib/table/arrow/arrow-type-utils.js.map +1 -0
- package/dist/esm/lib/table/arrow/convert-schema-arrow.js +158 -0
- package/dist/esm/lib/table/arrow/convert-schema-arrow.js.map +1 -0
- package/dist/esm/lib/table/arrow/convert-table-to-arrow.js +2 -0
- package/dist/esm/lib/table/arrow/convert-table-to-arrow.js.map +1 -0
- package/dist/{lib/schema/impl/field.js → esm/lib/table/arrow-api/arrow-like-field.js} +6 -13
- package/dist/esm/lib/table/arrow-api/arrow-like-field.js.map +1 -0
- package/dist/{lib/schema/impl/schema.js → esm/lib/table/arrow-api/arrow-like-schema.js} +22 -47
- package/dist/esm/lib/table/arrow-api/arrow-like-schema.js.map +1 -0
- package/dist/esm/lib/table/arrow-api/arrow-like-table.js +51 -0
- package/dist/esm/lib/table/arrow-api/arrow-like-table.js.map +1 -0
- package/dist/{lib/schema/impl/type.js → esm/lib/table/arrow-api/arrow-like-type.js} +11 -116
- package/dist/esm/lib/table/arrow-api/arrow-like-type.js.map +1 -0
- package/dist/{lib/schema/impl → esm/lib/table/arrow-api}/enum.js +3 -4
- package/dist/esm/lib/table/arrow-api/enum.js.map +1 -0
- package/dist/{lib/arrow → esm/lib/table/arrow-api}/get-type-info.js +1 -4
- package/dist/esm/lib/table/arrow-api/get-type-info.js.map +1 -0
- package/dist/esm/lib/table/arrow-api/index.js +5 -0
- package/dist/esm/lib/table/arrow-api/index.js.map +1 -0
- package/dist/{lib → esm/lib/table}/batches/base-table-batch-aggregator.js +1 -18
- package/dist/esm/lib/table/batches/base-table-batch-aggregator.js.map +1 -0
- package/dist/{lib → esm/lib/table}/batches/columnar-table-batch-aggregator.js +1 -24
- package/dist/esm/lib/table/batches/columnar-table-batch-aggregator.js.map +1 -0
- package/dist/{lib → esm/lib/table}/batches/row-table-batch-aggregator.js +2 -22
- package/dist/esm/lib/table/batches/row-table-batch-aggregator.js.map +1 -0
- package/dist/esm/lib/table/batches/table-batch-aggregator.js.map +1 -0
- package/dist/{lib → esm/lib/table}/batches/table-batch-builder.js +6 -49
- package/dist/esm/lib/table/batches/table-batch-builder.js.map +1 -0
- package/dist/esm/lib/table/simple-table/convert-table.js +59 -0
- package/dist/esm/lib/table/simple-table/convert-table.js.map +1 -0
- package/dist/esm/lib/table/simple-table/data-type.js +85 -0
- package/dist/esm/lib/table/simple-table/data-type.js.map +1 -0
- package/dist/esm/lib/table/simple-table/make-table.js +50 -0
- package/dist/esm/lib/table/simple-table/make-table.js.map +1 -0
- package/dist/{lib/utils → esm/lib/table/simple-table}/row-utils.js +0 -8
- package/dist/esm/lib/table/simple-table/row-utils.js.map +1 -0
- package/dist/esm/lib/table/simple-table/table-accessors.js +262 -0
- package/dist/esm/lib/table/simple-table/table-accessors.js.map +1 -0
- package/dist/esm/lib/table/simple-table/table-column.js +6 -0
- package/dist/esm/lib/table/simple-table/table-column.js.map +1 -0
- package/dist/esm/lib/table/simple-table/table-schema.js +70 -0
- package/dist/esm/lib/table/simple-table/table-schema.js.map +1 -0
- package/dist/esm/lib/utils/assert.js +6 -0
- package/dist/esm/lib/utils/assert.js.map +1 -0
- package/dist/esm/lib/utils/async-queue.js +94 -0
- package/dist/esm/lib/utils/async-queue.js.map +1 -0
- package/dist/esm/types/category-gis.js +2 -0
- package/dist/esm/types/category-gis.js.map +1 -0
- package/dist/esm/types/category-image.js +2 -0
- package/dist/esm/types/category-image.js.map +1 -0
- package/dist/esm/types/category-mesh.js +2 -0
- package/dist/esm/types/category-mesh.js.map +1 -0
- package/dist/esm/types/category-table.js +2 -0
- package/dist/esm/types/category-table.js.map +1 -0
- package/dist/esm/types/category-texture.js +2 -0
- package/dist/esm/types/category-texture.js.map +1 -0
- package/dist/esm/types/schema.js +2 -0
- package/dist/esm/types/schema.js.map +1 -0
- package/dist/esm/types/types.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +92 -13
- package/dist/lib/mesh/convert-mesh.d.ts +15 -0
- package/dist/lib/mesh/convert-mesh.d.ts.map +1 -0
- package/dist/lib/mesh/convert-mesh.js +40 -0
- package/dist/lib/mesh/deduce-mesh-schema.d.ts +24 -0
- package/dist/lib/mesh/deduce-mesh-schema.d.ts.map +1 -0
- package/dist/lib/mesh/deduce-mesh-schema.js +66 -0
- package/dist/lib/mesh/mesh-to-arrow-table.d.ts +1 -0
- package/dist/lib/mesh/mesh-to-arrow-table.d.ts.map +1 -0
- package/dist/lib/mesh/mesh-to-arrow-table.js +44 -0
- package/dist/lib/mesh/mesh-utils.d.ts +23 -0
- package/dist/lib/mesh/mesh-utils.d.ts.map +1 -0
- package/dist/lib/mesh/mesh-utils.js +51 -0
- package/dist/lib/table/arrow/arrow-type-utils.d.ts +4 -0
- package/dist/lib/table/arrow/arrow-type-utils.d.ts.map +1 -0
- package/dist/lib/table/arrow/arrow-type-utils.js +53 -0
- package/dist/lib/table/arrow/convert-schema-arrow.d.ts +13 -0
- package/dist/lib/table/arrow/convert-schema-arrow.d.ts.map +1 -0
- package/dist/lib/table/arrow/convert-schema-arrow.js +187 -0
- package/dist/lib/table/arrow/convert-table-to-arrow.d.ts +42 -0
- package/dist/lib/table/arrow/convert-table-to-arrow.d.ts.map +1 -0
- package/dist/lib/table/arrow/convert-table-to-arrow.js +57 -0
- package/dist/lib/table/arrow-api/arrow-like-field.d.ts +19 -0
- package/dist/lib/table/arrow-api/arrow-like-field.d.ts.map +1 -0
- package/dist/lib/table/arrow-api/arrow-like-field.js +34 -0
- package/dist/lib/table/arrow-api/arrow-like-schema.d.ts +12 -0
- package/dist/lib/table/arrow-api/arrow-like-schema.d.ts.map +1 -0
- package/dist/lib/table/arrow-api/arrow-like-schema.js +81 -0
- package/dist/lib/table/arrow-api/arrow-like-table.d.ts +28 -0
- package/dist/lib/table/arrow-api/arrow-like-table.d.ts.map +1 -0
- package/dist/lib/table/arrow-api/arrow-like-table.js +53 -0
- package/dist/lib/table/arrow-api/arrow-like-type.d.ts +177 -0
- package/dist/lib/table/arrow-api/arrow-like-type.d.ts.map +1 -0
- package/dist/lib/table/arrow-api/arrow-like-type.js +463 -0
- package/dist/lib/table/arrow-api/enum.d.ts +92 -0
- package/dist/lib/table/arrow-api/enum.d.ts.map +1 -0
- package/dist/lib/table/arrow-api/enum.js +97 -0
- package/dist/lib/table/arrow-api/get-type-info.d.ts +13 -0
- package/dist/lib/table/arrow-api/get-type-info.d.ts.map +1 -0
- package/dist/lib/table/arrow-api/get-type-info.js +29 -0
- package/dist/lib/table/arrow-api/index.d.ts +5 -0
- package/dist/lib/table/arrow-api/index.d.ts.map +1 -0
- package/dist/lib/table/arrow-api/index.js +25 -0
- package/dist/lib/table/batches/base-table-batch-aggregator.d.ts +19 -0
- package/dist/lib/table/batches/base-table-batch-aggregator.d.ts.map +1 -0
- package/dist/lib/table/batches/base-table-batch-aggregator.js +60 -0
- package/dist/lib/table/batches/columnar-table-batch-aggregator.d.ts +23 -0
- package/dist/lib/table/batches/columnar-table-batch-aggregator.d.ts.map +1 -0
- package/dist/lib/table/batches/columnar-table-batch-aggregator.js +92 -0
- package/dist/lib/table/batches/row-table-batch-aggregator.d.ts +22 -0
- package/dist/lib/table/batches/row-table-batch-aggregator.d.ts.map +1 -0
- package/dist/lib/table/batches/row-table-batch-aggregator.js +81 -0
- package/dist/lib/table/batches/table-batch-aggregator.d.ts +25 -0
- package/dist/lib/table/batches/table-batch-aggregator.d.ts.map +1 -0
- package/dist/lib/table/batches/table-batch-aggregator.js +3 -0
- package/dist/lib/table/batches/table-batch-builder.d.ts +53 -0
- package/dist/lib/table/batches/table-batch-builder.d.ts.map +1 -0
- package/dist/lib/table/batches/table-batch-builder.js +152 -0
- package/dist/lib/table/simple-table/convert-table.d.ts +8 -0
- package/dist/lib/table/simple-table/convert-table.d.ts.map +1 -0
- package/dist/lib/table/simple-table/convert-table.js +65 -0
- package/dist/lib/table/simple-table/data-type.d.ts +17 -0
- package/dist/lib/table/simple-table/data-type.d.ts.map +1 -0
- package/dist/lib/table/simple-table/data-type.js +93 -0
- package/dist/lib/table/simple-table/make-table.d.ts +65 -0
- package/dist/lib/table/simple-table/make-table.d.ts.map +1 -0
- package/dist/lib/table/simple-table/make-table.js +95 -0
- package/dist/lib/table/simple-table/row-utils.d.ts +9 -0
- package/dist/lib/table/simple-table/row-utils.d.ts.map +1 -0
- package/dist/lib/table/simple-table/row-utils.js +33 -0
- package/dist/lib/table/simple-table/table-accessors.d.ts +67 -0
- package/dist/lib/table/simple-table/table-accessors.d.ts.map +1 -0
- package/dist/lib/table/simple-table/table-accessors.js +319 -0
- package/dist/lib/table/simple-table/table-column.d.ts +7 -0
- package/dist/lib/table/simple-table/table-column.d.ts.map +1 -0
- package/dist/lib/table/simple-table/table-column.js +41 -0
- package/dist/lib/table/simple-table/table-schema.d.ts +15 -0
- package/dist/lib/table/simple-table/table-schema.d.ts.map +1 -0
- package/dist/lib/table/simple-table/table-schema.js +85 -0
- package/dist/lib/utils/assert.d.ts +2 -0
- package/dist/lib/utils/assert.d.ts.map +1 -0
- package/dist/lib/utils/assert.js +11 -5
- package/dist/lib/utils/async-queue.d.ts +18 -0
- package/dist/lib/utils/async-queue.d.ts.map +1 -0
- package/dist/lib/utils/async-queue.js +82 -109
- package/dist/types/category-gis.d.ts +99 -0
- package/dist/types/category-gis.d.ts.map +1 -0
- package/dist/types/category-gis.js +2 -0
- package/dist/types/category-image.d.ts +18 -0
- package/dist/types/category-image.d.ts.map +1 -0
- package/dist/types/category-image.js +2 -0
- package/dist/types/category-mesh.d.ts +48 -0
- package/dist/types/category-mesh.d.ts.map +1 -0
- package/dist/types/category-mesh.js +3 -0
- package/dist/types/category-table.d.ts +86 -0
- package/dist/types/category-table.d.ts.map +1 -0
- package/dist/types/category-table.js +3 -0
- package/dist/types/category-texture.d.ts +18 -0
- package/dist/types/category-texture.d.ts.map +1 -0
- package/dist/types/category-texture.js +3 -0
- package/dist/types/schema.d.ts +77 -0
- package/dist/types/schema.d.ts.map +1 -0
- package/dist/types/schema.js +3 -0
- package/dist/types/types.d.ts +15 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/types.js +2 -0
- package/package.json +7 -8
- package/src/index.ts +82 -29
- package/src/{category → lib}/mesh/convert-mesh.ts +10 -8
- package/src/{category → lib}/mesh/deduce-mesh-schema.ts +20 -19
- package/src/{category → lib}/mesh/mesh-to-arrow-table.ts +5 -3
- package/src/{category → lib}/mesh/mesh-utils.ts +2 -2
- package/src/lib/{arrow → table/arrow}/arrow-type-utils.ts +16 -12
- package/src/lib/table/arrow/convert-schema-arrow.ts +232 -0
- package/src/lib/table/arrow/convert-table-to-arrow.ts +59 -0
- package/src/lib/{schema/impl/field.ts → table/arrow-api/arrow-like-field.ts} +6 -4
- package/src/lib/table/arrow-api/arrow-like-schema.ts +99 -0
- package/src/lib/table/arrow-api/arrow-like-table.ts +83 -0
- package/src/lib/{schema/impl/type.ts → table/arrow-api/arrow-like-type.ts} +2 -1
- package/src/lib/{arrow → table/arrow-api}/get-type-info.ts +4 -3
- package/src/lib/table/arrow-api/index.ts +6 -0
- package/src/lib/{batches → table/batches}/base-table-batch-aggregator.ts +5 -3
- package/src/lib/{batches → table/batches}/columnar-table-batch-aggregator.ts +5 -3
- package/src/lib/{batches → table/batches}/row-table-batch-aggregator.ts +6 -4
- package/src/lib/{batches → table/batches}/table-batch-aggregator.ts +4 -2
- package/src/lib/{batches → table/batches}/table-batch-builder.ts +8 -6
- package/src/lib/table/simple-table/convert-table.ts +72 -0
- package/src/lib/table/simple-table/data-type.ts +102 -0
- package/src/lib/table/simple-table/make-table.ts +108 -0
- package/src/lib/table/simple-table/table-accessors.ts +360 -0
- package/src/lib/table/simple-table/table-column.ts +47 -0
- package/src/lib/table/simple-table/table-schema.ts +97 -0
- package/src/types/category-gis.ts +136 -0
- package/src/types/category-image.ts +19 -0
- package/src/{category/mesh/mesh-types.ts → types/category-mesh.ts} +6 -4
- package/src/types/category-table.ts +104 -0
- package/src/types/category-texture.ts +30 -0
- package/src/types/schema.ts +97 -0
- package/src/types/types.ts +43 -0
- package/dist/bundle.js.map +0 -1
- package/dist/category/common.js +0 -2
- package/dist/category/common.js.map +0 -1
- package/dist/category/gis.js +0 -2
- package/dist/category/gis.js.map +0 -1
- package/dist/category/mesh/convert-mesh.js.map +0 -1
- package/dist/category/mesh/deduce-mesh-schema.js +0 -42
- package/dist/category/mesh/deduce-mesh-schema.js.map +0 -1
- package/dist/category/mesh/mesh-to-arrow-table.js +0 -31
- package/dist/category/mesh/mesh-to-arrow-table.js.map +0 -1
- package/dist/category/mesh/mesh-types.js +0 -2
- package/dist/category/mesh/mesh-types.js.map +0 -1
- package/dist/category/mesh/mesh-utils.js.map +0 -1
- package/dist/category/table/deduce-table-schema.js +0 -51
- package/dist/category/table/deduce-table-schema.js.map +0 -1
- package/dist/category/table/table-types.js +0 -2
- package/dist/category/table/table-types.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/arrow/arrow-like-type-utils.js.map +0 -1
- package/dist/lib/arrow/arrow-type-utils.js +0 -62
- package/dist/lib/arrow/arrow-type-utils.js.map +0 -1
- package/dist/lib/arrow/get-type-info.js.map +0 -1
- package/dist/lib/batches/base-table-batch-aggregator.js.map +0 -1
- package/dist/lib/batches/columnar-table-batch-aggregator.js.map +0 -1
- package/dist/lib/batches/row-table-batch-aggregator.js.map +0 -1
- package/dist/lib/batches/table-batch-aggregator.js.map +0 -1
- package/dist/lib/batches/table-batch-builder.js.map +0 -1
- package/dist/lib/schema/impl/enum.js.map +0 -1
- package/dist/lib/schema/impl/field.js.map +0 -1
- package/dist/lib/schema/impl/schema.js.map +0 -1
- package/dist/lib/schema/impl/type.js.map +0 -1
- package/dist/lib/schema/index.js +0 -5
- package/dist/lib/schema/index.js.map +0 -1
- package/dist/lib/schema-utils/deduce-column-type.js +0 -23
- package/dist/lib/schema-utils/deduce-column-type.js.map +0 -1
- package/dist/lib/utils/assert.js.map +0 -1
- package/dist/lib/utils/async-queue.js.map +0 -1
- package/dist/lib/utils/row-utils.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/src/category/common.ts +0 -30
- package/src/category/gis.ts +0 -61
- package/src/category/table/deduce-table-schema.ts +0 -123
- package/src/category/table/table-types.ts +0 -81
- package/src/lib/arrow/arrow-like-type-utils.ts +0 -25
- package/src/lib/schema/impl/schema.ts +0 -99
- package/src/lib/schema/index.ts +0 -82
- package/src/lib/schema-utils/deduce-column-type.ts +0 -92
- package/src/types.ts +0 -19
- /package/dist/{lib → esm/lib/table}/batches/table-batch-aggregator.js +0 -0
- /package/dist/{types.js → esm/types/types.js} +0 -0
- /package/src/lib/{schema/impl → table/arrow-api}/enum.ts +0 -0
- /package/src/lib/{utils → table/simple-table}/row-utils.ts +0 -0
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { Field as ArrowField, Schema as ArrowSchema, Null, Binary, Bool, Int8, Int16, Int32, Int64, Uint8, Uint16, Uint32, Uint64, Float16, Float32, Float64, Utf8, DateDay, DateMillisecond, TimeMillisecond, TimeSecond, TimestampSecond, TimestampMillisecond, TimestampMicrosecond, TimestampNanosecond, IntervalDayTime, IntervalYearMonth, FixedSizeList, Struct } from 'apache-arrow/Arrow.dom';
|
|
2
|
+
export function serializeArrowSchema(arrowSchema) {
|
|
3
|
+
return {
|
|
4
|
+
fields: arrowSchema.fields.map(arrowField => serializeArrowField(arrowField)),
|
|
5
|
+
metadata: serializeArrowMetadata(arrowSchema.metadata)
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export function deserializeArrowSchema(schema) {
|
|
9
|
+
return new ArrowSchema(schema.fields.map(field => deserializeArrowField(field)), deserializeArrowMetadata(schema.metadata));
|
|
10
|
+
}
|
|
11
|
+
export function serializeArrowMetadata(arrowMetadata) {
|
|
12
|
+
return Object.fromEntries(arrowMetadata);
|
|
13
|
+
}
|
|
14
|
+
export function deserializeArrowMetadata(metadata) {
|
|
15
|
+
return metadata ? new Map(Object.entries(metadata)) : new Map();
|
|
16
|
+
}
|
|
17
|
+
export function serializeArrowField(field) {
|
|
18
|
+
return {
|
|
19
|
+
name: field.name,
|
|
20
|
+
type: serializeArrowType(field.type),
|
|
21
|
+
nullable: field.nullable,
|
|
22
|
+
metadata: serializeArrowMetadata(field.metadata)
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function deserializeArrowField(field) {
|
|
26
|
+
return new ArrowField(field.name, deserializeArrowType(field.type), field.nullable, deserializeArrowMetadata(field.metadata));
|
|
27
|
+
}
|
|
28
|
+
export function serializeArrowType(arrowType) {
|
|
29
|
+
switch (arrowType.constructor) {
|
|
30
|
+
case Null:
|
|
31
|
+
return 'null';
|
|
32
|
+
case Binary:
|
|
33
|
+
return 'binary';
|
|
34
|
+
case Bool:
|
|
35
|
+
return 'bool';
|
|
36
|
+
case Int8:
|
|
37
|
+
return 'int8';
|
|
38
|
+
case Int16:
|
|
39
|
+
return 'int16';
|
|
40
|
+
case Int32:
|
|
41
|
+
return 'int32';
|
|
42
|
+
case Int64:
|
|
43
|
+
return 'int64';
|
|
44
|
+
case Uint8:
|
|
45
|
+
return 'uint8';
|
|
46
|
+
case Uint16:
|
|
47
|
+
return 'uint16';
|
|
48
|
+
case Uint32:
|
|
49
|
+
return 'uint32';
|
|
50
|
+
case Uint64:
|
|
51
|
+
return 'uint64';
|
|
52
|
+
case Float16:
|
|
53
|
+
return 'float16';
|
|
54
|
+
case Float32:
|
|
55
|
+
return 'float32';
|
|
56
|
+
case Float64:
|
|
57
|
+
return 'float64';
|
|
58
|
+
case Utf8:
|
|
59
|
+
return 'utf8';
|
|
60
|
+
case DateDay:
|
|
61
|
+
return 'date-day';
|
|
62
|
+
case DateMillisecond:
|
|
63
|
+
return 'date-millisecond';
|
|
64
|
+
case TimeMillisecond:
|
|
65
|
+
return 'time-millisecond';
|
|
66
|
+
case TimeSecond:
|
|
67
|
+
return 'time-second';
|
|
68
|
+
case TimestampSecond:
|
|
69
|
+
return 'timestamp-second';
|
|
70
|
+
case TimestampMillisecond:
|
|
71
|
+
return 'timestamp-millisecond';
|
|
72
|
+
case TimestampMicrosecond:
|
|
73
|
+
return 'timestamp-microsecond';
|
|
74
|
+
case TimestampNanosecond:
|
|
75
|
+
return 'timestamp-nanosecond';
|
|
76
|
+
case IntervalDayTime:
|
|
77
|
+
return 'interval-daytime';
|
|
78
|
+
case IntervalYearMonth:
|
|
79
|
+
return 'interval-yearmonth';
|
|
80
|
+
case FixedSizeList:
|
|
81
|
+
return {
|
|
82
|
+
type: 'fixed-size-list',
|
|
83
|
+
listSize: arrowType.listSize,
|
|
84
|
+
children: [serializeArrowField(arrowType.children[0])]
|
|
85
|
+
};
|
|
86
|
+
default:
|
|
87
|
+
throw new Error('array type not supported');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export function deserializeArrowType(dataType) {
|
|
91
|
+
if (typeof dataType === 'object') {
|
|
92
|
+
switch (dataType.type) {
|
|
93
|
+
case 'fixed-size-list':
|
|
94
|
+
const child = deserializeArrowField(dataType.children[0]);
|
|
95
|
+
return new FixedSizeList(dataType.listSize, child);
|
|
96
|
+
case 'struct':
|
|
97
|
+
const children = dataType.children.map(arrowField => deserializeArrowField(arrowField));
|
|
98
|
+
return new Struct(children);
|
|
99
|
+
default:
|
|
100
|
+
throw new Error('array type not supported');
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
switch (dataType) {
|
|
104
|
+
case 'null':
|
|
105
|
+
return new Null();
|
|
106
|
+
case 'binary':
|
|
107
|
+
return new Binary();
|
|
108
|
+
case 'bool':
|
|
109
|
+
return new Bool();
|
|
110
|
+
case 'int8':
|
|
111
|
+
return new Int8();
|
|
112
|
+
case 'int16':
|
|
113
|
+
return new Int16();
|
|
114
|
+
case 'int32':
|
|
115
|
+
return new Int32();
|
|
116
|
+
case 'int64':
|
|
117
|
+
return new Int64();
|
|
118
|
+
case 'uint8':
|
|
119
|
+
return new Uint8();
|
|
120
|
+
case 'uint16':
|
|
121
|
+
return new Uint16();
|
|
122
|
+
case 'uint32':
|
|
123
|
+
return new Uint32();
|
|
124
|
+
case 'uint64':
|
|
125
|
+
return new Uint64();
|
|
126
|
+
case 'float16':
|
|
127
|
+
return new Float16();
|
|
128
|
+
case 'float32':
|
|
129
|
+
return new Float32();
|
|
130
|
+
case 'float64':
|
|
131
|
+
return new Float64();
|
|
132
|
+
case 'utf8':
|
|
133
|
+
return new Utf8();
|
|
134
|
+
case 'date-day':
|
|
135
|
+
return new DateDay();
|
|
136
|
+
case 'date-millisecond':
|
|
137
|
+
return new DateMillisecond();
|
|
138
|
+
case 'time-millisecond':
|
|
139
|
+
return new TimeMillisecond();
|
|
140
|
+
case 'time-second':
|
|
141
|
+
return new TimeSecond();
|
|
142
|
+
case 'timestamp-second':
|
|
143
|
+
return new TimestampSecond();
|
|
144
|
+
case 'timestamp-millisecond':
|
|
145
|
+
return new TimestampMillisecond();
|
|
146
|
+
case 'timestamp-microsecond':
|
|
147
|
+
return new TimestampMicrosecond();
|
|
148
|
+
case 'timestamp-nanosecond':
|
|
149
|
+
return new TimestampNanosecond();
|
|
150
|
+
case 'interval-daytime':
|
|
151
|
+
return new IntervalDayTime();
|
|
152
|
+
case 'interval-yearmonth':
|
|
153
|
+
return new IntervalYearMonth();
|
|
154
|
+
default:
|
|
155
|
+
throw new Error('array type not supported');
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=convert-schema-arrow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-schema-arrow.js","names":["Field","ArrowField","Schema","ArrowSchema","Null","Binary","Bool","Int8","Int16","Int32","Int64","Uint8","Uint16","Uint32","Uint64","Float16","Float32","Float64","Utf8","DateDay","DateMillisecond","TimeMillisecond","TimeSecond","TimestampSecond","TimestampMillisecond","TimestampMicrosecond","TimestampNanosecond","IntervalDayTime","IntervalYearMonth","FixedSizeList","Struct","serializeArrowSchema","arrowSchema","fields","map","arrowField","serializeArrowField","metadata","serializeArrowMetadata","deserializeArrowSchema","schema","field","deserializeArrowField","deserializeArrowMetadata","arrowMetadata","Object","fromEntries","Map","entries","name","type","serializeArrowType","nullable","deserializeArrowType","arrowType","constructor","listSize","children","Error","dataType","child"],"sources":["../../../../../src/lib/table/arrow/convert-schema-arrow.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {DataType, Field, Schema, SchemaMetadata} from '../../../types/schema';\nimport {\n Field as ArrowField,\n Schema as ArrowSchema,\n DataType as ArrowDataType,\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 'apache-arrow/Arrow.dom';\n\nexport function serializeArrowSchema(arrowSchema: ArrowSchema): Schema {\n return {\n fields: arrowSchema.fields.map((arrowField) => serializeArrowField(arrowField)),\n metadata: serializeArrowMetadata(arrowSchema.metadata)\n };\n}\n\nexport function deserializeArrowSchema(schema: Schema): ArrowSchema {\n return new ArrowSchema(\n schema.fields.map((field) => deserializeArrowField(field)),\n deserializeArrowMetadata(schema.metadata)\n );\n}\n\nexport function serializeArrowMetadata(arrowMetadata: Map<string, string>): SchemaMetadata {\n return Object.fromEntries(arrowMetadata);\n}\n\nexport function deserializeArrowMetadata(metadata?: SchemaMetadata): Map<string, string> {\n return metadata ? new Map(Object.entries(metadata)) : new Map<string, string>();\n}\n\nexport function serializeArrowField(field: ArrowField): Field {\n return {\n name: field.name,\n type: serializeArrowType(field.type),\n nullable: field.nullable,\n metadata: serializeArrowMetadata(field.metadata)\n };\n}\n\nexport function deserializeArrowField(field: Field): ArrowField {\n return new ArrowField(\n field.name,\n deserializeArrowType(field.type),\n field.nullable,\n deserializeArrowMetadata(field.metadata)\n );\n}\n\n/** Converts a serializable loaders.gl data type to hydrated arrow data type */\n// eslint-disable-next-line complexity\nexport function serializeArrowType(arrowType: ArrowDataType): DataType {\n switch (arrowType.constructor) {\n case Null:\n return 'null';\n case Binary:\n return 'binary';\n case Bool:\n return 'bool';\n // case Int: return 'int';\n case Int8:\n return 'int8';\n case Int16:\n return 'int16';\n case Int32:\n return 'int32';\n case Int64:\n return 'int64';\n case Uint8:\n return 'uint8';\n case Uint16:\n return 'uint16';\n case Uint32:\n return 'uint32';\n case Uint64:\n return 'uint64';\n // case Float: return 'float';\n case Float16:\n return 'float16';\n case Float32:\n return 'float32';\n case Float64:\n return 'float64';\n case Utf8:\n return 'utf8';\n // case Date: return 'date';\n case DateDay:\n return 'date-day';\n case DateMillisecond:\n return 'date-millisecond';\n // case Time: return 'time';\n case TimeMillisecond:\n return 'time-millisecond';\n case TimeSecond:\n return 'time-second';\n // case Timestamp: return 'timestamp';\n case TimestampSecond:\n return 'timestamp-second';\n case TimestampMillisecond:\n return 'timestamp-millisecond';\n case TimestampMicrosecond:\n return 'timestamp-microsecond';\n case TimestampNanosecond:\n return 'timestamp-nanosecond';\n // case Interval: return 'interval';\n case IntervalDayTime:\n return 'interval-daytime';\n case IntervalYearMonth:\n return 'interval-yearmonth';\n case FixedSizeList:\n return {\n type: 'fixed-size-list',\n listSize: (arrowType as FixedSizeList).listSize,\n children: [serializeArrowField((arrowType as FixedSizeList).children[0])]\n };\n // case Struct:\n // return {type: 'struct', children: (arrowType as Struct).children};\n default:\n throw new Error('array type not supported');\n }\n}\n\n/** Converts a serializable loaders.gl data type to hydrated arrow data type */\n// eslint-disable-next-line complexity\nexport function deserializeArrowType(dataType: DataType): ArrowDataType {\n if (typeof dataType === 'object') {\n switch (dataType.type) {\n case 'fixed-size-list':\n const child = deserializeArrowField(dataType.children[0]);\n return new FixedSizeList(dataType.listSize, child);\n case 'struct':\n const children = dataType.children.map((arrowField) => deserializeArrowField(arrowField));\n return new Struct(children);\n default:\n throw new Error('array type not supported');\n }\n }\n\n switch (dataType) {\n case 'null':\n return new Null();\n case 'binary':\n return new Binary();\n case 'bool':\n return new Bool();\n // case 'int': return new Int();\n case 'int8':\n return new Int8();\n case 'int16':\n return new Int16();\n case 'int32':\n return new Int32();\n case 'int64':\n return new Int64();\n case 'uint8':\n return new Uint8();\n case 'uint16':\n return new Uint16();\n case 'uint32':\n return new Uint32();\n case 'uint64':\n return new Uint64();\n // case 'float': return new Float();\n case 'float16':\n return new Float16();\n case 'float32':\n return new Float32();\n case 'float64':\n return new Float64();\n case 'utf8':\n return new Utf8();\n // case 'date': return new Date();\n case 'date-day':\n return new DateDay();\n case 'date-millisecond':\n return new DateMillisecond();\n // case 'time': return new Time();\n case 'time-millisecond':\n return new TimeMillisecond();\n case 'time-second':\n return new TimeSecond();\n // case 'timestamp': return new Timestamp();\n case 'timestamp-second':\n return new TimestampSecond();\n case 'timestamp-millisecond':\n return new TimestampMillisecond();\n case 'timestamp-microsecond':\n return new TimestampMicrosecond();\n case 'timestamp-nanosecond':\n return new TimestampNanosecond();\n // case 'interval': return new Interval();\n case 'interval-daytime':\n return new IntervalDayTime();\n case 'interval-yearmonth':\n return new IntervalYearMonth();\n default:\n throw new Error('array type not supported');\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-table-to-arrow.js","names":[],"sources":["../../../../../src/lib/table/arrow/convert-table-to-arrow.ts"],"sourcesContent":["// loaders.gl, MIT license\n\n// import {\n// Table as ApacheArrowTable,\n// Schema as ApacheArrowSchema,\n// RecordBatch,\n// FixedSizeList,\n// Field,\n// Data,\n// FixedSizeListVector\n// } from 'apache-arrow/Arrow.dom';\n// import {AbstractVector} from 'apache-arrow/vector';\n\n// import {Table} from '../../types/category-table';\n// import {getArrowType, getArrowVector} from './arrow-type-utils';\n// import {makeMeshAttributeMetadata} from './deduce-mesh-schema';\n// import {getTableLength, getTableNumCols} from './table-accessors';\n\n/**\n * * Convert a loaders.gl Mesh to an Apache Arrow Table\n * @param mesh\n * @param metadata\n * @param batchSize\n * @returns\n *\nexport function convertTableToArrow(table: Table, options?: {batchSize?: number}): ArrowTable {\n const vectors: AbstractVector[] = [];\n const fields: Field[] = [];\n\n const length = getTableLength(table);\n const batchSize = options?.batchSize || length;\n\n const recordBatches: RecordBatch[] = [];\n for (let i = 0; i < length; i += batchSize) {\n for (let columnIndex = 0; columnIndex < getTableNumCols(table); ++columnIndex) {\n const field_ = table.schema.fields[columnIndex];\n const column = getTableColumnAt(table, columnIndex, i, batchSize);\n const type = getArrowType(column);\n const vector = getArrowVector(column);\n const listType = new FixedSizeList(size, new Field('value', type));\n const field = new Field(field_.name, listType, false, makeMeshAttributeMetadata(attribute));\n const data = new Data(listType, 0, value.length / size, 0, undefined, [vector]);\n const listVector = new FixedSizeListVector(data);\n vectors.push(listVector);\n fields.push(field);\n }\n\n for (const attributeKey in table.columns) {\n const attribute = mesh.attributes[attributeKey];\n const {value, size = 1} = attribute;\n }\n\n const schema = new ApacheArrowSchema(fields, table?.schema?.metadata || new Map<string, string>());\n const recordBatch = new RecordBatch(schema, vectors[0].length, vectors);\n const apacheArrowTable = new ApacheArrowTable(schema, recordBatch);\n\n return apacheArrowTable;\n}\n*/\n"],"mappings":""}
|
|
@@ -1,35 +1,28 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
export
|
|
3
|
-
constructor(name, type
|
|
2
|
+
export class ArrowLikeField {
|
|
3
|
+
constructor(name, type) {
|
|
4
|
+
let nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
5
|
+
let metadata = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new Map();
|
|
4
6
|
_defineProperty(this, "name", void 0);
|
|
5
|
-
|
|
6
7
|
_defineProperty(this, "type", void 0);
|
|
7
|
-
|
|
8
8
|
_defineProperty(this, "nullable", void 0);
|
|
9
|
-
|
|
10
9
|
_defineProperty(this, "metadata", void 0);
|
|
11
|
-
|
|
12
10
|
this.name = name;
|
|
13
11
|
this.type = type;
|
|
14
12
|
this.nullable = nullable;
|
|
15
13
|
this.metadata = metadata;
|
|
16
14
|
}
|
|
17
|
-
|
|
18
15
|
get typeId() {
|
|
19
16
|
return this.type && this.type.typeId;
|
|
20
17
|
}
|
|
21
|
-
|
|
22
18
|
clone() {
|
|
23
|
-
return new
|
|
19
|
+
return new ArrowLikeField(this.name, this.type, this.nullable, this.metadata);
|
|
24
20
|
}
|
|
25
|
-
|
|
26
21
|
compareTo(other) {
|
|
27
22
|
return this.name === other.name && this.type === other.type && this.nullable === other.nullable && this.metadata === other.metadata;
|
|
28
23
|
}
|
|
29
|
-
|
|
30
24
|
toString() {
|
|
31
25
|
return "".concat(this.type).concat(this.nullable ? ', nullable' : '').concat(this.metadata ? ", metadata: ".concat(this.metadata) : '');
|
|
32
26
|
}
|
|
33
|
-
|
|
34
27
|
}
|
|
35
|
-
//# sourceMappingURL=field.js.map
|
|
28
|
+
//# sourceMappingURL=arrow-like-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrow-like-field.js","names":["ArrowLikeField","constructor","name","type","nullable","arguments","length","undefined","metadata","Map","_defineProperty","typeId","clone","compareTo","other","toString","concat"],"sources":["../../../../../src/lib/table/arrow-api/arrow-like-field.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {DataType} from './arrow-like-type';\n\n/**\n * ArrowJS `Field` API-compatible class for row-based tables\n * https://loaders.gl/arrowjs/docs/api-reference/field\n * A field holds name, nullable, and metadata information about a table \"column\"\n * A Schema is essentially a list of fields\n */\nexport class ArrowLikeField {\n name: string;\n type: DataType;\n nullable: boolean;\n metadata: Map<string, string>;\n\n constructor(\n name: string,\n type: DataType,\n nullable = false,\n metadata: Map<string, string> = new Map()\n ) {\n this.name = name;\n this.type = type;\n this.nullable = nullable;\n this.metadata = metadata;\n }\n\n get typeId(): number {\n return this.type && this.type.typeId;\n }\n\n clone(): ArrowLikeField {\n return new ArrowLikeField(this.name, this.type, this.nullable, this.metadata);\n }\n\n compareTo(other: this): boolean {\n return (\n this.name === other.name &&\n this.type === other.type &&\n this.nullable === other.nullable &&\n this.metadata === other.metadata\n );\n }\n\n toString(): string {\n return `${this.type}${this.nullable ? ', nullable' : ''}${\n this.metadata ? `, metadata: ${this.metadata}` : ''\n }`;\n }\n}\n"],"mappings":";AAUA,OAAO,MAAMA,cAAc,CAAC;EAM1BC,WAAWA,CACTC,IAAY,EACZC,IAAc,EAGd;IAAA,IAFAC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IAAA,IAChBG,QAA6B,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAII,GAAG,CAAC,CAAC;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAEzC,IAAI,CAACR,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACI,QAAQ,GAAGA,QAAQ;EAC1B;EAEA,IAAIG,MAAMA,CAAA,EAAW;IACnB,OAAO,IAAI,CAACR,IAAI,IAAI,IAAI,CAACA,IAAI,CAACQ,MAAM;EACtC;EAEAC,KAAKA,CAAA,EAAmB;IACtB,OAAO,IAAIZ,cAAc,CAAC,IAAI,CAACE,IAAI,EAAE,IAAI,CAACC,IAAI,EAAE,IAAI,CAACC,QAAQ,EAAE,IAAI,CAACI,QAAQ,CAAC;EAC/E;EAEAK,SAASA,CAACC,KAAW,EAAW;IAC9B,OACE,IAAI,CAACZ,IAAI,KAAKY,KAAK,CAACZ,IAAI,IACxB,IAAI,CAACC,IAAI,KAAKW,KAAK,CAACX,IAAI,IACxB,IAAI,CAACC,QAAQ,KAAKU,KAAK,CAACV,QAAQ,IAChC,IAAI,CAACI,QAAQ,KAAKM,KAAK,CAACN,QAAQ;EAEpC;EAEAO,QAAQA,CAAA,EAAW;IACjB,UAAAC,MAAA,CAAU,IAAI,CAACb,IAAI,EAAAa,MAAA,CAAG,IAAI,CAACZ,QAAQ,GAAG,YAAY,GAAG,EAAE,EAAAY,MAAA,CACrD,IAAI,CAACR,QAAQ,kBAAAQ,MAAA,CAAkB,IAAI,CAACR,QAAQ,IAAK,EAAE;EAEvD;AACF"}
|
|
@@ -1,92 +1,67 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
-
import {
|
|
3
|
-
export
|
|
4
|
-
constructor(fields
|
|
2
|
+
import { ArrowLikeField } from './arrow-like-field';
|
|
3
|
+
export class ArrowLikeSchema {
|
|
4
|
+
constructor(fields) {
|
|
5
|
+
let metadata = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Map();
|
|
5
6
|
_defineProperty(this, "fields", void 0);
|
|
6
|
-
|
|
7
7
|
_defineProperty(this, "metadata", void 0);
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
checkNames(fields);
|
|
11
|
-
this.fields = fields;
|
|
12
|
-
this.metadata = metadata || new Map();
|
|
8
|
+
this.fields = fields.map(field => new ArrowLikeField(field.name, field.type, field.nullable, field.metadata));
|
|
9
|
+
this.metadata = metadata instanceof Map ? metadata : new Map(Object.entries(metadata));
|
|
13
10
|
}
|
|
14
|
-
|
|
15
11
|
compareTo(other) {
|
|
16
12
|
if (this.metadata !== other.metadata) {
|
|
17
13
|
return false;
|
|
18
14
|
}
|
|
19
|
-
|
|
20
15
|
if (this.fields.length !== other.fields.length) {
|
|
21
16
|
return false;
|
|
22
17
|
}
|
|
23
|
-
|
|
24
18
|
for (let i = 0; i < this.fields.length; ++i) {
|
|
25
19
|
if (!this.fields[i].compareTo(other.fields[i])) {
|
|
26
20
|
return false;
|
|
27
21
|
}
|
|
28
22
|
}
|
|
29
|
-
|
|
30
23
|
return true;
|
|
31
24
|
}
|
|
32
|
-
|
|
33
|
-
select(...columnNames) {
|
|
25
|
+
select() {
|
|
34
26
|
const nameMap = Object.create(null);
|
|
35
|
-
|
|
27
|
+
for (var _len = arguments.length, columnNames = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
28
|
+
columnNames[_key] = arguments[_key];
|
|
29
|
+
}
|
|
36
30
|
for (const name of columnNames) {
|
|
37
31
|
nameMap[name] = true;
|
|
38
32
|
}
|
|
39
|
-
|
|
40
33
|
const selectedFields = this.fields.filter(field => nameMap[field.name]);
|
|
41
|
-
return new
|
|
34
|
+
return new ArrowLikeSchema(selectedFields, this.metadata);
|
|
42
35
|
}
|
|
43
|
-
|
|
44
|
-
|
|
36
|
+
selectAt() {
|
|
37
|
+
for (var _len2 = arguments.length, columnIndices = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
38
|
+
columnIndices[_key2] = arguments[_key2];
|
|
39
|
+
}
|
|
45
40
|
const selectedFields = columnIndices.map(index => this.fields[index]).filter(Boolean);
|
|
46
|
-
return new
|
|
41
|
+
return new ArrowLikeSchema(selectedFields, this.metadata);
|
|
47
42
|
}
|
|
48
|
-
|
|
49
43
|
assign(schemaOrFields) {
|
|
50
44
|
let fields;
|
|
51
45
|
let metadata = this.metadata;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
metadata = mergeMaps(mergeMaps(new Map(), this.metadata), otherSchema.metadata);
|
|
46
|
+
if (schemaOrFields instanceof ArrowLikeSchema) {
|
|
47
|
+
const otherArrowLikeSchema = schemaOrFields;
|
|
48
|
+
fields = otherArrowLikeSchema.fields;
|
|
49
|
+
metadata = mergeMaps(mergeMaps(new Map(), this.metadata), otherArrowLikeSchema.metadata);
|
|
57
50
|
} else {
|
|
58
51
|
fields = schemaOrFields;
|
|
59
52
|
}
|
|
60
|
-
|
|
61
53
|
const fieldMap = Object.create(null);
|
|
62
|
-
|
|
63
54
|
for (const field of this.fields) {
|
|
64
55
|
fieldMap[field.name] = field;
|
|
65
56
|
}
|
|
66
|
-
|
|
67
57
|
for (const field of fields) {
|
|
68
58
|
fieldMap[field.name] = field;
|
|
69
59
|
}
|
|
70
|
-
|
|
71
60
|
const mergedFields = Object.values(fieldMap);
|
|
72
|
-
return new
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
function checkNames(fields) {
|
|
78
|
-
const usedNames = {};
|
|
79
|
-
|
|
80
|
-
for (const field of fields) {
|
|
81
|
-
if (usedNames[field.name]) {
|
|
82
|
-
console.warn('Schema: duplicated field name', field.name, field);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
usedNames[field.name] = true;
|
|
61
|
+
return new ArrowLikeSchema(mergedFields, metadata);
|
|
86
62
|
}
|
|
87
63
|
}
|
|
88
|
-
|
|
89
64
|
function mergeMaps(m1, m2) {
|
|
90
65
|
return new Map([...(m1 || new Map()), ...(m2 || new Map())]);
|
|
91
66
|
}
|
|
92
|
-
//# sourceMappingURL=schema.js.map
|
|
67
|
+
//# sourceMappingURL=arrow-like-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrow-like-schema.js","names":["ArrowLikeField","ArrowLikeSchema","constructor","fields","metadata","arguments","length","undefined","Map","_defineProperty","map","field","name","type","nullable","Object","entries","compareTo","other","i","select","nameMap","create","_len","columnNames","Array","_key","selectedFields","filter","selectAt","_len2","columnIndices","_key2","index","Boolean","assign","schemaOrFields","otherArrowLikeSchema","mergeMaps","fieldMap","mergedFields","values","m1","m2"],"sources":["../../../../../src/lib/table/arrow-api/arrow-like-schema.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {SchemaMetadata, Field} from '../../../types/schema';\nimport {ArrowLikeField} from './arrow-like-field';\n\nexport class ArrowLikeSchema {\n fields: ArrowLikeField[];\n metadata: Map<string, string>;\n\n constructor(\n fields: ArrowLikeField[] | Field[],\n metadata: SchemaMetadata | Map<string, string> = new Map<string, string>()\n ) {\n // checkNames(fields);\n // For kepler fields, create arrow compatible `Fields` that have kepler fields as `metadata`\n this.fields = fields.map(\n (field) => new ArrowLikeField(field.name, field.type, field.nullable, field.metadata)\n );\n this.metadata =\n metadata instanceof Map ? metadata : new Map<string, string>(Object.entries(metadata));\n }\n\n // TODO - arrow only seems to compare fields, not metadata\n compareTo(other: ArrowLikeSchema): boolean {\n if (this.metadata !== other.metadata) {\n return false;\n }\n if (this.fields.length !== other.fields.length) {\n return false;\n }\n for (let i = 0; i < this.fields.length; ++i) {\n if (!this.fields[i].compareTo(other.fields[i])) {\n return false;\n }\n }\n return true;\n }\n\n select(...columnNames: string[]): ArrowLikeSchema {\n // Ensure column names reference valid fields\n const nameMap = Object.create(null);\n for (const name of columnNames) {\n nameMap[name] = true;\n }\n const selectedFields = this.fields.filter((field) => nameMap[field.name]);\n return new ArrowLikeSchema(selectedFields, this.metadata);\n }\n\n selectAt(...columnIndices: number[]): ArrowLikeSchema {\n // Ensure column indices reference valid fields\n const selectedFields = columnIndices.map((index) => this.fields[index]).filter(Boolean);\n return new ArrowLikeSchema(selectedFields, this.metadata);\n }\n\n assign(schemaOrFields: ArrowLikeSchema | ArrowLikeField[]): ArrowLikeSchema {\n let fields: ArrowLikeField[];\n let metadata = this.metadata;\n\n if (schemaOrFields instanceof ArrowLikeSchema) {\n const otherArrowLikeSchema = schemaOrFields;\n fields = otherArrowLikeSchema.fields;\n metadata = mergeMaps(mergeMaps(new Map(), this.metadata), otherArrowLikeSchema.metadata);\n } else {\n fields = schemaOrFields;\n }\n\n // Create a merged list of fields, overwrite fields in place, new fields at end\n const fieldMap: {[key: string]: ArrowLikeField} = Object.create(null);\n\n for (const field of this.fields) {\n fieldMap[field.name] = field;\n }\n\n for (const field of fields) {\n fieldMap[field.name] = field;\n }\n\n const mergedFields = Object.values(fieldMap);\n\n return new ArrowLikeSchema(mergedFields, metadata);\n }\n}\n\n// Warn if any duplicated field names\n// function checkNames(fields: Field[]): void {\n// const usedNames: Record<string, boolean> = {};\n// for (const field of fields) {\n// if (usedNames[field.name]) {\n// // eslint-disable-next-line\n// console.warn('ArrowLikeSchema: duplicated field name', field.name, field);\n// }\n// usedNames[field.name] = true;\n// }\n// }\n\nfunction mergeMaps<T>(m1: T, m2: T): T {\n // @ts-ignore\n return new Map([...(m1 || new Map()), ...(m2 || new Map())]);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import { ArrowLikeSchema } from './arrow-like-schema';
|
|
3
|
+
import { deduceTableSchema } from '../simple-table/table-schema';
|
|
4
|
+
import { getTableCell, getTableLength, getTableNumCols } from '../simple-table/table-accessors';
|
|
5
|
+
class ArrowLikeVector {
|
|
6
|
+
constructor(table, columnName) {
|
|
7
|
+
_defineProperty(this, "table", void 0);
|
|
8
|
+
_defineProperty(this, "columnName", void 0);
|
|
9
|
+
this.table = table;
|
|
10
|
+
this.columnName = columnName;
|
|
11
|
+
}
|
|
12
|
+
get(rowIndex) {
|
|
13
|
+
return getTableCell(this.table, rowIndex, this.columnName);
|
|
14
|
+
}
|
|
15
|
+
toArray() {
|
|
16
|
+
var _this$table$data$getC;
|
|
17
|
+
switch (this.table.shape) {
|
|
18
|
+
case 'arrow-table':
|
|
19
|
+
return (_this$table$data$getC = this.table.data.getChild(this.columnName)) === null || _this$table$data$getC === void 0 ? void 0 : _this$table$data$getC.toArray();
|
|
20
|
+
case 'columnar-table':
|
|
21
|
+
return this.table.data[this.columnName];
|
|
22
|
+
default:
|
|
23
|
+
throw new Error(this.table.shape);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export class ArrowLikeTable {
|
|
28
|
+
constructor(table) {
|
|
29
|
+
_defineProperty(this, "schema", void 0);
|
|
30
|
+
_defineProperty(this, "table", void 0);
|
|
31
|
+
const schema = table.schema || deduceTableSchema(table);
|
|
32
|
+
this.schema = new ArrowLikeSchema(schema.fields, schema.metadata);
|
|
33
|
+
this.table = {
|
|
34
|
+
...table,
|
|
35
|
+
schema
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
get data() {
|
|
39
|
+
return this.table.data;
|
|
40
|
+
}
|
|
41
|
+
get numCols() {
|
|
42
|
+
return getTableNumCols(this.table);
|
|
43
|
+
}
|
|
44
|
+
get length() {
|
|
45
|
+
return getTableLength(this.table);
|
|
46
|
+
}
|
|
47
|
+
getChild(columnName) {
|
|
48
|
+
return new ArrowLikeVector(this.table, columnName);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=arrow-like-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrow-like-table.js","names":["ArrowLikeSchema","deduceTableSchema","getTableCell","getTableLength","getTableNumCols","ArrowLikeVector","constructor","table","columnName","_defineProperty","get","rowIndex","toArray","_this$table$data$getC","shape","data","getChild","Error","ArrowLikeTable","schema","fields","metadata","numCols","length"],"sources":["../../../../../src/lib/table/arrow-api/arrow-like-table.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {Table} from '../../../types/category-table';\n\nimport {ArrowLikeSchema} from './arrow-like-schema';\n\nimport {deduceTableSchema} from '../simple-table/table-schema';\n\nimport {\n getTableCell,\n getTableLength,\n getTableNumCols\n // getTableCell,\n // getTableRowShape,\n // getTableColumnIndex,\n // getTableColumnName,\n // getTableRowAsObject,\n // getTableRowAsArray\n} from '../simple-table/table-accessors';\n\nclass ArrowLikeVector {\n table: Table;\n columnName: string;\n\n constructor(table: Table, columnName: string) {\n this.table = table;\n this.columnName = columnName;\n }\n\n get(rowIndex: number): unknown {\n return getTableCell(this.table, rowIndex, this.columnName);\n }\n\n toArray(): ArrayLike<unknown> {\n switch (this.table.shape) {\n case 'arrow-table':\n return this.table.data.getChild(this.columnName)?.toArray();\n case 'columnar-table':\n return this.table.data[this.columnName];\n default:\n throw new Error(this.table.shape);\n }\n }\n}\n\n/**\n * Class that provides an API similar to Apache Arrow Table class\n * Forwards methods directly if the underlying table is Arrow, otherwise calls accessor functions\n */\nexport class ArrowLikeTable {\n schema: ArrowLikeSchema;\n table: Table;\n\n constructor(table: Table) {\n const schema = table.schema || deduceTableSchema(table);\n this.schema = new ArrowLikeSchema(schema.fields, schema.metadata);\n this.table = {...table, schema};\n }\n\n // get schema() {\n // return this.table.schema;\n // }\n\n get data() {\n return this.table.data;\n }\n\n get numCols(): number {\n return getTableNumCols(this.table);\n }\n\n get length(): number {\n return getTableLength(this.table);\n }\n\n getChild(columnName: string): ArrowLikeVector {\n return new ArrowLikeVector(this.table, columnName);\n }\n\n // getChildAt(columnIndex: number): ArrowLikeVector {\n // return\n // }\n}\n"],"mappings":";AAIA,SAAQA,eAAe,QAAO,qBAAqB;AAEnD,SAAQC,iBAAiB,QAAO,8BAA8B;AAE9D,SACEC,YAAY,EACZC,cAAc,EACdC,eAAe,QAOV,iCAAiC;AAExC,MAAMC,eAAe,CAAC;EAIpBC,WAAWA,CAACC,KAAY,EAAEC,UAAkB,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAC5C,IAAI,CAACF,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,UAAU,GAAGA,UAAU;EAC9B;EAEAE,GAAGA,CAACC,QAAgB,EAAW;IAC7B,OAAOT,YAAY,CAAC,IAAI,CAACK,KAAK,EAAEI,QAAQ,EAAE,IAAI,CAACH,UAAU,CAAC;EAC5D;EAEAI,OAAOA,CAAA,EAAuB;IAAA,IAAAC,qBAAA;IAC5B,QAAQ,IAAI,CAACN,KAAK,CAACO,KAAK;MACtB,KAAK,aAAa;QAChB,QAAAD,qBAAA,GAAO,IAAI,CAACN,KAAK,CAACQ,IAAI,CAACC,QAAQ,CAAC,IAAI,CAACR,UAAU,CAAC,cAAAK,qBAAA,uBAAzCA,qBAAA,CAA2CD,OAAO,CAAC,CAAC;MAC7D,KAAK,gBAAgB;QACnB,OAAO,IAAI,CAACL,KAAK,CAACQ,IAAI,CAAC,IAAI,CAACP,UAAU,CAAC;MACzC;QACE,MAAM,IAAIS,KAAK,CAAC,IAAI,CAACV,KAAK,CAACO,KAAK,CAAC;IACrC;EACF;AACF;AAMA,OAAO,MAAMI,cAAc,CAAC;EAI1BZ,WAAWA,CAACC,KAAY,EAAE;IAAAE,eAAA;IAAAA,eAAA;IACxB,MAAMU,MAAM,GAAGZ,KAAK,CAACY,MAAM,IAAIlB,iBAAiB,CAACM,KAAK,CAAC;IACvD,IAAI,CAACY,MAAM,GAAG,IAAInB,eAAe,CAACmB,MAAM,CAACC,MAAM,EAAED,MAAM,CAACE,QAAQ,CAAC;IACjE,IAAI,CAACd,KAAK,GAAG;MAAC,GAAGA,KAAK;MAAEY;IAAM,CAAC;EACjC;EAMA,IAAIJ,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACR,KAAK,CAACQ,IAAI;EACxB;EAEA,IAAIO,OAAOA,CAAA,EAAW;IACpB,OAAOlB,eAAe,CAAC,IAAI,CAACG,KAAK,CAAC;EACpC;EAEA,IAAIgB,MAAMA,CAAA,EAAW;IACnB,OAAOpB,cAAc,CAAC,IAAI,CAACI,KAAK,CAAC;EACnC;EAEAS,QAAQA,CAACR,UAAkB,EAAmB;IAC5C,OAAO,IAAIH,eAAe,CAAC,IAAI,CAACE,KAAK,EAAEC,UAAU,CAAC;EACpD;AAKF"}
|