@loaders.gl/schema 4.0.0-alpha.5 → 4.0.0-alpha.7

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 (377) hide show
  1. package/dist/bundle.js +2 -2
  2. package/dist/dist.min.js +11362 -13932
  3. package/dist/es5/bundle.js +6 -0
  4. package/dist/es5/bundle.js.map +1 -0
  5. package/dist/es5/index.js +406 -0
  6. package/dist/es5/index.js.map +1 -0
  7. package/dist/es5/lib/mesh/convert-mesh.js +34 -0
  8. package/dist/es5/lib/mesh/convert-mesh.js.map +1 -0
  9. package/dist/es5/lib/mesh/deduce-mesh-schema.js +56 -0
  10. package/dist/es5/lib/mesh/deduce-mesh-schema.js.map +1 -0
  11. package/dist/es5/lib/mesh/mesh-to-arrow-table.js +2 -0
  12. package/dist/es5/lib/mesh/mesh-to-arrow-table.js.map +1 -0
  13. package/dist/es5/lib/mesh/mesh-utils.js +40 -0
  14. package/dist/es5/lib/mesh/mesh-utils.js.map +1 -0
  15. package/dist/es5/lib/table/arrow/arrow-type-utils.js +30 -0
  16. package/dist/es5/lib/table/arrow/arrow-type-utils.js.map +1 -0
  17. package/dist/es5/lib/table/arrow/convert-schema-arrow.js +179 -0
  18. package/dist/es5/lib/table/arrow/convert-schema-arrow.js.map +1 -0
  19. package/dist/es5/lib/table/arrow/convert-table-to-arrow.js +2 -0
  20. package/dist/es5/lib/table/arrow/convert-table-to-arrow.js.map +1 -0
  21. package/dist/es5/lib/table/arrow-api/arrow-like-field.js +49 -0
  22. package/dist/es5/lib/table/arrow-api/arrow-like-field.js.map +1 -0
  23. package/dist/es5/lib/table/arrow-api/arrow-like-schema.js +118 -0
  24. package/dist/es5/lib/table/arrow-api/arrow-like-schema.js.map +1 -0
  25. package/dist/es5/lib/table/arrow-api/arrow-like-table.js +80 -0
  26. package/dist/es5/lib/table/arrow-api/arrow-like-table.js.map +1 -0
  27. package/dist/es5/lib/table/arrow-api/arrow-like-type.js +740 -0
  28. package/dist/es5/lib/table/arrow-api/arrow-like-type.js.map +1 -0
  29. package/dist/es5/lib/table/arrow-api/enum.js +55 -0
  30. package/dist/es5/lib/table/arrow-api/enum.js.map +1 -0
  31. package/dist/es5/lib/table/arrow-api/get-type-info.js +27 -0
  32. package/dist/es5/lib/table/arrow-api/get-type-info.js.map +1 -0
  33. package/dist/es5/lib/table/arrow-api/index.js +44 -0
  34. package/dist/es5/lib/table/arrow-api/index.js.map +1 -0
  35. package/dist/es5/lib/table/batches/base-table-batch-aggregator.js +78 -0
  36. package/dist/es5/lib/table/batches/base-table-batch-aggregator.js.map +1 -0
  37. package/dist/es5/lib/table/batches/columnar-table-batch-aggregator.js +106 -0
  38. package/dist/es5/lib/table/batches/columnar-table-batch-aggregator.js.map +1 -0
  39. package/dist/es5/lib/table/batches/row-table-batch-aggregator.js +96 -0
  40. package/dist/es5/lib/table/batches/row-table-batch-aggregator.js.map +1 -0
  41. package/dist/es5/lib/table/batches/table-batch-aggregator.js +2 -0
  42. package/dist/es5/lib/table/batches/table-batch-aggregator.js.map +1 -0
  43. package/dist/es5/lib/table/batches/table-batch-builder.js +173 -0
  44. package/dist/es5/lib/table/batches/table-batch-builder.js.map +1 -0
  45. package/dist/es5/lib/table/simple-table/convert-table.js +82 -0
  46. package/dist/es5/lib/table/simple-table/convert-table.js.map +1 -0
  47. package/dist/es5/lib/table/simple-table/data-type.js +94 -0
  48. package/dist/es5/lib/table/simple-table/data-type.js.map +1 -0
  49. package/dist/es5/lib/table/simple-table/make-table.js +60 -0
  50. package/dist/es5/lib/table/simple-table/make-table.js.map +1 -0
  51. package/dist/es5/lib/table/simple-table/row-utils.js +34 -0
  52. package/dist/es5/lib/table/simple-table/row-utils.js.map +1 -0
  53. package/dist/es5/lib/table/simple-table/table-accessors.js +343 -0
  54. package/dist/es5/lib/table/simple-table/table-accessors.js.map +1 -0
  55. package/dist/es5/lib/table/simple-table/table-column.js +12 -0
  56. package/dist/es5/lib/table/simple-table/table-column.js.map +1 -0
  57. package/dist/es5/lib/table/simple-table/table-schema.js +85 -0
  58. package/dist/es5/lib/table/simple-table/table-schema.js.map +1 -0
  59. package/dist/es5/lib/utils/assert.js +12 -0
  60. package/dist/es5/lib/utils/assert.js.map +1 -0
  61. package/dist/es5/lib/utils/async-queue.js +169 -0
  62. package/dist/es5/lib/utils/async-queue.js.map +1 -0
  63. package/dist/es5/types/category-gis.js +2 -0
  64. package/dist/es5/types/category-gis.js.map +1 -0
  65. package/dist/es5/types/category-image.js +2 -0
  66. package/dist/es5/types/category-image.js.map +1 -0
  67. package/dist/es5/types/category-mesh.js +2 -0
  68. package/dist/es5/types/category-mesh.js.map +1 -0
  69. package/dist/es5/types/category-table.js +2 -0
  70. package/dist/es5/types/category-table.js.map +1 -0
  71. package/dist/es5/types/category-texture.js +2 -0
  72. package/dist/es5/types/category-texture.js.map +1 -0
  73. package/dist/es5/types/schema.js +2 -0
  74. package/dist/es5/types/schema.js.map +1 -0
  75. package/dist/es5/types/types.js +2 -0
  76. package/dist/es5/types/types.js.map +1 -0
  77. package/dist/esm/bundle.js +4 -0
  78. package/dist/esm/bundle.js.map +1 -0
  79. package/dist/esm/index.js +16 -0
  80. package/dist/esm/index.js.map +1 -0
  81. package/dist/{category → esm/lib}/mesh/convert-mesh.js +0 -11
  82. package/dist/esm/lib/mesh/convert-mesh.js.map +1 -0
  83. package/dist/esm/lib/mesh/deduce-mesh-schema.js +48 -0
  84. package/dist/esm/lib/mesh/deduce-mesh-schema.js.map +1 -0
  85. package/dist/esm/lib/mesh/mesh-to-arrow-table.js +2 -0
  86. package/dist/esm/lib/mesh/mesh-to-arrow-table.js.map +1 -0
  87. package/dist/{category → esm/lib}/mesh/mesh-utils.js +0 -5
  88. package/dist/esm/lib/mesh/mesh-utils.js.map +1 -0
  89. package/dist/{lib/arrow/arrow-like-type-utils.js → esm/lib/table/arrow/arrow-type-utils.js} +3 -11
  90. package/dist/esm/lib/table/arrow/arrow-type-utils.js.map +1 -0
  91. package/dist/esm/lib/table/arrow/convert-schema-arrow.js +158 -0
  92. package/dist/esm/lib/table/arrow/convert-schema-arrow.js.map +1 -0
  93. package/dist/esm/lib/table/arrow/convert-table-to-arrow.js +2 -0
  94. package/dist/esm/lib/table/arrow/convert-table-to-arrow.js.map +1 -0
  95. package/dist/{lib/schema/impl/field.js → esm/lib/table/arrow-api/arrow-like-field.js} +6 -13
  96. package/dist/esm/lib/table/arrow-api/arrow-like-field.js.map +1 -0
  97. package/dist/{lib/schema/impl/schema.js → esm/lib/table/arrow-api/arrow-like-schema.js} +22 -47
  98. package/dist/esm/lib/table/arrow-api/arrow-like-schema.js.map +1 -0
  99. package/dist/esm/lib/table/arrow-api/arrow-like-table.js +51 -0
  100. package/dist/esm/lib/table/arrow-api/arrow-like-table.js.map +1 -0
  101. package/dist/{lib/schema/impl/type.js → esm/lib/table/arrow-api/arrow-like-type.js} +11 -116
  102. package/dist/esm/lib/table/arrow-api/arrow-like-type.js.map +1 -0
  103. package/dist/{lib/schema/impl → esm/lib/table/arrow-api}/enum.js +3 -4
  104. package/dist/esm/lib/table/arrow-api/enum.js.map +1 -0
  105. package/dist/{lib/arrow → esm/lib/table/arrow-api}/get-type-info.js +1 -4
  106. package/dist/esm/lib/table/arrow-api/get-type-info.js.map +1 -0
  107. package/dist/esm/lib/table/arrow-api/index.js +5 -0
  108. package/dist/esm/lib/table/arrow-api/index.js.map +1 -0
  109. package/dist/{lib → esm/lib/table}/batches/base-table-batch-aggregator.js +1 -18
  110. package/dist/esm/lib/table/batches/base-table-batch-aggregator.js.map +1 -0
  111. package/dist/{lib → esm/lib/table}/batches/columnar-table-batch-aggregator.js +1 -24
  112. package/dist/esm/lib/table/batches/columnar-table-batch-aggregator.js.map +1 -0
  113. package/dist/{lib → esm/lib/table}/batches/row-table-batch-aggregator.js +2 -22
  114. package/dist/esm/lib/table/batches/row-table-batch-aggregator.js.map +1 -0
  115. package/dist/esm/lib/table/batches/table-batch-aggregator.js.map +1 -0
  116. package/dist/{lib → esm/lib/table}/batches/table-batch-builder.js +6 -49
  117. package/dist/esm/lib/table/batches/table-batch-builder.js.map +1 -0
  118. package/dist/esm/lib/table/simple-table/convert-table.js +59 -0
  119. package/dist/esm/lib/table/simple-table/convert-table.js.map +1 -0
  120. package/dist/esm/lib/table/simple-table/data-type.js +85 -0
  121. package/dist/esm/lib/table/simple-table/data-type.js.map +1 -0
  122. package/dist/esm/lib/table/simple-table/make-table.js +50 -0
  123. package/dist/esm/lib/table/simple-table/make-table.js.map +1 -0
  124. package/dist/{lib/utils → esm/lib/table/simple-table}/row-utils.js +0 -8
  125. package/dist/esm/lib/table/simple-table/row-utils.js.map +1 -0
  126. package/dist/esm/lib/table/simple-table/table-accessors.js +262 -0
  127. package/dist/esm/lib/table/simple-table/table-accessors.js.map +1 -0
  128. package/dist/esm/lib/table/simple-table/table-column.js +6 -0
  129. package/dist/esm/lib/table/simple-table/table-column.js.map +1 -0
  130. package/dist/esm/lib/table/simple-table/table-schema.js +70 -0
  131. package/dist/esm/lib/table/simple-table/table-schema.js.map +1 -0
  132. package/dist/esm/lib/utils/assert.js +6 -0
  133. package/dist/esm/lib/utils/assert.js.map +1 -0
  134. package/dist/esm/lib/utils/async-queue.js +94 -0
  135. package/dist/esm/lib/utils/async-queue.js.map +1 -0
  136. package/dist/esm/types/category-gis.js +2 -0
  137. package/dist/esm/types/category-gis.js.map +1 -0
  138. package/dist/esm/types/category-image.js +2 -0
  139. package/dist/esm/types/category-image.js.map +1 -0
  140. package/dist/esm/types/category-mesh.js +2 -0
  141. package/dist/esm/types/category-mesh.js.map +1 -0
  142. package/dist/esm/types/category-table.js +2 -0
  143. package/dist/esm/types/category-table.js.map +1 -0
  144. package/dist/esm/types/category-texture.js +2 -0
  145. package/dist/esm/types/category-texture.js.map +1 -0
  146. package/dist/esm/types/schema.js +2 -0
  147. package/dist/esm/types/schema.js.map +1 -0
  148. package/dist/esm/types/types.js.map +1 -0
  149. package/dist/index.d.ts +27 -25
  150. package/dist/index.d.ts.map +1 -1
  151. package/dist/index.js +92 -13
  152. package/dist/{category → lib}/mesh/convert-mesh.d.ts +3 -3
  153. package/dist/lib/mesh/convert-mesh.d.ts.map +1 -0
  154. package/dist/lib/mesh/convert-mesh.js +40 -0
  155. package/dist/{category → lib}/mesh/deduce-mesh-schema.d.ts +5 -5
  156. package/dist/lib/mesh/deduce-mesh-schema.d.ts.map +1 -0
  157. package/dist/lib/mesh/deduce-mesh-schema.js +66 -0
  158. package/dist/lib/mesh/mesh-to-arrow-table.d.ts +1 -0
  159. package/dist/lib/mesh/mesh-to-arrow-table.d.ts.map +1 -0
  160. package/dist/lib/mesh/mesh-to-arrow-table.js +44 -0
  161. package/dist/{category → lib}/mesh/mesh-utils.d.ts +4 -4
  162. package/dist/lib/mesh/mesh-utils.d.ts.map +1 -0
  163. package/dist/lib/mesh/mesh-utils.js +51 -0
  164. package/dist/lib/table/arrow/arrow-type-utils.d.ts +4 -0
  165. package/dist/lib/table/arrow/arrow-type-utils.d.ts.map +1 -0
  166. package/dist/lib/table/arrow/arrow-type-utils.js +53 -0
  167. package/dist/lib/table/arrow/convert-schema-arrow.d.ts +13 -0
  168. package/dist/lib/table/arrow/convert-schema-arrow.d.ts.map +1 -0
  169. package/dist/lib/table/arrow/convert-schema-arrow.js +187 -0
  170. package/dist/lib/table/arrow/convert-table-to-arrow.d.ts +42 -0
  171. package/dist/lib/table/arrow/convert-table-to-arrow.d.ts.map +1 -0
  172. package/dist/lib/table/arrow/convert-table-to-arrow.js +57 -0
  173. package/dist/lib/{schema/impl/field.d.ts → table/arrow-api/arrow-like-field.d.ts} +4 -4
  174. package/dist/lib/table/arrow-api/arrow-like-field.d.ts.map +1 -0
  175. package/dist/lib/table/arrow-api/arrow-like-field.js +34 -0
  176. package/dist/lib/table/arrow-api/arrow-like-schema.d.ts +12 -0
  177. package/dist/lib/table/arrow-api/arrow-like-schema.d.ts.map +1 -0
  178. package/dist/lib/table/arrow-api/arrow-like-schema.js +81 -0
  179. package/dist/lib/table/arrow-api/arrow-like-table.d.ts +28 -0
  180. package/dist/lib/table/arrow-api/arrow-like-table.d.ts.map +1 -0
  181. package/dist/lib/table/arrow-api/arrow-like-table.js +53 -0
  182. package/dist/lib/{schema/impl/type.d.ts → table/arrow-api/arrow-like-type.d.ts} +7 -6
  183. package/dist/lib/table/arrow-api/arrow-like-type.d.ts.map +1 -0
  184. package/dist/lib/table/arrow-api/arrow-like-type.js +463 -0
  185. package/dist/lib/table/arrow-api/enum.d.ts.map +1 -0
  186. package/dist/lib/table/arrow-api/enum.js +97 -0
  187. package/dist/lib/{arrow → table/arrow-api}/get-type-info.d.ts +2 -3
  188. package/dist/lib/table/arrow-api/get-type-info.d.ts.map +1 -0
  189. package/dist/lib/table/arrow-api/get-type-info.js +29 -0
  190. package/dist/lib/table/arrow-api/index.d.ts +5 -0
  191. package/dist/lib/table/arrow-api/index.d.ts.map +1 -0
  192. package/dist/lib/table/arrow-api/index.js +25 -0
  193. package/dist/lib/{batches → table/batches}/base-table-batch-aggregator.d.ts +3 -3
  194. package/dist/lib/table/batches/base-table-batch-aggregator.d.ts.map +1 -0
  195. package/dist/lib/table/batches/base-table-batch-aggregator.js +60 -0
  196. package/dist/lib/{batches → table/batches}/columnar-table-batch-aggregator.d.ts +4 -4
  197. package/dist/lib/table/batches/columnar-table-batch-aggregator.d.ts.map +1 -0
  198. package/dist/lib/table/batches/columnar-table-batch-aggregator.js +92 -0
  199. package/dist/lib/{batches → table/batches}/row-table-batch-aggregator.d.ts +3 -3
  200. package/dist/lib/table/batches/row-table-batch-aggregator.d.ts.map +1 -0
  201. package/dist/lib/table/batches/row-table-batch-aggregator.js +81 -0
  202. package/dist/lib/{batches → table/batches}/table-batch-aggregator.d.ts +2 -2
  203. package/dist/lib/table/batches/table-batch-aggregator.d.ts.map +1 -0
  204. package/dist/lib/table/batches/table-batch-aggregator.js +3 -0
  205. package/dist/lib/{batches → table/batches}/table-batch-builder.d.ts +5 -5
  206. package/dist/lib/table/batches/table-batch-builder.d.ts.map +1 -0
  207. package/dist/lib/table/batches/table-batch-builder.js +152 -0
  208. package/dist/lib/table/simple-table/convert-table.d.ts +8 -0
  209. package/dist/lib/table/simple-table/convert-table.d.ts.map +1 -0
  210. package/dist/lib/table/simple-table/convert-table.js +65 -0
  211. package/dist/lib/table/simple-table/data-type.d.ts +17 -0
  212. package/dist/lib/table/simple-table/data-type.d.ts.map +1 -0
  213. package/dist/lib/table/simple-table/data-type.js +93 -0
  214. package/dist/lib/table/simple-table/make-table.d.ts +65 -0
  215. package/dist/lib/table/simple-table/make-table.d.ts.map +1 -0
  216. package/dist/lib/table/simple-table/make-table.js +95 -0
  217. package/dist/lib/table/simple-table/row-utils.d.ts.map +1 -0
  218. package/dist/lib/table/simple-table/row-utils.js +33 -0
  219. package/dist/lib/table/simple-table/table-accessors.d.ts +67 -0
  220. package/dist/lib/table/simple-table/table-accessors.d.ts.map +1 -0
  221. package/dist/lib/table/simple-table/table-accessors.js +319 -0
  222. package/dist/lib/table/simple-table/table-column.d.ts +7 -0
  223. package/dist/lib/table/simple-table/table-column.d.ts.map +1 -0
  224. package/dist/lib/table/simple-table/table-column.js +41 -0
  225. package/dist/lib/table/simple-table/table-schema.d.ts +15 -0
  226. package/dist/lib/table/simple-table/table-schema.d.ts.map +1 -0
  227. package/dist/lib/table/simple-table/table-schema.js +85 -0
  228. package/dist/lib/utils/assert.js +11 -5
  229. package/dist/lib/utils/async-queue.js +82 -109
  230. package/dist/{category/gis.d.ts → types/category-gis.d.ts} +26 -26
  231. package/dist/types/category-gis.d.ts.map +1 -0
  232. package/dist/types/category-gis.js +2 -0
  233. package/dist/{category/image/image.d.ts → types/category-image.d.ts} +4 -4
  234. package/dist/types/category-image.d.ts.map +1 -0
  235. package/dist/types/category-image.js +2 -0
  236. package/dist/{category/mesh/mesh-types.d.ts → types/category-mesh.d.ts} +8 -10
  237. package/dist/types/category-mesh.d.ts.map +1 -0
  238. package/dist/types/category-mesh.js +3 -0
  239. package/dist/{category/table/table-types.d.ts → types/category-table.d.ts} +44 -34
  240. package/dist/types/category-table.d.ts.map +1 -0
  241. package/dist/types/category-table.js +3 -0
  242. package/dist/types/category-texture.d.ts +18 -0
  243. package/dist/types/category-texture.d.ts.map +1 -0
  244. package/dist/types/category-texture.js +3 -0
  245. package/dist/types/schema.d.ts +77 -0
  246. package/dist/types/schema.d.ts.map +1 -0
  247. package/dist/types/schema.js +3 -0
  248. package/dist/types/types.d.ts +15 -0
  249. package/dist/types/types.d.ts.map +1 -0
  250. package/dist/types/types.js +2 -0
  251. package/package.json +5 -6
  252. package/src/index.ts +65 -31
  253. package/src/{category → lib}/mesh/convert-mesh.ts +10 -8
  254. package/src/{category → lib}/mesh/deduce-mesh-schema.ts +20 -19
  255. package/src/{category → lib}/mesh/mesh-to-arrow-table.ts +5 -3
  256. package/src/{category → lib}/mesh/mesh-utils.ts +2 -2
  257. package/src/lib/{arrow → table/arrow}/arrow-type-utils.ts +16 -12
  258. package/src/lib/table/arrow/convert-schema-arrow.ts +232 -0
  259. package/src/lib/table/arrow/convert-table-to-arrow.ts +59 -0
  260. package/src/lib/{schema/impl/field.ts → table/arrow-api/arrow-like-field.ts} +6 -4
  261. package/src/lib/table/arrow-api/arrow-like-schema.ts +99 -0
  262. package/src/lib/table/arrow-api/arrow-like-table.ts +83 -0
  263. package/src/lib/{schema/impl/type.ts → table/arrow-api/arrow-like-type.ts} +2 -1
  264. package/src/lib/{arrow → table/arrow-api}/get-type-info.ts +4 -3
  265. package/src/lib/table/arrow-api/index.ts +6 -0
  266. package/src/lib/{batches → table/batches}/base-table-batch-aggregator.ts +5 -3
  267. package/src/lib/{batches → table/batches}/columnar-table-batch-aggregator.ts +5 -3
  268. package/src/lib/{batches → table/batches}/row-table-batch-aggregator.ts +6 -4
  269. package/src/lib/{batches → table/batches}/table-batch-aggregator.ts +4 -2
  270. package/src/lib/{batches → table/batches}/table-batch-builder.ts +8 -6
  271. package/src/lib/table/simple-table/convert-table.ts +72 -0
  272. package/src/lib/table/simple-table/data-type.ts +102 -0
  273. package/src/lib/table/simple-table/make-table.ts +108 -0
  274. package/src/lib/table/simple-table/table-accessors.ts +360 -0
  275. package/src/lib/table/simple-table/table-column.ts +47 -0
  276. package/src/lib/table/simple-table/table-schema.ts +97 -0
  277. package/src/{category/gis.ts → types/category-gis.ts} +9 -2
  278. package/src/{category/mesh/mesh-types.ts → types/category-mesh.ts} +6 -4
  279. package/src/types/category-table.ts +104 -0
  280. package/src/{category/texture/texture.ts → types/category-texture.ts} +3 -1
  281. package/src/types/schema.ts +97 -0
  282. package/src/types/types.ts +43 -0
  283. package/dist/bundle.js.map +0 -1
  284. package/dist/category/common.d.ts +0 -19
  285. package/dist/category/common.d.ts.map +0 -1
  286. package/dist/category/common.js +0 -2
  287. package/dist/category/common.js.map +0 -1
  288. package/dist/category/gis.d.ts.map +0 -1
  289. package/dist/category/gis.js +0 -2
  290. package/dist/category/gis.js.map +0 -1
  291. package/dist/category/image/image.d.ts.map +0 -1
  292. package/dist/category/image/image.js +0 -2
  293. package/dist/category/image/image.js.map +0 -1
  294. package/dist/category/mesh/convert-mesh.d.ts.map +0 -1
  295. package/dist/category/mesh/convert-mesh.js.map +0 -1
  296. package/dist/category/mesh/deduce-mesh-schema.d.ts.map +0 -1
  297. package/dist/category/mesh/deduce-mesh-schema.js +0 -42
  298. package/dist/category/mesh/deduce-mesh-schema.js.map +0 -1
  299. package/dist/category/mesh/mesh-to-arrow-table.d.ts +0 -11
  300. package/dist/category/mesh/mesh-to-arrow-table.d.ts.map +0 -1
  301. package/dist/category/mesh/mesh-to-arrow-table.js +0 -31
  302. package/dist/category/mesh/mesh-to-arrow-table.js.map +0 -1
  303. package/dist/category/mesh/mesh-types.d.ts.map +0 -1
  304. package/dist/category/mesh/mesh-types.js +0 -2
  305. package/dist/category/mesh/mesh-types.js.map +0 -1
  306. package/dist/category/mesh/mesh-utils.d.ts.map +0 -1
  307. package/dist/category/mesh/mesh-utils.js.map +0 -1
  308. package/dist/category/table/deduce-table-schema.d.ts +0 -9
  309. package/dist/category/table/deduce-table-schema.d.ts.map +0 -1
  310. package/dist/category/table/deduce-table-schema.js +0 -51
  311. package/dist/category/table/deduce-table-schema.js.map +0 -1
  312. package/dist/category/table/table-types.d.ts.map +0 -1
  313. package/dist/category/table/table-types.js +0 -2
  314. package/dist/category/table/table-types.js.map +0 -1
  315. package/dist/category/texture/texture.d.ts +0 -18
  316. package/dist/category/texture/texture.d.ts.map +0 -1
  317. package/dist/category/texture/texture.js +0 -2
  318. package/dist/category/texture/texture.js.map +0 -1
  319. package/dist/index.js.map +0 -1
  320. package/dist/lib/arrow/arrow-like-type-utils.d.ts +0 -4
  321. package/dist/lib/arrow/arrow-like-type-utils.d.ts.map +0 -1
  322. package/dist/lib/arrow/arrow-like-type-utils.js.map +0 -1
  323. package/dist/lib/arrow/arrow-type-utils.d.ts +0 -6
  324. package/dist/lib/arrow/arrow-type-utils.d.ts.map +0 -1
  325. package/dist/lib/arrow/arrow-type-utils.js +0 -62
  326. package/dist/lib/arrow/arrow-type-utils.js.map +0 -1
  327. package/dist/lib/arrow/get-type-info.d.ts.map +0 -1
  328. package/dist/lib/arrow/get-type-info.js.map +0 -1
  329. package/dist/lib/batches/base-table-batch-aggregator.d.ts.map +0 -1
  330. package/dist/lib/batches/base-table-batch-aggregator.js.map +0 -1
  331. package/dist/lib/batches/columnar-table-batch-aggregator.d.ts.map +0 -1
  332. package/dist/lib/batches/columnar-table-batch-aggregator.js.map +0 -1
  333. package/dist/lib/batches/row-table-batch-aggregator.d.ts.map +0 -1
  334. package/dist/lib/batches/row-table-batch-aggregator.js.map +0 -1
  335. package/dist/lib/batches/table-batch-aggregator.d.ts.map +0 -1
  336. package/dist/lib/batches/table-batch-aggregator.js.map +0 -1
  337. package/dist/lib/batches/table-batch-builder.d.ts.map +0 -1
  338. package/dist/lib/batches/table-batch-builder.js.map +0 -1
  339. package/dist/lib/schema/impl/enum.d.ts.map +0 -1
  340. package/dist/lib/schema/impl/enum.js.map +0 -1
  341. package/dist/lib/schema/impl/field.d.ts.map +0 -1
  342. package/dist/lib/schema/impl/field.js.map +0 -1
  343. package/dist/lib/schema/impl/schema.d.ts +0 -16
  344. package/dist/lib/schema/impl/schema.d.ts.map +0 -1
  345. package/dist/lib/schema/impl/schema.js.map +0 -1
  346. package/dist/lib/schema/impl/type.d.ts.map +0 -1
  347. package/dist/lib/schema/impl/type.js.map +0 -1
  348. package/dist/lib/schema/schema.d.ts +0 -5
  349. package/dist/lib/schema/schema.d.ts.map +0 -1
  350. package/dist/lib/schema/schema.js +0 -5
  351. package/dist/lib/schema/schema.js.map +0 -1
  352. package/dist/lib/schema-utils/deduce-column-type.d.ts +0 -3
  353. package/dist/lib/schema-utils/deduce-column-type.d.ts.map +0 -1
  354. package/dist/lib/schema-utils/deduce-column-type.js +0 -23
  355. package/dist/lib/schema-utils/deduce-column-type.js.map +0 -1
  356. package/dist/lib/utils/assert.js.map +0 -1
  357. package/dist/lib/utils/async-queue.js.map +0 -1
  358. package/dist/lib/utils/row-utils.d.ts.map +0 -1
  359. package/dist/lib/utils/row-utils.js.map +0 -1
  360. package/dist/types.d.ts +0 -8
  361. package/dist/types.d.ts.map +0 -1
  362. package/dist/types.js.map +0 -1
  363. package/src/category/common.ts +0 -30
  364. package/src/category/table/deduce-table-schema.ts +0 -123
  365. package/src/category/table/table-types.ts +0 -81
  366. package/src/lib/arrow/arrow-like-type-utils.ts +0 -35
  367. package/src/lib/schema/impl/schema.ts +0 -99
  368. package/src/lib/schema/schema.ts +0 -82
  369. package/src/lib/schema-utils/deduce-column-type.ts +0 -92
  370. package/src/types.ts +0 -19
  371. /package/dist/{lib → esm/lib/table}/batches/table-batch-aggregator.js +0 -0
  372. /package/dist/{types.js → esm/types/types.js} +0 -0
  373. /package/dist/lib/{schema/impl → table/arrow-api}/enum.d.ts +0 -0
  374. /package/dist/lib/{utils → table/simple-table}/row-utils.d.ts +0 -0
  375. /package/src/lib/{schema/impl → table/arrow-api}/enum.ts +0 -0
  376. /package/src/lib/{utils → table/simple-table}/row-utils.ts +0 -0
  377. /package/src/{category/image/image.ts → types/category-image.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-table-batch-aggregator.js","names":["DEFAULT_ROW_COUNT","BaseTableBatchAggregator","constructor","schema","options","_defineProperty","Array","isArray","_headers","key","index","name","rowCount","length","addArrayRow","row","cursor","Number","isFinite","rows","addObjectRow","getBatch","slice","batch","shape","batchType","data"],"sources":["../../../../../src/lib/table/batches/base-table-batch-aggregator.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Schema} from '../../../types/schema';\nimport type {TableBatch} from '../../../types/category-table';\nimport {TableBatchAggregator, TableBatchOptions} from './table-batch-aggregator';\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport class BaseTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n options: TableBatchOptions;\n\n length: number = 0;\n rows: any[] | null = null;\n cursor: number = 0;\n private _headers: string[] = [];\n\n constructor(schema: Schema, options: TableBatchOptions) {\n this.options = options;\n this.schema = schema;\n\n // schema is an array if there're no headers\n // object if there are headers\n if (!Array.isArray(schema)) {\n this._headers = [];\n for (const key in schema) {\n this._headers[schema[key].index] = schema[key].name;\n }\n }\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[], cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);\n this.rows[this.length] = row;\n this.length++;\n }\n\n addObjectRow(row: {[columnName: string]: any}, cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);\n this.rows[this.length] = row;\n this.length++;\n }\n\n getBatch(): TableBatch | null {\n let rows = this.rows;\n if (!rows) {\n return null;\n }\n\n rows = rows.slice(0, this.length);\n this.rows = null;\n\n const batch: TableBatch = {\n shape: this.options.shape,\n batchType: 'data',\n data: rows,\n length: this.length,\n schema: this.schema,\n cursor: this.cursor\n };\n\n return batch;\n }\n}\n"],"mappings":";AAMA,MAAMA,iBAAiB,GAAG,GAAG;AAE7B,OAAO,MAAMC,wBAAwB,CAAiC;EASpEC,WAAWA,CAACC,MAAc,EAAEC,OAA0B,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA,iBALvC,CAAC;IAAAA,eAAA,eACG,IAAI;IAAAA,eAAA,iBACR,CAAC;IAAAA,eAAA,mBACW,EAAE;IAG7B,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACD,MAAM,GAAGA,MAAM;IAIpB,IAAI,CAACG,KAAK,CAACC,OAAO,CAACJ,MAAM,CAAC,EAAE;MAC1B,IAAI,CAACK,QAAQ,GAAG,EAAE;MAClB,KAAK,MAAMC,GAAG,IAAIN,MAAM,EAAE;QACxB,IAAI,CAACK,QAAQ,CAACL,MAAM,CAACM,GAAG,CAAC,CAACC,KAAK,CAAC,GAAGP,MAAM,CAACM,GAAG,CAAC,CAACE,IAAI;MACrD;IACF;EACF;EAEAC,QAAQA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACC,MAAM;EACpB;EAEAC,WAAWA,CAACC,GAAU,EAAEC,MAAe,EAAQ;IAC7C,IAAIC,MAAM,CAACC,QAAQ,CAACF,MAAM,CAAC,EAAE;MAC3B,IAAI,CAACA,MAAM,GAAGA,MAAgB;IAChC;IAEA,IAAI,CAACG,IAAI,GAAG,IAAI,CAACA,IAAI,IAAI,IAAIb,KAAK,CAACN,iBAAiB,CAAC;IACrD,IAAI,CAACmB,IAAI,CAAC,IAAI,CAACN,MAAM,CAAC,GAAGE,GAAG;IAC5B,IAAI,CAACF,MAAM,EAAE;EACf;EAEAO,YAAYA,CAACL,GAAgC,EAAEC,MAAe,EAAQ;IACpE,IAAIC,MAAM,CAACC,QAAQ,CAACF,MAAM,CAAC,EAAE;MAC3B,IAAI,CAACA,MAAM,GAAGA,MAAgB;IAChC;IAEA,IAAI,CAACG,IAAI,GAAG,IAAI,CAACA,IAAI,IAAI,IAAIb,KAAK,CAACN,iBAAiB,CAAC;IACrD,IAAI,CAACmB,IAAI,CAAC,IAAI,CAACN,MAAM,CAAC,GAAGE,GAAG;IAC5B,IAAI,CAACF,MAAM,EAAE;EACf;EAEAQ,QAAQA,CAAA,EAAsB;IAC5B,IAAIF,IAAI,GAAG,IAAI,CAACA,IAAI;IACpB,IAAI,CAACA,IAAI,EAAE;MACT,OAAO,IAAI;IACb;IAEAA,IAAI,GAAGA,IAAI,CAACG,KAAK,CAAC,CAAC,EAAE,IAAI,CAACT,MAAM,CAAC;IACjC,IAAI,CAACM,IAAI,GAAG,IAAI;IAEhB,MAAMI,KAAiB,GAAG;MACxBC,KAAK,EAAE,IAAI,CAACpB,OAAO,CAACoB,KAAK;MACzBC,SAAS,EAAE,MAAM;MACjBC,IAAI,EAAEP,IAAI;MACVN,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBV,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBa,MAAM,EAAE,IAAI,CAACA;IACf,CAAC;IAED,OAAOO,KAAK;EACd;AACF"}
@@ -1,58 +1,41 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  const DEFAULT_ROW_COUNT = 100;
3
- export default class ColumnarTableBatchAggregator {
3
+ export class ColumnarTableBatchAggregator {
4
4
  constructor(schema, options) {
5
5
  _defineProperty(this, "schema", void 0);
6
-
7
6
  _defineProperty(this, "length", 0);
8
-
9
7
  _defineProperty(this, "allocated", 0);
10
-
11
8
  _defineProperty(this, "columns", {});
12
-
13
9
  this.schema = schema;
14
-
15
10
  this._reallocateColumns();
16
11
  }
17
-
18
12
  rowCount() {
19
13
  return this.length;
20
14
  }
21
-
22
15
  addArrayRow(row) {
23
16
  this._reallocateColumns();
24
-
25
17
  let i = 0;
26
-
27
18
  for (const fieldName in this.columns) {
28
19
  this.columns[fieldName][this.length] = row[i++];
29
20
  }
30
-
31
21
  this.length++;
32
22
  }
33
-
34
23
  addObjectRow(row) {
35
24
  this._reallocateColumns();
36
-
37
25
  for (const fieldName in row) {
38
26
  this.columns[fieldName][this.length] = row[fieldName];
39
27
  }
40
-
41
28
  this.length++;
42
29
  }
43
-
44
30
  getBatch() {
45
31
  this._pruneColumns();
46
-
47
32
  const columns = Array.isArray(this.schema) ? this.columns : {};
48
-
49
33
  if (!Array.isArray(this.schema)) {
50
34
  for (const fieldName in this.schema) {
51
35
  const field = this.schema[fieldName];
52
36
  columns[field.name] = this.columns[field.index];
53
37
  }
54
38
  }
55
-
56
39
  this.columns = {};
57
40
  const batch = {
58
41
  shape: 'columnar-table',
@@ -63,20 +46,16 @@ export default class ColumnarTableBatchAggregator {
63
46
  };
64
47
  return batch;
65
48
  }
66
-
67
49
  _reallocateColumns() {
68
50
  if (this.length < this.allocated) {
69
51
  return;
70
52
  }
71
-
72
53
  this.allocated = this.allocated > 0 ? this.allocated *= 2 : DEFAULT_ROW_COUNT;
73
54
  this.columns = {};
74
-
75
55
  for (const fieldName in this.schema) {
76
56
  const field = this.schema[fieldName];
77
57
  const ArrayType = field.type || Float32Array;
78
58
  const oldColumn = this.columns[field.index];
79
-
80
59
  if (oldColumn && ArrayBuffer.isView(oldColumn)) {
81
60
  const typedArray = new ArrayType(this.allocated);
82
61
  typedArray.set(oldColumn);
@@ -89,12 +68,10 @@ export default class ColumnarTableBatchAggregator {
89
68
  }
90
69
  }
91
70
  }
92
-
93
71
  _pruneColumns() {
94
72
  for (const [columnName, column] of Object.entries(this.columns)) {
95
73
  this.columns[columnName] = column.slice(0, this.length);
96
74
  }
97
75
  }
98
-
99
76
  }
100
77
  //# sourceMappingURL=columnar-table-batch-aggregator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columnar-table-batch-aggregator.js","names":["DEFAULT_ROW_COUNT","ColumnarTableBatchAggregator","constructor","schema","options","_defineProperty","_reallocateColumns","rowCount","length","addArrayRow","row","i","fieldName","columns","addObjectRow","getBatch","_pruneColumns","Array","isArray","field","name","index","batch","shape","batchType","data","allocated","ArrayType","type","Float32Array","oldColumn","ArrayBuffer","isView","typedArray","set","columnName","column","Object","entries","slice"],"sources":["../../../../../src/lib/table/batches/columnar-table-batch-aggregator.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Schema} from '../../../types/schema';\nimport type {ColumnarTableBatch, ArrowTableBatch} from '../../../types/category-table';\nimport {TableBatchAggregator} from './table-batch-aggregator';\n\ntype ColumnarTableBatchOptions = {};\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport class ColumnarTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n length: number = 0;\n allocated: number = 0;\n columns: {[columnName: string]: any[]} = {};\n\n constructor(schema: Schema, options: ColumnarTableBatchOptions) {\n this.schema = schema;\n this._reallocateColumns();\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[]) {\n // If user keeps pushing rows beyond batch size, reallocate\n this._reallocateColumns();\n let i = 0;\n // TODO what if no csv header, columns not populated?\n for (const fieldName in this.columns) {\n this.columns[fieldName][this.length] = row[i++];\n }\n this.length++;\n }\n\n addObjectRow(row: {[columnName: string]: any}): void {\n // If user keeps pushing rows beyond batch size, reallocate\n this._reallocateColumns();\n for (const fieldName in row) {\n this.columns[fieldName][this.length] = row[fieldName];\n }\n this.length++;\n }\n\n getBatch(): ColumnarTableBatch | ArrowTableBatch | null {\n this._pruneColumns();\n const columns = Array.isArray(this.schema) ? this.columns : {};\n\n // schema is an array if there're no headers\n // object if there are headers\n // columns should match schema format\n if (!Array.isArray(this.schema)) {\n for (const fieldName in this.schema) {\n const field = this.schema[fieldName];\n columns[field.name] = this.columns[field.index];\n }\n }\n\n this.columns = {};\n\n const batch: ColumnarTableBatch = {\n shape: 'columnar-table',\n batchType: 'data',\n data: columns,\n schema: this.schema,\n length: this.length\n };\n\n return batch;\n }\n\n // HELPERS\n\n _reallocateColumns() {\n if (this.length < this.allocated) {\n return;\n }\n\n // @ts-ignore TODO\n this.allocated = this.allocated > 0 ? (this.allocated *= 2) : DEFAULT_ROW_COUNT;\n this.columns = {};\n\n for (const fieldName in this.schema) {\n const field = this.schema[fieldName];\n const ArrayType = field.type || Float32Array;\n const oldColumn = this.columns[field.index];\n\n if (oldColumn && ArrayBuffer.isView(oldColumn)) {\n // Copy the old data to the new array\n const typedArray = new ArrayType(this.allocated);\n typedArray.set(oldColumn);\n this.columns[field.index] = typedArray;\n } else if (oldColumn) {\n // Plain array\n oldColumn.length = this.allocated;\n this.columns[field.index] = oldColumn;\n } else {\n // Create new\n this.columns[field.index] = new ArrayType(this.allocated);\n }\n }\n }\n\n _pruneColumns() {\n for (const [columnName, column] of Object.entries(this.columns)) {\n this.columns[columnName] = column.slice(0, this.length);\n }\n }\n}\n"],"mappings":"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"}
@@ -1,49 +1,36 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { convertToArrayRow, convertToObjectRow } from '../utils/row-utils';
2
+ import { convertToArrayRow, convertToObjectRow } from '../simple-table/row-utils';
3
3
  const DEFAULT_ROW_COUNT = 100;
4
- export default class RowTableBatchAggregator {
4
+ export class RowTableBatchAggregator {
5
5
  constructor(schema, options) {
6
6
  _defineProperty(this, "schema", void 0);
7
-
8
7
  _defineProperty(this, "options", void 0);
9
-
10
8
  _defineProperty(this, "length", 0);
11
-
12
9
  _defineProperty(this, "objectRows", null);
13
-
14
10
  _defineProperty(this, "arrayRows", null);
15
-
16
11
  _defineProperty(this, "cursor", 0);
17
-
18
12
  _defineProperty(this, "_headers", []);
19
-
20
13
  this.options = options;
21
14
  this.schema = schema;
22
-
23
15
  if (!Array.isArray(schema)) {
24
16
  this._headers = [];
25
-
26
17
  for (const key in schema) {
27
18
  this._headers[schema[key].index] = schema[key].name;
28
19
  }
29
20
  }
30
21
  }
31
-
32
22
  rowCount() {
33
23
  return this.length;
34
24
  }
35
-
36
25
  addArrayRow(row, cursor) {
37
26
  if (Number.isFinite(cursor)) {
38
27
  this.cursor = cursor;
39
28
  }
40
-
41
29
  switch (this.options.shape) {
42
30
  case 'object-row-table':
43
31
  const rowObject = convertToObjectRow(row, this._headers);
44
32
  this.addObjectRow(rowObject, cursor);
45
33
  break;
46
-
47
34
  case 'array-row-table':
48
35
  this.arrayRows = this.arrayRows || new Array(DEFAULT_ROW_COUNT);
49
36
  this.arrayRows[this.length] = row;
@@ -51,18 +38,15 @@ export default class RowTableBatchAggregator {
51
38
  break;
52
39
  }
53
40
  }
54
-
55
41
  addObjectRow(row, cursor) {
56
42
  if (Number.isFinite(cursor)) {
57
43
  this.cursor = cursor;
58
44
  }
59
-
60
45
  switch (this.options.shape) {
61
46
  case 'array-row-table':
62
47
  const rowArray = convertToArrayRow(row, this._headers);
63
48
  this.addArrayRow(rowArray, cursor);
64
49
  break;
65
-
66
50
  case 'object-row-table':
67
51
  this.objectRows = this.objectRows || new Array(DEFAULT_ROW_COUNT);
68
52
  this.objectRows[this.length] = row;
@@ -70,14 +54,11 @@ export default class RowTableBatchAggregator {
70
54
  break;
71
55
  }
72
56
  }
73
-
74
57
  getBatch() {
75
58
  let rows = this.arrayRows || this.objectRows;
76
-
77
59
  if (!rows) {
78
60
  return null;
79
61
  }
80
-
81
62
  rows = rows.slice(0, this.length);
82
63
  this.arrayRows = null;
83
64
  this.objectRows = null;
@@ -90,6 +71,5 @@ export default class RowTableBatchAggregator {
90
71
  cursor: this.cursor
91
72
  };
92
73
  }
93
-
94
74
  }
95
75
  //# sourceMappingURL=row-table-batch-aggregator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-table-batch-aggregator.js","names":["convertToArrayRow","convertToObjectRow","DEFAULT_ROW_COUNT","RowTableBatchAggregator","constructor","schema","options","_defineProperty","Array","isArray","_headers","key","index","name","rowCount","length","addArrayRow","row","cursor","Number","isFinite","shape","rowObject","addObjectRow","arrayRows","rowArray","objectRows","getBatch","rows","slice","batchType","data"],"sources":["../../../../../src/lib/table/batches/row-table-batch-aggregator.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Schema} from '../../../types/schema';\nimport type {TableBatch} from '../../../types/category-table';\n// import type {ArrayRowTableBatch, ObjectRowTableBatch} from '../../category/table';\nimport {convertToArrayRow, convertToObjectRow} from '../simple-table/row-utils';\nimport {TableBatchAggregator, TableBatchOptions} from './table-batch-aggregator';\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport class RowTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n options: TableBatchOptions;\n\n length: number = 0;\n objectRows: {[columnName: string]: any} | null = null;\n arrayRows: any[] | null = null;\n cursor: number = 0;\n private _headers: string[] = [];\n\n constructor(schema: Schema, options: TableBatchOptions) {\n this.options = options;\n this.schema = schema;\n\n // schema is an array if there're no headers\n // object if there are headers\n if (!Array.isArray(schema)) {\n this._headers = [];\n for (const key in schema) {\n this._headers[schema[key].index] = schema[key].name;\n }\n }\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[], cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n // eslint-disable-next-line default-case\n switch (this.options.shape) {\n case 'object-row-table':\n const rowObject = convertToObjectRow(row, this._headers);\n this.addObjectRow(rowObject, cursor);\n break;\n case 'array-row-table':\n this.arrayRows = this.arrayRows || new Array(DEFAULT_ROW_COUNT);\n this.arrayRows[this.length] = row;\n this.length++;\n break;\n }\n }\n\n addObjectRow(row: {[columnName: string]: any}, cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n // eslint-disable-next-line default-case\n switch (this.options.shape) {\n case 'array-row-table':\n const rowArray = convertToArrayRow(row, this._headers);\n this.addArrayRow(rowArray, cursor);\n break;\n case 'object-row-table':\n this.objectRows = this.objectRows || new Array(DEFAULT_ROW_COUNT);\n this.objectRows[this.length] = row;\n this.length++;\n break;\n }\n }\n\n getBatch(): TableBatch | null {\n let rows = this.arrayRows || this.objectRows;\n if (!rows) {\n return null;\n }\n\n rows = rows.slice(0, this.length);\n this.arrayRows = null;\n this.objectRows = null;\n\n return {\n shape: this.options.shape,\n batchType: 'data',\n data: rows,\n length: this.length,\n schema: this.schema,\n cursor: this.cursor\n };\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-batch-aggregator.js","names":[],"sources":["../../../../../src/lib/table/batches/table-batch-aggregator.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Schema} from '../../../types/schema';\nimport type {TableBatch} from '../../../types/category-table';\n\nexport interface TableBatchOptions {\n batchSize: number | string;\n [key: string]: any;\n}\n\nexport interface TableBatchConstructor {\n new (schema: Schema, options: TableBatchOptions): TableBatchAggregator;\n}\n\n/**\n * TableBatchBuilder delegates batch building to this interface\n */\nexport interface TableBatchAggregator {\n /** Number of rows */\n rowCount(): number;\n /** Add one row */\n addArrayRow(row: any[]): void;\n /** Add one row */\n addObjectRow(row: {[columnName: string]: any}): void;\n /** return a batch object */\n getBatch(): TableBatch | null;\n}\n"],"mappings":""}
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import BaseTableBatchAggregator from './base-table-batch-aggregator';
3
- import RowTableBatchAggregator from './row-table-batch-aggregator';
4
- import ColumnarTableBatchAggregator from './columnar-table-batch-aggregator';
2
+ import { BaseTableBatchAggregator } from './base-table-batch-aggregator';
3
+ import { RowTableBatchAggregator } from './row-table-batch-aggregator';
4
+ import { ColumnarTableBatchAggregator } from './columnar-table-batch-aggregator';
5
5
  const DEFAULT_OPTIONS = {
6
6
  shape: 'array-row-table',
7
7
  batchSize: 'auto',
@@ -10,113 +10,83 @@ const DEFAULT_OPTIONS = {
10
10
  _limitMB: 0
11
11
  };
12
12
  const ERR_MESSAGE = 'TableBatchBuilder';
13
- export default class TableBatchBuilder {
13
+ export class TableBatchBuilder {
14
14
  constructor(schema, options) {
15
15
  _defineProperty(this, "schema", void 0);
16
-
17
16
  _defineProperty(this, "options", void 0);
18
-
19
17
  _defineProperty(this, "aggregator", null);
20
-
21
18
  _defineProperty(this, "batchCount", 0);
22
-
23
19
  _defineProperty(this, "bytesUsed", 0);
24
-
25
20
  _defineProperty(this, "isChunkComplete", false);
26
-
27
21
  _defineProperty(this, "lastBatchEmittedMs", Date.now());
28
-
29
22
  _defineProperty(this, "totalLength", 0);
30
-
31
23
  _defineProperty(this, "totalBytes", 0);
32
-
33
24
  _defineProperty(this, "rowBytes", 0);
34
-
35
25
  this.schema = schema;
36
- this.options = { ...DEFAULT_OPTIONS,
26
+ this.options = {
27
+ ...DEFAULT_OPTIONS,
37
28
  ...options
38
29
  };
39
30
  }
40
-
41
31
  limitReached() {
42
32
  var _this$options, _this$options2;
43
-
44
33
  if (Boolean((_this$options = this.options) === null || _this$options === void 0 ? void 0 : _this$options.limit) && this.totalLength >= this.options.limit) {
45
34
  return true;
46
35
  }
47
-
48
36
  if (Boolean((_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2._limitMB) && this.totalBytes / 1e6 >= this.options._limitMB) {
49
37
  return true;
50
38
  }
51
-
52
39
  return false;
53
40
  }
54
-
55
41
  addRow(row) {
56
42
  if (this.limitReached()) {
57
43
  return;
58
44
  }
59
-
60
45
  this.totalLength++;
61
46
  this.rowBytes = this.rowBytes || this._estimateRowMB(row);
62
47
  this.totalBytes += this.rowBytes;
63
-
64
48
  if (Array.isArray(row)) {
65
49
  this.addArrayRow(row);
66
50
  } else {
67
51
  this.addObjectRow(row);
68
52
  }
69
53
  }
70
-
71
54
  addArrayRow(row) {
72
55
  if (!this.aggregator) {
73
56
  const TableBatchType = this._getTableBatchType();
74
-
75
57
  this.aggregator = new TableBatchType(this.schema, this.options);
76
58
  }
77
-
78
59
  this.aggregator.addArrayRow(row);
79
60
  }
80
-
81
61
  addObjectRow(row) {
82
62
  if (!this.aggregator) {
83
63
  const TableBatchType = this._getTableBatchType();
84
-
85
64
  this.aggregator = new TableBatchType(this.schema, this.options);
86
65
  }
87
-
88
66
  this.aggregator.addObjectRow(row);
89
67
  }
90
-
91
68
  chunkComplete(chunk) {
92
69
  if (chunk instanceof ArrayBuffer) {
93
70
  this.bytesUsed += chunk.byteLength;
94
71
  }
95
-
96
72
  if (typeof chunk === 'string') {
97
73
  this.bytesUsed += chunk.length;
98
74
  }
99
-
100
75
  this.isChunkComplete = true;
101
76
  }
102
-
103
77
  getFullBatch(options) {
104
78
  return this._isFull() ? this._getBatch(options) : null;
105
79
  }
106
-
107
80
  getFinalBatch(options) {
108
81
  return this._getBatch(options);
109
82
  }
110
-
111
83
  _estimateRowMB(row) {
112
84
  return Array.isArray(row) ? row.length * 8 : Object.keys(row).length * 8;
113
85
  }
114
-
115
86
  _isFull() {
116
87
  if (!this.aggregator || this.aggregator.rowCount() === 0) {
117
88
  return false;
118
89
  }
119
-
120
90
  if (this.options.batchSize === 'auto') {
121
91
  if (!this.isChunkComplete) {
122
92
  return false;
@@ -124,25 +94,20 @@ export default class TableBatchBuilder {
124
94
  } else if (this.options.batchSize > this.aggregator.rowCount()) {
125
95
  return false;
126
96
  }
127
-
128
97
  if (this.options.batchDebounceMs > Date.now() - this.lastBatchEmittedMs) {
129
98
  return false;
130
99
  }
131
-
132
100
  this.isChunkComplete = false;
133
101
  this.lastBatchEmittedMs = Date.now();
134
102
  return true;
135
103
  }
136
-
137
104
  _getBatch(options) {
138
105
  if (!this.aggregator) {
139
106
  return null;
140
107
  }
141
-
142
108
  if (options !== null && options !== void 0 && options.bytesUsed) {
143
109
  this.bytesUsed = options.bytesUsed;
144
110
  }
145
-
146
111
  const normalizedBatch = this.aggregator.getBatch();
147
112
  normalizedBatch.count = this.batchCount;
148
113
  normalizedBatch.bytesUsed = this.bytesUsed;
@@ -151,32 +116,24 @@ export default class TableBatchBuilder {
151
116
  this.aggregator = null;
152
117
  return normalizedBatch;
153
118
  }
154
-
155
119
  _getTableBatchType() {
156
120
  switch (this.options.shape) {
157
121
  case 'row-table':
158
122
  return BaseTableBatchAggregator;
159
-
160
123
  case 'array-row-table':
161
124
  case 'object-row-table':
162
125
  return RowTableBatchAggregator;
163
-
164
126
  case 'columnar-table':
165
127
  return ColumnarTableBatchAggregator;
166
-
167
128
  case 'arrow-table':
168
129
  if (!TableBatchBuilder.ArrowBatch) {
169
130
  throw new Error(ERR_MESSAGE);
170
131
  }
171
-
172
132
  return TableBatchBuilder.ArrowBatch;
173
-
174
133
  default:
175
134
  throw new Error(ERR_MESSAGE);
176
135
  }
177
136
  }
178
-
179
137
  }
180
-
181
138
  _defineProperty(TableBatchBuilder, "ArrowBatch", void 0);
182
139
  //# sourceMappingURL=table-batch-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-batch-builder.js","names":["BaseTableBatchAggregator","RowTableBatchAggregator","ColumnarTableBatchAggregator","DEFAULT_OPTIONS","shape","batchSize","batchDebounceMs","limit","_limitMB","ERR_MESSAGE","TableBatchBuilder","constructor","schema","options","_defineProperty","Date","now","limitReached","_this$options","_this$options2","Boolean","totalLength","totalBytes","addRow","row","rowBytes","_estimateRowMB","Array","isArray","addArrayRow","addObjectRow","aggregator","TableBatchType","_getTableBatchType","chunkComplete","chunk","ArrayBuffer","bytesUsed","byteLength","length","isChunkComplete","getFullBatch","_isFull","_getBatch","getFinalBatch","Object","keys","rowCount","lastBatchEmittedMs","normalizedBatch","getBatch","count","batchCount","assign","ArrowBatch","Error"],"sources":["../../../../../src/lib/table/batches/table-batch-builder.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Schema} from '../../../types/schema';\nimport type {TableBatch} from '../../../types/category-table';\nimport type {TableBatchAggregator, TableBatchConstructor} from './table-batch-aggregator';\nimport {BaseTableBatchAggregator} from './base-table-batch-aggregator';\nimport {RowTableBatchAggregator} from './row-table-batch-aggregator';\nimport {ColumnarTableBatchAggregator} from './columnar-table-batch-aggregator';\n\n// TODO define interface instead\ntype TableBatchBuilderOptions = {\n shape: 'row-table' | 'array-row-table' | 'object-row-table' | 'columnar-table' | 'arrow-table';\n batchSize?: number | 'auto';\n batchDebounceMs?: number;\n limit: number;\n _limitMB: number;\n};\n\ntype GetBatchOptions = {\n bytesUsed?: number;\n [key: string]: any;\n};\n\nconst DEFAULT_OPTIONS: Required<TableBatchBuilderOptions> = {\n shape: 'array-row-table',\n batchSize: 'auto',\n batchDebounceMs: 0,\n limit: 0,\n _limitMB: 0\n};\n\nconst ERR_MESSAGE = 'TableBatchBuilder';\n\n/** Incrementally builds batches from a stream of rows */\nexport class TableBatchBuilder {\n schema: Schema;\n options: Required<TableBatchBuilderOptions>;\n\n private aggregator: TableBatchAggregator | null = null;\n private batchCount: number = 0;\n private bytesUsed: number = 0;\n private isChunkComplete: boolean = false;\n private lastBatchEmittedMs: number = Date.now();\n private totalLength: number = 0;\n private totalBytes: number = 0;\n private rowBytes: number = 0;\n\n static ArrowBatch?: TableBatchConstructor;\n\n constructor(schema: Schema, options?: TableBatchBuilderOptions) {\n this.schema = schema;\n this.options = {...DEFAULT_OPTIONS, ...options};\n }\n\n limitReached(): boolean {\n if (Boolean(this.options?.limit) && this.totalLength >= this.options.limit) {\n return true;\n }\n if (Boolean(this.options?._limitMB) && this.totalBytes / 1e6 >= this.options._limitMB) {\n return true;\n }\n return false;\n }\n\n /** @deprecated Use addArrayRow or addObjectRow */\n addRow(row: any[] | {[columnName: string]: any}): void {\n if (this.limitReached()) {\n return;\n }\n this.totalLength++;\n this.rowBytes = this.rowBytes || this._estimateRowMB(row);\n this.totalBytes += this.rowBytes;\n if (Array.isArray(row)) {\n this.addArrayRow(row);\n } else {\n this.addObjectRow(row);\n }\n }\n\n /** Add one row to the batch */\n protected addArrayRow(row: any[]) {\n if (!this.aggregator) {\n const TableBatchType = this._getTableBatchType();\n this.aggregator = new TableBatchType(this.schema, this.options);\n }\n this.aggregator.addArrayRow(row);\n }\n\n /** Add one row to the batch */\n protected addObjectRow(row: {[columnName: string]: any}): void {\n if (!this.aggregator) {\n const TableBatchType = this._getTableBatchType();\n this.aggregator = new TableBatchType(this.schema, this.options);\n }\n this.aggregator.addObjectRow(row);\n }\n\n /** Mark an incoming raw memory chunk has completed */\n chunkComplete(chunk: ArrayBuffer | string): void {\n if (chunk instanceof ArrayBuffer) {\n this.bytesUsed += chunk.byteLength;\n }\n if (typeof chunk === 'string') {\n this.bytesUsed += chunk.length;\n }\n this.isChunkComplete = true;\n }\n\n getFullBatch(options?: GetBatchOptions): TableBatch | null {\n return this._isFull() ? this._getBatch(options) : null;\n }\n\n getFinalBatch(options?: GetBatchOptions): TableBatch | null {\n return this._getBatch(options);\n }\n\n // INTERNAL\n\n _estimateRowMB(row: any[] | object): number {\n return Array.isArray(row) ? row.length * 8 : Object.keys(row).length * 8;\n }\n\n private _isFull(): boolean {\n // No batch, not ready\n if (!this.aggregator || this.aggregator.rowCount() === 0) {\n return false;\n }\n\n // if batchSize === 'auto' we wait for chunk to complete\n // if batchSize === number, ensure we have enough rows\n if (this.options.batchSize === 'auto') {\n if (!this.isChunkComplete) {\n return false;\n }\n } else if (this.options.batchSize > this.aggregator.rowCount()) {\n return false;\n }\n\n // Debounce batches\n if (this.options.batchDebounceMs > Date.now() - this.lastBatchEmittedMs) {\n return false;\n }\n\n // Emit batch\n this.isChunkComplete = false;\n this.lastBatchEmittedMs = Date.now();\n return true;\n }\n\n /**\n * bytesUsed can be set via chunkComplete or via getBatch*\n */\n private _getBatch(options?: GetBatchOptions): TableBatch | null {\n if (!this.aggregator) {\n return null;\n }\n\n // TODO - this can overly increment bytes used?\n if (options?.bytesUsed) {\n this.bytesUsed = options.bytesUsed;\n }\n const normalizedBatch = this.aggregator.getBatch() as TableBatch;\n normalizedBatch.count = this.batchCount;\n normalizedBatch.bytesUsed = this.bytesUsed;\n Object.assign(normalizedBatch, options);\n\n this.batchCount++;\n this.aggregator = null;\n return normalizedBatch;\n }\n\n private _getTableBatchType(): TableBatchConstructor {\n switch (this.options.shape) {\n case 'row-table':\n return BaseTableBatchAggregator;\n case 'array-row-table':\n case 'object-row-table':\n return RowTableBatchAggregator;\n case 'columnar-table':\n return ColumnarTableBatchAggregator;\n case 'arrow-table':\n if (!TableBatchBuilder.ArrowBatch) {\n throw new Error(ERR_MESSAGE);\n }\n return TableBatchBuilder.ArrowBatch;\n default:\n throw new Error(ERR_MESSAGE);\n }\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { getTableCell, getTableLength, getTableRowAsArray, getTableRowAsObject } from './table-accessors';
2
+ import { deduceTableSchema } from './table-schema';
3
+ import { makeColumnFromField } from './table-column';
4
+ export function makeColumnarTable(table) {
5
+ var _table$schema;
6
+ const schema = table.schema || deduceTableSchema(table);
7
+ const fields = ((_table$schema = table.schema) === null || _table$schema === void 0 ? void 0 : _table$schema.fields) || [];
8
+ if (table.shape === 'columnar-table') {
9
+ return {
10
+ ...table,
11
+ schema
12
+ };
13
+ }
14
+ const length = getTableLength(table);
15
+ const columns = {};
16
+ for (const field of fields) {
17
+ const column = makeColumnFromField(field, length);
18
+ columns[field.name] = column;
19
+ for (let rowIndex = 0; rowIndex < length; rowIndex++) {
20
+ column[rowIndex] = getTableCell(table, rowIndex, field.name);
21
+ }
22
+ }
23
+ return {
24
+ shape: 'columnar-table',
25
+ schema,
26
+ data: columns
27
+ };
28
+ }
29
+ export function makeArrayRowTable(table) {
30
+ if (table.shape === 'array-row-table') {
31
+ return table;
32
+ }
33
+ const length = getTableLength(table);
34
+ const data = new Array(length);
35
+ for (let rowIndex = 0; rowIndex < length; rowIndex++) {
36
+ data[rowIndex] = getTableRowAsArray(table, rowIndex);
37
+ }
38
+ return {
39
+ shape: 'array-row-table',
40
+ schema: table.schema,
41
+ data
42
+ };
43
+ }
44
+ export function makeObjectRowTable(table) {
45
+ if (table.shape === 'object-row-table') {
46
+ return table;
47
+ }
48
+ const length = getTableLength(table);
49
+ const data = new Array(length);
50
+ for (let rowIndex = 0; rowIndex < length; rowIndex++) {
51
+ data[rowIndex] = getTableRowAsObject(table, rowIndex);
52
+ }
53
+ return {
54
+ shape: 'object-row-table',
55
+ schema: table.schema,
56
+ data
57
+ };
58
+ }
59
+ //# sourceMappingURL=convert-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-table.js","names":["getTableCell","getTableLength","getTableRowAsArray","getTableRowAsObject","deduceTableSchema","makeColumnFromField","makeColumnarTable","table","_table$schema","schema","fields","shape","length","columns","field","column","name","rowIndex","data","makeArrayRowTable","Array","makeObjectRowTable"],"sources":["../../../../../src/lib/table/simple-table/convert-table.ts"],"sourcesContent":["// loaders.gl, MIT license\nimport {\n getTableCell,\n getTableLength,\n getTableRowAsArray,\n getTableRowAsObject\n} from './table-accessors';\nimport {Table, ArrayRowTable, ObjectRowTable, ColumnarTable} from '../../../types/category-table';\nimport {deduceTableSchema} from './table-schema';\nimport {makeColumnFromField} from './table-column';\n\n/** Convert any simple table into columnar format */\nexport function makeColumnarTable(table: Table): ColumnarTable {\n // TODO - should schema really be optional?\n const schema = table.schema || deduceTableSchema(table);\n const fields = table.schema?.fields || [];\n\n if (table.shape === 'columnar-table') {\n return {...table, schema};\n }\n\n const length = getTableLength(table);\n\n const columns: {[column: string]: ArrayLike<unknown>} = {};\n for (const field of fields) {\n const column = makeColumnFromField(field, length);\n columns[field.name] = column;\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n column[rowIndex] = getTableCell(table, rowIndex, field.name);\n }\n }\n\n return {\n shape: 'columnar-table',\n schema,\n data: columns\n };\n}\n\n/** Convert any table into array row format */\nexport function makeArrayRowTable(table: Table): ArrayRowTable {\n if (table.shape === 'array-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<unknown[]>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsArray(table, rowIndex);\n }\n return {\n shape: 'array-row-table',\n schema: table.schema,\n data\n };\n}\n\n/** Convert any table into object row format */\nexport function makeObjectRowTable(table: Table): ObjectRowTable {\n if (table.shape === 'object-row-table') {\n return table;\n }\n const length = getTableLength(table);\n const data = new Array<{[key: string]: unknown}>(length);\n for (let rowIndex = 0; rowIndex < length; rowIndex++) {\n data[rowIndex] = getTableRowAsObject(table, rowIndex);\n }\n return {\n shape: 'object-row-table',\n schema: table.schema,\n data\n };\n}\n"],"mappings":"AACA,SACEA,YAAY,EACZC,cAAc,EACdC,kBAAkB,EAClBC,mBAAmB,QACd,mBAAmB;AAE1B,SAAQC,iBAAiB,QAAO,gBAAgB;AAChD,SAAQC,mBAAmB,QAAO,gBAAgB;AAGlD,OAAO,SAASC,iBAAiBA,CAACC,KAAY,EAAiB;EAAA,IAAAC,aAAA;EAE7D,MAAMC,MAAM,GAAGF,KAAK,CAACE,MAAM,IAAIL,iBAAiB,CAACG,KAAK,CAAC;EACvD,MAAMG,MAAM,GAAG,EAAAF,aAAA,GAAAD,KAAK,CAACE,MAAM,cAAAD,aAAA,uBAAZA,aAAA,CAAcE,MAAM,KAAI,EAAE;EAEzC,IAAIH,KAAK,CAACI,KAAK,KAAK,gBAAgB,EAAE;IACpC,OAAO;MAAC,GAAGJ,KAAK;MAAEE;IAAM,CAAC;EAC3B;EAEA,MAAMG,MAAM,GAAGX,cAAc,CAACM,KAAK,CAAC;EAEpC,MAAMM,OAA+C,GAAG,CAAC,CAAC;EAC1D,KAAK,MAAMC,KAAK,IAAIJ,MAAM,EAAE;IAC1B,MAAMK,MAAM,GAAGV,mBAAmB,CAACS,KAAK,EAAEF,MAAM,CAAC;IACjDC,OAAO,CAACC,KAAK,CAACE,IAAI,CAAC,GAAGD,MAAM;IAC5B,KAAK,IAAIE,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGL,MAAM,EAAEK,QAAQ,EAAE,EAAE;MACpDF,MAAM,CAACE,QAAQ,CAAC,GAAGjB,YAAY,CAACO,KAAK,EAAEU,QAAQ,EAAEH,KAAK,CAACE,IAAI,CAAC;IAC9D;EACF;EAEA,OAAO;IACLL,KAAK,EAAE,gBAAgB;IACvBF,MAAM;IACNS,IAAI,EAAEL;EACR,CAAC;AACH;AAGA,OAAO,SAASM,iBAAiBA,CAACZ,KAAY,EAAiB;EAC7D,IAAIA,KAAK,CAACI,KAAK,KAAK,iBAAiB,EAAE;IACrC,OAAOJ,KAAK;EACd;EACA,MAAMK,MAAM,GAAGX,cAAc,CAACM,KAAK,CAAC;EACpC,MAAMW,IAAI,GAAG,IAAIE,KAAK,CAAYR,MAAM,CAAC;EACzC,KAAK,IAAIK,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGL,MAAM,EAAEK,QAAQ,EAAE,EAAE;IACpDC,IAAI,CAACD,QAAQ,CAAC,GAAGf,kBAAkB,CAACK,KAAK,EAAEU,QAAQ,CAAC;EACtD;EACA,OAAO;IACLN,KAAK,EAAE,iBAAiB;IACxBF,MAAM,EAAEF,KAAK,CAACE,MAAM;IACpBS;EACF,CAAC;AACH;AAGA,OAAO,SAASG,kBAAkBA,CAACd,KAAY,EAAkB;EAC/D,IAAIA,KAAK,CAACI,KAAK,KAAK,kBAAkB,EAAE;IACtC,OAAOJ,KAAK;EACd;EACA,MAAMK,MAAM,GAAGX,cAAc,CAACM,KAAK,CAAC;EACpC,MAAMW,IAAI,GAAG,IAAIE,KAAK,CAA2BR,MAAM,CAAC;EACxD,KAAK,IAAIK,QAAQ,GAAG,CAAC,EAAEA,QAAQ,GAAGL,MAAM,EAAEK,QAAQ,EAAE,EAAE;IACpDC,IAAI,CAACD,QAAQ,CAAC,GAAGd,mBAAmB,CAACI,KAAK,EAAEU,QAAQ,CAAC;EACvD;EACA,OAAO;IACLN,KAAK,EAAE,kBAAkB;IACzBF,MAAM,EAAEF,KAAK,CAACE,MAAM;IACpBS;EACF,CAAC;AACH"}
@@ -0,0 +1,85 @@
1
+ export function getDataTypeFromValue(value) {
2
+ let defaultNumberType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'float32';
3
+ if (value instanceof Date) {
4
+ return 'date-millisecond';
5
+ }
6
+ if (value instanceof Number) {
7
+ return defaultNumberType;
8
+ }
9
+ if (typeof value === 'string') {
10
+ return 'utf8';
11
+ }
12
+ if (value === null || value === 'undefined') {
13
+ return 'null';
14
+ }
15
+ return 'null';
16
+ }
17
+ export function getDataTypeFromArray(array) {
18
+ let type = getDataTypeFromTypedArray(array);
19
+ if (type !== 'null') {
20
+ return {
21
+ type,
22
+ nullable: false
23
+ };
24
+ }
25
+ if (array.length > 0) {
26
+ type = getDataTypeFromValue(array[0]);
27
+ return {
28
+ type,
29
+ nullable: true
30
+ };
31
+ }
32
+ return {
33
+ type: 'null',
34
+ nullable: true
35
+ };
36
+ }
37
+ export function getDataTypeFromTypedArray(array) {
38
+ switch (array.constructor) {
39
+ case Int8Array:
40
+ return 'int8';
41
+ case Uint8Array:
42
+ case Uint8ClampedArray:
43
+ return 'uint8';
44
+ case Int16Array:
45
+ return 'int16';
46
+ case Uint16Array:
47
+ return 'uint16';
48
+ case Int32Array:
49
+ return 'int32';
50
+ case Uint32Array:
51
+ return 'uint32';
52
+ case Float32Array:
53
+ return 'float32';
54
+ case Float64Array:
55
+ return 'float64';
56
+ default:
57
+ return 'null';
58
+ }
59
+ }
60
+ export function getArrayTypeFromDataType(type, nullable) {
61
+ if (!nullable) {
62
+ switch (type) {
63
+ case 'int8':
64
+ return Int8Array;
65
+ case 'uint8':
66
+ return Uint8Array;
67
+ case 'int16':
68
+ return Int16Array;
69
+ case 'uint16':
70
+ return Uint16Array;
71
+ case 'int32':
72
+ return Int32Array;
73
+ case 'uint32':
74
+ return Uint32Array;
75
+ case 'float32':
76
+ return Float32Array;
77
+ case 'float64':
78
+ return Float64Array;
79
+ default:
80
+ break;
81
+ }
82
+ }
83
+ return Array;
84
+ }
85
+ //# sourceMappingURL=data-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-type.js","names":["getDataTypeFromValue","value","defaultNumberType","arguments","length","undefined","Date","Number","getDataTypeFromArray","array","type","getDataTypeFromTypedArray","nullable","constructor","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","getArrayTypeFromDataType","Array"],"sources":["../../../../../src/lib/table/simple-table/data-type.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport {DataType} from '../../../types/schema';\nimport {TypedArray, TypedArrayConstructor, ArrayType} from '../../../types/types';\n\n/** Deduce column types from values */\nexport function getDataTypeFromValue(\n value: unknown,\n defaultNumberType: 'float32' = 'float32'\n): DataType {\n if (value instanceof Date) {\n return 'date-millisecond';\n }\n if (value instanceof Number) {\n return defaultNumberType;\n }\n if (typeof value === 'string') {\n return 'utf8';\n }\n if (value === null || value === 'undefined') {\n return 'null';\n }\n return 'null';\n}\n\n/**\n * Deduces a simple data type \"descriptor from a typed array instance\n */\nexport function getDataTypeFromArray(array: ArrayType): {type: DataType; nullable: boolean} {\n let type = getDataTypeFromTypedArray(array as TypedArray);\n if (type !== 'null') {\n return {type, nullable: false};\n }\n if (array.length > 0) {\n type = getDataTypeFromValue(array[0]);\n return {type, nullable: true};\n }\n\n return {type: 'null', nullable: true};\n}\n\n/**\n * Deduces a simple data type \"descriptor from a typed array instance\n */\nexport function getDataTypeFromTypedArray(array: TypedArray): DataType {\n switch (array.constructor) {\n case Int8Array:\n return 'int8';\n case Uint8Array:\n case Uint8ClampedArray:\n return 'uint8';\n case Int16Array:\n return 'int16';\n case Uint16Array:\n return 'uint16';\n case Int32Array:\n return 'int32';\n case Uint32Array:\n return 'uint32';\n case Float32Array:\n return 'float32';\n case Float64Array:\n return 'float64';\n default:\n return 'null';\n }\n}\n\nexport function getArrayTypeFromDataType(\n type: DataType,\n nullable: boolean | undefined\n): TypedArrayConstructor | ArrayConstructor {\n if (!nullable) {\n switch (type) {\n case 'int8':\n return Int8Array;\n case 'uint8':\n return Uint8Array;\n case 'int16':\n return Int16Array;\n case 'uint16':\n return Uint16Array;\n case 'int32':\n return Int32Array;\n case 'uint32':\n return Uint32Array;\n case 'float32':\n return Float32Array;\n case 'float64':\n return Float64Array;\n default:\n break;\n }\n }\n\n // if (typeof BigInt64Array !== 'undefined') {\n // TYPED_ARRAY_TO_TYPE.BigInt64Array = new Int64();\n // TYPED_ARRAY_TO_TYPE.BigUint64Array = new Uint64();\n // }\n\n return Array;\n}\n"],"mappings":"AAMA,OAAO,SAASA,oBAAoBA,CAClCC,KAAc,EAEJ;EAAA,IADVC,iBAA4B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,SAAS;EAExC,IAAIF,KAAK,YAAYK,IAAI,EAAE;IACzB,OAAO,kBAAkB;EAC3B;EACA,IAAIL,KAAK,YAAYM,MAAM,EAAE;IAC3B,OAAOL,iBAAiB;EAC1B;EACA,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAO,MAAM;EACf;EACA,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,WAAW,EAAE;IAC3C,OAAO,MAAM;EACf;EACA,OAAO,MAAM;AACf;AAKA,OAAO,SAASO,oBAAoBA,CAACC,KAAgB,EAAuC;EAC1F,IAAIC,IAAI,GAAGC,yBAAyB,CAACF,KAAmB,CAAC;EACzD,IAAIC,IAAI,KAAK,MAAM,EAAE;IACnB,OAAO;MAACA,IAAI;MAAEE,QAAQ,EAAE;IAAK,CAAC;EAChC;EACA,IAAIH,KAAK,CAACL,MAAM,GAAG,CAAC,EAAE;IACpBM,IAAI,GAAGV,oBAAoB,CAACS,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO;MAACC,IAAI;MAAEE,QAAQ,EAAE;IAAI,CAAC;EAC/B;EAEA,OAAO;IAACF,IAAI,EAAE,MAAM;IAAEE,QAAQ,EAAE;EAAI,CAAC;AACvC;AAKA,OAAO,SAASD,yBAAyBA,CAACF,KAAiB,EAAY;EACrE,QAAQA,KAAK,CAACI,WAAW;IACvB,KAAKC,SAAS;MACZ,OAAO,MAAM;IACf,KAAKC,UAAU;IACf,KAAKC,iBAAiB;MACpB,OAAO,OAAO;IAChB,KAAKC,UAAU;MACb,OAAO,OAAO;IAChB,KAAKC,WAAW;MACd,OAAO,QAAQ;IACjB,KAAKC,UAAU;MACb,OAAO,OAAO;IAChB,KAAKC,WAAW;MACd,OAAO,QAAQ;IACjB,KAAKC,YAAY;MACf,OAAO,SAAS;IAClB,KAAKC,YAAY;MACf,OAAO,SAAS;IAClB;MACE,OAAO,MAAM;EACjB;AACF;AAEA,OAAO,SAASC,wBAAwBA,CACtCb,IAAc,EACdE,QAA6B,EACa;EAC1C,IAAI,CAACA,QAAQ,EAAE;IACb,QAAQF,IAAI;MACV,KAAK,MAAM;QACT,OAAOI,SAAS;MAClB,KAAK,OAAO;QACV,OAAOC,UAAU;MACnB,KAAK,OAAO;QACV,OAAOE,UAAU;MACnB,KAAK,QAAQ;QACX,OAAOC,WAAW;MACpB,KAAK,OAAO;QACV,OAAOC,UAAU;MACnB,KAAK,QAAQ;QACX,OAAOC,WAAW;MACpB,KAAK,SAAS;QACZ,OAAOC,YAAY;MACrB,KAAK,SAAS;QACZ,OAAOC,YAAY;MACrB;QACE;IACJ;EACF;EAOA,OAAOE,KAAK;AACd"}
@@ -0,0 +1,50 @@
1
+ import { deduceTableSchema } from './table-schema';
2
+ export function makeTableFromData(data) {
3
+ let table;
4
+ switch (getTableShapeFromData(data)) {
5
+ case 'array-row-table':
6
+ table = {
7
+ shape: 'array-row-table',
8
+ data: data
9
+ };
10
+ break;
11
+ case 'object-row-table':
12
+ table = {
13
+ shape: 'object-row-table',
14
+ data: data
15
+ };
16
+ break;
17
+ case 'columnar-table':
18
+ table = {
19
+ shape: 'columnar-table',
20
+ data: data
21
+ };
22
+ break;
23
+ default:
24
+ throw new Error('table');
25
+ }
26
+ const schema = deduceTableSchema(table);
27
+ return {
28
+ ...table,
29
+ schema
30
+ };
31
+ }
32
+ function getTableShapeFromData(data) {
33
+ if (Array.isArray(data)) {
34
+ if (data.length === 0) {
35
+ throw new Error('cannot deduce type of empty table');
36
+ }
37
+ const firstRow = data[0];
38
+ if (Array.isArray(firstRow)) {
39
+ return 'array-row-table';
40
+ }
41
+ if (firstRow && typeof firstRow === 'object') {
42
+ return 'object-row-table';
43
+ }
44
+ }
45
+ if (data && typeof data === 'object') {
46
+ return 'columnar-table';
47
+ }
48
+ throw new Error('invalid table');
49
+ }
50
+ //# sourceMappingURL=make-table.js.map