@loaders.gl/arrow 4.0.0 → 4.0.2

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.
Files changed (82) hide show
  1. package/dist/arrow-loader.d.ts.map +1 -1
  2. package/dist/arrow-loader.js.map +1 -1
  3. package/dist/arrow-worker.js +34 -26
  4. package/dist/arrow-writer.d.ts.map +1 -1
  5. package/dist/arrow-writer.js +6 -3
  6. package/dist/arrow-writer.js.map +1 -1
  7. package/dist/dist.dev.js +658 -6
  8. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.d.ts +40 -0
  9. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.d.ts.map +1 -0
  10. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.js +189 -0
  11. package/dist/geoarrow/convert-geoarrow-to-binary-geometry.js.map +1 -0
  12. package/dist/geoarrow/convert-geoarrow-to-geojson.d.ts +19 -0
  13. package/dist/geoarrow/convert-geoarrow-to-geojson.d.ts.map +1 -0
  14. package/dist/geoarrow/convert-geoarrow-to-geojson.js +138 -0
  15. package/dist/geoarrow/convert-geoarrow-to-geojson.js.map +1 -0
  16. package/dist/geoarrow/get-arrow-bounds.d.ts +11 -0
  17. package/dist/geoarrow/get-arrow-bounds.d.ts.map +1 -0
  18. package/dist/geoarrow/get-arrow-bounds.js +24 -0
  19. package/dist/geoarrow/get-arrow-bounds.js.map +1 -0
  20. package/dist/index.cjs +627 -32
  21. package/dist/index.d.ts +6 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +5 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/lib/arrow-table-batch.d.ts +2 -2
  26. package/dist/lib/arrow-table-batch.d.ts.map +1 -1
  27. package/dist/lib/arrow-table-batch.js +7 -7
  28. package/dist/lib/arrow-table-batch.js.map +1 -1
  29. package/dist/lib/arrow-table.d.ts +3 -3
  30. package/dist/lib/arrow-table.d.ts.map +1 -1
  31. package/dist/lib/arrow-table.js.map +1 -1
  32. package/dist/lib/encode-arrow.js +5 -5
  33. package/dist/lib/encode-arrow.js.map +1 -1
  34. package/dist/lib/parse-arrow-in-batches.js +3 -3
  35. package/dist/lib/parse-arrow-in-batches.js.map +1 -1
  36. package/dist/lib/parse-arrow-sync.d.ts.map +1 -1
  37. package/dist/lib/parse-arrow-sync.js +3 -3
  38. package/dist/lib/parse-arrow-sync.js.map +1 -1
  39. package/dist/schema/arrow-type-utils.d.ts +3 -2
  40. package/dist/schema/arrow-type-utils.d.ts.map +1 -1
  41. package/dist/schema/arrow-type-utils.js +9 -9
  42. package/dist/schema/arrow-type-utils.js.map +1 -1
  43. package/dist/schema/convert-arrow-schema.d.ts +19 -0
  44. package/dist/schema/convert-arrow-schema.d.ts.map +1 -0
  45. package/dist/schema/convert-arrow-schema.js +232 -0
  46. package/dist/schema/convert-arrow-schema.js.map +1 -0
  47. package/dist/{lib/convert-table.d.ts → tables/convert-arrow-to-table.d.ts} +4 -4
  48. package/dist/tables/convert-arrow-to-table.d.ts.map +1 -0
  49. package/dist/{lib/convert-table.js → tables/convert-arrow-to-table.js} +1 -1
  50. package/dist/tables/convert-arrow-to-table.js.map +1 -0
  51. package/dist/{schema → tables}/convert-table-to-arrow.d.ts.map +1 -1
  52. package/dist/{schema → tables}/convert-table-to-arrow.js.map +1 -1
  53. package/dist/types.d.ts.map +1 -1
  54. package/dist/types.js.map +1 -1
  55. package/dist/workers/arrow-worker.js.map +1 -1
  56. package/package.json +5 -4
  57. package/src/arrow-loader.ts +1 -0
  58. package/src/arrow-writer.ts +7 -3
  59. package/src/geoarrow/convert-geoarrow-to-binary-geometry.ts +260 -0
  60. package/src/geoarrow/convert-geoarrow-to-geojson.ts +192 -0
  61. package/src/geoarrow/get-arrow-bounds.ts +40 -0
  62. package/src/index.ts +33 -4
  63. package/src/lib/arrow-table-batch.ts +13 -23
  64. package/src/lib/arrow-table.ts +3 -3
  65. package/src/lib/encode-arrow.ts +8 -8
  66. package/src/lib/parse-arrow-in-batches.ts +4 -4
  67. package/src/lib/parse-arrow-sync.ts +6 -3
  68. package/src/schema/arrow-type-utils.ts +11 -29
  69. package/src/schema/convert-arrow-schema.ts +265 -0
  70. package/src/{lib/convert-table.ts → tables/convert-arrow-to-table.ts} +4 -3
  71. package/src/types.ts +3 -0
  72. package/src/workers/arrow-worker.ts +3 -0
  73. package/dist/lib/convert-table.d.ts.map +0 -1
  74. package/dist/lib/convert-table.js.map +0 -1
  75. package/dist/schema/convert-schema-arrow.d.ts +0 -13
  76. package/dist/schema/convert-schema-arrow.d.ts.map +0 -1
  77. package/dist/schema/convert-schema-arrow.js +0 -158
  78. package/dist/schema/convert-schema-arrow.js.map +0 -1
  79. package/src/schema/convert-schema-arrow.ts +0 -233
  80. /package/dist/{schema → tables}/convert-table-to-arrow.d.ts +0 -0
  81. /package/dist/{schema → tables}/convert-table-to-arrow.js +0 -0
  82. /package/src/{schema → tables}/convert-table-to-arrow.ts +0 -0
