@loaders.gl/scan 5.0.0-alpha.3 → 5.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dist.min.js CHANGED
@@ -15938,6 +15938,12 @@ return true;`);
15938
15938
  type: "list",
15939
15939
  children: [serializeArrowField(listField)]
15940
15940
  };
15941
+ case LargeList2:
15942
+ const largeListType = arrowType;
15943
+ return {
15944
+ type: "large-list",
15945
+ children: [serializeArrowField(largeListType.valueField)]
15946
+ };
15941
15947
  case FixedSizeList2:
15942
15948
  const fixedSizeList = arrowType;
15943
15949
  return {
@@ -15951,6 +15957,15 @@ return true;`);
15951
15957
  type: "struct",
15952
15958
  children: structType.children.map((arrowField) => serializeArrowField(arrowField))
15953
15959
  };
15960
+ case SparseUnion:
15961
+ case DenseUnion:
15962
+ const unionType = arrowType;
15963
+ return {
15964
+ type: unionType instanceof DenseUnion ? "dense-union" : "sparse-union",
15965
+ typeIds: unionType.typeIds,
15966
+ children: unionType.children.map((arrowField) => serializeArrowField(arrowField)),
15967
+ typeIdToChildIndex: { ...unionType.typeIdToChildIndex }
15968
+ };
15954
15969
  case Dictionary:
15955
15970
  const dictionaryType = arrowType;
15956
15971
  return {
@@ -15979,6 +15994,10 @@ return true;`);
15979
15994
  const field = deserializeArrowField(dataType.children[0], options);
15980
15995
  return new List2(field);
15981
15996
  }
15997
+ case "large-list": {
15998
+ const field = deserializeArrowField(dataType.children[0], options);
15999
+ return new LargeList2(field);
16000
+ }
15982
16001
  case "fixed-size-list": {
15983
16002
  const child = deserializeArrowField(dataType.children[0], options);
15984
16003
  return new FixedSizeList2(dataType.listSize, child);
@@ -15991,6 +16010,13 @@ return true;`);
15991
16010
  );
15992
16011
  return new Struct(children);
15993
16012
  }
16013
+ case "sparse-union":
16014
+ case "dense-union": {
16015
+ const children = dataType.children.map(
16016
+ (arrowField) => deserializeArrowField(arrowField, options)
16017
+ );
16018
+ return dataType.type === "dense-union" ? new DenseUnion(dataType.typeIds, children) : new SparseUnion(dataType.typeIds, children);
16019
+ }
15994
16020
  case "dictionary": {
15995
16021
  return new Dictionary(
15996
16022
  deserializeArrowType(dataType.dictionary, options),
@@ -17176,6 +17202,9 @@ return true;`);
17176
17202
  if (left instanceof Date && right instanceof Date) {
17177
17203
  return compareNumbers2(left.getTime(), right.getTime());
17178
17204
  }
17205
+ if (typeof left === "number" && right instanceof Date) {
17206
+ return compareNumbers2(left, right.getTime());
17207
+ }
17179
17208
  if (left instanceof Uint8Array && right instanceof Uint8Array) {
17180
17209
  return compareBinary(left, right);
17181
17210
  }
@@ -17574,29 +17603,29 @@ return true;`);
17574
17603
  }
17575
17604
 
17576
17605
  // src/scan-engine.ts
17577
- var scanBackendLoaders = /* @__PURE__ */ new Map();
17606
+ var scanBackends = /* @__PURE__ */ new Map();
17578
17607
  var arrowScanBackend = Object.freeze({
17579
17608
  name: "arrow",
17580
17609
  query: queryArrowTable,
17581
- queryAsync: async (sourceTable, options) => queryArrowTable(sourceTable, options),
17610
+ queryAsync: (sourceTable, options) => Promise.resolve().then(queryArrowTable.bind(null, sourceTable, options)),
17582
17611
  explain: explainArrowTableQuery
17583
17612
  });
17584
- scanBackendLoaders.set("arrow", () => arrowScanBackend);
17613
+ scanBackends.set("arrow", arrowScanBackend);
17585
17614
  function registerScanBackend(name, loader) {
17586
17615
  if (!name || !loader) {
17587
17616
  throw new Error("A scan backend name and loader are required");
17588
17617
  }
17589
- scanBackendLoaders.set(name, loader);
17618
+ scanBackends.set(name, loader);
17590
17619
  }
17591
17620
  async function createScanEngine(options = {}) {
17592
17621
  const backendName = options.backend || "arrow";
17593
- const loader = scanBackendLoaders.get(backendName);
17594
- if (!loader) {
17622
+ const registeredBackend = scanBackends.get(backendName);
17623
+ if (!registeredBackend) {
17595
17624
  throw new Error(
17596
17625
  `Scan backend "${backendName}" is not registered. The built-in backend is "arrow".`
17597
17626
  );
17598
17627
  }
17599
- const backend = await loader();
17628
+ const backend = typeof registeredBackend === "function" ? await registeredBackend() : registeredBackend;
17600
17629
  if (backend.name !== backendName) {
17601
17630
  throw new Error(
17602
17631
  `Scan backend loader returned "${backend.name}" while "${backendName}" was requested.`