@@ -1,233 +0,0 @@
1
- // loaders.gl, MIT license
2
- // Copyright (c) vis.gl contributors
3
-
4
- import type {DataType, Field, Schema, SchemaMetadata} from '@loaders.gl/schema';
5
- import {
6
- Field as ArrowField,
7
- Schema as ArrowSchema,
8
- DataType as ArrowDataType,
9
- Null,
10
- Binary,
11
- Bool,
12
- // Int,
13
- Int8,
14
- Int16,
15
- Int32,
16
- Int64,
17
- Uint8,
18
- Uint16,
19
- Uint32,
20
- Uint64,
21
- // Float,
22
- Float16,
23
- Float32,
24
- Float64,
25
- Utf8,
26
- // Date,
27
- DateDay,
28
- DateMillisecond,
29
- // Time,
30
- TimeMillisecond,
31
- TimeSecond,
32
- // Timestamp,
33
- TimestampSecond,
34
- TimestampMillisecond,
35
- TimestampMicrosecond,
36
- TimestampNanosecond,
37
- // Interval,
38
- IntervalDayTime,
39
- IntervalYearMonth,
40
- FixedSizeList,
41
- Struct
42
- } from 'apache-arrow';
43
-
44
- export function serializeArrowSchema(arrowSchema: ArrowSchema): Schema {
45
- return {
46
- fields: arrowSchema.fields.map((arrowField) => serializeArrowField(arrowField)),
47
- metadata: serializeArrowMetadata(arrowSchema.metadata)
48
- };
49
- }
50
-
51
- export function deserializeArrowSchema(schema: Schema): ArrowSchema {
52
- return new ArrowSchema(
53
- schema.fields.map((field) => deserializeArrowField(field)),
54
- deserializeArrowMetadata(schema.metadata)
55
- );
56
- }
57
-
58
- export function serializeArrowMetadata(arrowMetadata: Map<string, string>): SchemaMetadata {
59
- return Object.fromEntries(arrowMetadata);
60
- }
61
-
62
- export function deserializeArrowMetadata(metadata?: SchemaMetadata): Map<string, string> {
63
- return metadata ? new Map(Object.entries(metadata)) : new Map<string, string>();
64
- }
65
-
66
- export function serializeArrowField(field: ArrowField): Field {
67
- return {
68
- name: field.name,
69
- type: serializeArrowType(field.type),
70
- nullable: field.nullable,
71
- metadata: serializeArrowMetadata(field.metadata)
72
- };
73
- }
74
-
75
- export function deserializeArrowField(field: Field): ArrowField {
76
- return new ArrowField(
77
- field.name,
78
- deserializeArrowType(field.type),
79
- field.nullable,
80
- deserializeArrowMetadata(field.metadata)
81
- );
82
- }
83
-
84
- /** Converts a serializable loaders.gl data type to hydrated arrow data type */
85
- // eslint-disable-next-line complexity
86
- export function serializeArrowType(arrowType: ArrowDataType): DataType {
87
- switch (arrowType.constructor) {
88
- case Null:
89
- return 'null';
90
- case Binary:
91
- return 'binary';
92
- case Bool:
93
- return 'bool';
94
- // case Int: return 'int';
95
- case Int8:
96
- return 'int8';
97
- case Int16:
98
- return 'int16';
99
- case Int32:
100
- return 'int32';
101
- case Int64:
102
- return 'int64';
103
- case Uint8:
104
- return 'uint8';
105
- case Uint16:
106
- return 'uint16';
107
- case Uint32:
108
- return 'uint32';
109
- case Uint64:
110
- return 'uint64';
111
- // case Float: return 'float';
112
- case Float16:
113
- return 'float16';
114
- case Float32:
115
- return 'float32';
116
- case Float64:
117
- return 'float64';
118
- case Utf8:
119
- return 'utf8';
120
- // case Date: return 'date';
121
- case DateDay:
122
- return 'date-day';
123
- case DateMillisecond:
124
- return 'date-millisecond';
125
- // case Time: return 'time';
126
- case TimeMillisecond:
127
- return 'time-millisecond';
128
- case TimeSecond:
129
- return 'time-second';
130
- // case Timestamp: return 'timestamp';
131
- case TimestampSecond:
132
- return 'timestamp-second';
133
- case TimestampMillisecond:
134
- return 'timestamp-millisecond';
135
- case TimestampMicrosecond:
136
- return 'timestamp-microsecond';
137
- case TimestampNanosecond:
138
- return 'timestamp-nanosecond';
139
- // case Interval: return 'interval';
140
- case IntervalDayTime:
141
- return 'interval-daytime';
142
- case IntervalYearMonth:
143
- return 'interval-yearmonth';
144
- case FixedSizeList:
145
- return {
146
- type: 'fixed-size-list',
147
- listSize: (arrowType as FixedSizeList).listSize,
148
- children: [serializeArrowField((arrowType as FixedSizeList).children[0])]
149
- };
150
- // case Struct:
151
- // return {type: 'struct', children: (arrowType as Struct).children};
152
- default:
153
- throw new Error('array type not supported');
154
- }
155
- }
156
-
157
- /** Converts a serializable loaders.gl data type to hydrated arrow data type */
158
- // eslint-disable-next-line complexity
159
- export function deserializeArrowType(dataType: DataType): ArrowDataType {
160
- if (typeof dataType === 'object') {
161
- switch (dataType.type) {
162
- case 'fixed-size-list':
163
- const child = deserializeArrowField(dataType.children[0]);
164
- return new FixedSizeList(dataType.listSize, child);
165
- case 'struct':
166
- const children = dataType.children.map((arrowField) => deserializeArrowField(arrowField));
167
- return new Struct(children);
168
- default:
169
- throw new Error('array type not supported');
170
- }
171
- }
172
-
173
- switch (dataType) {
174
- case 'null':
175
- return new Null();
176
- case 'binary':
177
- return new Binary();
178
- case 'bool':
179
- return new Bool();
180
- // case 'int': return new Int();
181
- case 'int8':
182
- return new Int8();
183
- case 'int16':
184
- return new Int16();
185
- case 'int32':
186
- return new Int32();
187
- case 'int64':
188
- return new Int64();
189
- case 'uint8':
190
- return new Uint8();
191
- case 'uint16':
192
- return new Uint16();
193
- case 'uint32':
194
- return new Uint32();
195
- case 'uint64':
196
- return new Uint64();
197
- // case 'float': return new Float();
198
- case 'float16':
199
- return new Float16();
200
- case 'float32':
201
- return new Float32();
202
- case 'float64':
203
- return new Float64();
204
- case 'utf8':
205
- return new Utf8();
206
- // case 'date': return new Date();
207
- case 'date-day':
208
- return new DateDay();
209
- case 'date-millisecond':
210
- return new DateMillisecond();
211
- // case 'time': return new Time();
212
- case 'time-millisecond':
213
- return new TimeMillisecond();
214
- case 'time-second':
215
- return new TimeSecond();
216
- // case 'timestamp': return new Timestamp();
217
- case 'timestamp-second':
218
- return new TimestampSecond();
219
- case 'timestamp-millisecond':
220
- return new TimestampMillisecond();
221
- case 'timestamp-microsecond':
222
- return new TimestampMicrosecond();
223
- case 'timestamp-nanosecond':
224
- return new TimestampNanosecond();
225
- // case 'interval': return new Interval();
226
- case 'interval-daytime':
227
- return new IntervalDayTime();
228
- case 'interval-yearmonth':
229
- return new IntervalYearMonth();
230
- default:
231
- throw new Error('array type not supported');
232
- }
233
- }