@loaders.gl/json 4.0.0-alpha.8 → 4.0.0-beta.1

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 (113) hide show
  1. package/dist/dist.min.js +132 -82
  2. package/dist/es5/geojson-loader.js +30 -21
  3. package/dist/es5/geojson-loader.js.map +1 -1
  4. package/dist/es5/geojson-writer.js.map +1 -1
  5. package/dist/es5/json-loader.js +2 -2
  6. package/dist/es5/json-loader.js.map +1 -1
  7. package/dist/es5/json-writer.js +1 -1
  8. package/dist/es5/json-writer.js.map +1 -1
  9. package/dist/es5/lib/encoder-utils/encode-table-row.js +54 -0
  10. package/dist/es5/lib/encoder-utils/encode-table-row.js.map +1 -0
  11. package/dist/es5/lib/encoder-utils/encode-utils.js.map +1 -0
  12. package/dist/es5/lib/encoder-utils/utf8-encoder.js.map +1 -0
  13. package/dist/es5/lib/encoders/geojson-encoder.js +47 -84
  14. package/dist/es5/lib/encoders/geojson-encoder.js.map +1 -1
  15. package/dist/es5/lib/encoders/json-encoder.js +3 -3
  16. package/dist/es5/lib/encoders/json-encoder.js.map +1 -1
  17. package/dist/es5/lib/parsers/parse-json-in-batches.js +1 -1
  18. package/dist/es5/lib/parsers/parse-json-in-batches.js.map +1 -1
  19. package/dist/es5/lib/parsers/parse-ndjson-in-batches.js.map +1 -1
  20. package/dist/es5/ndgeoson-loader.js +10 -13
  21. package/dist/es5/ndgeoson-loader.js.map +1 -1
  22. package/dist/es5/ndjson-loader.js +1 -1
  23. package/dist/es5/ndjson-loader.js.map +1 -1
  24. package/dist/esm/geojson-loader.js +31 -22
  25. package/dist/esm/geojson-loader.js.map +1 -1
  26. package/dist/esm/geojson-writer.js.map +1 -1
  27. package/dist/esm/json-loader.js +2 -2
  28. package/dist/esm/json-loader.js.map +1 -1
  29. package/dist/esm/json-writer.js +1 -1
  30. package/dist/esm/json-writer.js.map +1 -1
  31. package/dist/esm/lib/encoder-utils/encode-table-row.js +44 -0
  32. package/dist/esm/lib/encoder-utils/encode-table-row.js.map +1 -0
  33. package/dist/esm/lib/encoder-utils/encode-utils.js.map +1 -0
  34. package/dist/esm/lib/encoder-utils/utf8-encoder.js.map +1 -0
  35. package/dist/esm/lib/encoders/geojson-encoder.js +9 -52
  36. package/dist/esm/lib/encoders/geojson-encoder.js.map +1 -1
  37. package/dist/esm/lib/encoders/json-encoder.js +3 -3
  38. package/dist/esm/lib/encoders/json-encoder.js.map +1 -1
  39. package/dist/esm/lib/parsers/parse-json-in-batches.js +1 -1
  40. package/dist/esm/lib/parsers/parse-json-in-batches.js.map +1 -1
  41. package/dist/esm/lib/parsers/parse-ndjson-in-batches.js.map +1 -1
  42. package/dist/esm/ndgeoson-loader.js +9 -11
  43. package/dist/esm/ndgeoson-loader.js.map +1 -1
  44. package/dist/esm/ndjson-loader.js +1 -1
  45. package/dist/esm/ndjson-loader.js.map +1 -1
  46. package/dist/geojson-loader.d.ts +3 -2
  47. package/dist/geojson-loader.d.ts.map +1 -1
  48. package/dist/geojson-worker.js +55 -209
  49. package/dist/geojson-writer.d.ts +8 -3
  50. package/dist/geojson-writer.d.ts.map +1 -1
  51. package/dist/json-loader.d.ts +1 -1
  52. package/dist/json-loader.d.ts.map +1 -1
  53. package/dist/json-writer.d.ts +13 -3
  54. package/dist/json-writer.d.ts.map +1 -1
  55. package/dist/lib/encoder-utils/encode-table-row.d.ts +7 -0
  56. package/dist/lib/encoder-utils/encode-table-row.d.ts.map +1 -0
  57. package/dist/lib/encoder-utils/encode-utils.d.ts.map +1 -0
  58. package/dist/lib/encoder-utils/utf8-encoder.d.ts.map +1 -0
  59. package/dist/lib/encoders/geojson-encoder.d.ts +2 -8
  60. package/dist/lib/encoders/geojson-encoder.d.ts.map +1 -1
  61. package/dist/lib/encoders/json-encoder.d.ts +1 -10
  62. package/dist/lib/encoders/json-encoder.d.ts.map +1 -1
  63. package/dist/lib/parsers/parse-json-in-batches.d.ts.map +1 -1
  64. package/dist/lib/parsers/parse-ndjson-in-batches.d.ts +2 -2
  65. package/dist/lib/parsers/parse-ndjson-in-batches.d.ts.map +1 -1
  66. package/dist/ndgeoson-loader.d.ts +4 -24
  67. package/dist/ndgeoson-loader.d.ts.map +1 -1
  68. package/package.json +5 -5
  69. package/src/geojson-loader.ts +42 -27
  70. package/src/geojson-writer.ts +8 -3
  71. package/src/json-loader.ts +2 -2
  72. package/src/json-writer.ts +12 -4
  73. package/src/lib/encoder-utils/encode-table-row.ts +69 -0
  74. package/src/lib/encoders/geojson-encoder.ts +15 -78
  75. package/src/lib/encoders/json-encoder.ts +3 -11
  76. package/src/lib/parsers/parse-json-in-batches.ts +2 -1
  77. package/src/lib/parsers/parse-ndjson-in-batches.ts +2 -2
  78. package/src/ndgeoson-loader.ts +16 -13
  79. package/dist/bundle.js +0 -5
  80. package/dist/es5/lib/encoders/encode-utils.js.map +0 -1
  81. package/dist/es5/lib/encoders/utf8-encoder.js.map +0 -1
  82. package/dist/esm/lib/encoders/encode-utils.js.map +0 -1
  83. package/dist/esm/lib/encoders/utf8-encoder.js.map +0 -1
  84. package/dist/geojson-loader.js +0 -77
  85. package/dist/geojson-writer.js +0 -22
  86. package/dist/index.js +0 -24
  87. package/dist/json-loader.js +0 -42
  88. package/dist/json-writer.js +0 -18
  89. package/dist/lib/clarinet/clarinet.js +0 -535
  90. package/dist/lib/encoders/encode-utils.d.ts.map +0 -1
  91. package/dist/lib/encoders/encode-utils.js +0 -47
  92. package/dist/lib/encoders/geojson-encoder.js +0 -104
  93. package/dist/lib/encoders/json-encoder.js +0 -22
  94. package/dist/lib/encoders/utf8-encoder.d.ts.map +0 -1
  95. package/dist/lib/encoders/utf8-encoder.js +0 -32
  96. package/dist/lib/json-parser/json-parser.js +0 -98
  97. package/dist/lib/json-parser/streaming-json-parser.js +0 -100
  98. package/dist/lib/jsonpath/jsonpath.js +0 -89
  99. package/dist/lib/parsers/parse-json-in-batches.js +0 -100
  100. package/dist/lib/parsers/parse-json.js +0 -32
  101. package/dist/lib/parsers/parse-ndjson-in-batches.js +0 -36
  102. package/dist/lib/parsers/parse-ndjson.js +0 -17
  103. package/dist/ndgeoson-loader.js +0 -37
  104. package/dist/ndjson-loader.js +0 -27
  105. package/dist/workers/geojson-worker.js +0 -5
  106. /package/dist/es5/lib/{encoders → encoder-utils}/encode-utils.js +0 -0
  107. /package/dist/es5/lib/{encoders → encoder-utils}/utf8-encoder.js +0 -0
  108. /package/dist/esm/lib/{encoders → encoder-utils}/encode-utils.js +0 -0
  109. /package/dist/esm/lib/{encoders → encoder-utils}/utf8-encoder.js +0 -0
  110. /package/dist/lib/{encoders → encoder-utils}/encode-utils.d.ts +0 -0
  111. /package/dist/lib/{encoders → encoder-utils}/utf8-encoder.d.ts +0 -0
  112. /package/src/lib/{encoders → encoder-utils}/encode-utils.ts +0 -0
  113. /package/src/lib/{encoders → encoder-utils}/utf8-encoder.ts +0 -0
package/dist/dist.min.js CHANGED
@@ -406,10 +406,12 @@
406
406
  switch (table.shape) {
407
407
  case "array-row-table":
408
408
  case "object-row-table":
409
- case "geojson-row-table":
410
409
  return table.data.length;
410
+ case "geojson-table":
411
+ return table.features.length;
411
412
  case "arrow-table":
412
- return table.data.numRows;
413
+ const arrowTable = table.data;
414
+ return arrowTable.numRows;
413
415
  case "columnar-table":
414
416
  for (const column of Object.values(table.data)) {
415
417
  return column.length || 0;
@@ -430,12 +432,14 @@
430
432
  case "array-row-table":
431
433
  return table.data[0].length;
432
434
  case "object-row-table":
433
- case "geojson-row-table":
434
435
  return Object.keys(table.data[0]).length;
436
+ case "geojson-table":
437
+ return Object.keys(table.features[0]).length;
435
438
  case "columnar-table":
436
439
  return Object.keys(table.data).length;
437
440
  case "arrow-table":
438
- return table.data.numCols;
441
+ const arrowTable = table.data;
442
+ return arrowTable.numCols;
439
443
  default:
440
444
  throw new Error("table");
441
445
  }
@@ -445,7 +449,6 @@
445
449
  case "object-row-table":
446
450
  return copy2 ? Object.fromEntries(Object.entries(table.data[rowIndex])) : table.data[rowIndex];
447
451
  case "array-row-table":
448
- case "geojson-row-table":
449
452
  if (table.schema) {
450
453
  const objectRow2 = target || {};
451
454
  for (let i = 0; i < table.schema.fields.length; i++) {
@@ -454,6 +457,15 @@
454
457
  return objectRow2;
455
458
  }
456
459
  throw new Error("no schema");
460
+ case "geojson-table":
461
+ if (table.schema) {
462
+ const objectRow2 = target || {};
463
+ for (let i = 0; i < table.schema.fields.length; i++) {
464
+ objectRow2[table.schema.fields[i].name] = table.features[rowIndex][i];
465
+ }
466
+ return objectRow2;
467
+ }
468
+ throw new Error("no schema");
457
469
  case "columnar-table":
458
470
  if (table.schema) {
459
471
  const objectRow2 = target || {};
@@ -469,9 +481,10 @@
469
481
  return objectRow2;
470
482
  }
471
483
  case "arrow-table":
484
+ const arrowTable = table.data;
472
485
  const objectRow = target || {};
473
- const row = table.data.get(rowIndex);
474
- const schema = table.data.schema;
486
+ const row = arrowTable.get(rowIndex);
487
+ const schema = arrowTable.schema;
475
488
  for (let i = 0; i < schema.fields.length; i++) {
476
489
  objectRow[schema.fields[i].name] = row?.[schema.fields[i].name];
477
490
  }
@@ -485,7 +498,6 @@
485
498
  case "array-row-table":
486
499
  return copy2 ? Array.from(table.data[rowIndex]) : table.data[rowIndex];
487
500
  case "object-row-table":
488
- case "geojson-row-table":
489
501
  if (table.schema) {
490
502
  const arrayRow2 = target || [];
491
503
  for (let i = 0; i < table.schema.fields.length; i++) {
@@ -494,6 +506,15 @@
494
506
  return arrayRow2;
495
507
  }
496
508
  return Object.values(table.data[rowIndex]);
509
+ case "geojson-table":
510
+ if (table.schema) {
511
+ const arrayRow2 = target || [];
512
+ for (let i = 0; i < table.schema.fields.length; i++) {
513
+ arrayRow2[i] = table.features[rowIndex][table.schema.fields[i].name];
514
+ }
515
+ return arrayRow2;
516
+ }
517
+ return Object.values(table.features[rowIndex]);
497
518
  case "columnar-table":
498
519
  if (table.schema) {
499
520
  const arrayRow2 = target || [];
@@ -511,9 +532,10 @@
511
532
  return arrayRow2;
512
533
  }
513
534
  case "arrow-table":
535
+ const arrowTable = table.data;
514
536
  const arrayRow = target || [];
515
- const row = table.data.get(rowIndex);
516
- const schema = table.data.schema;
537
+ const row = arrowTable.get(rowIndex);
538
+ const schema = arrowTable.schema;
517
539
  for (let i = 0; i < schema.fields.length; i++) {
518
540
  arrayRow[i] = row?.[schema.fields[i].name];
519
541
  }
@@ -1580,7 +1602,7 @@ Char: ${this.c}`;
1580
1602
  const { jsonpaths } = options.json || {};
1581
1603
  let isFirstChunk = true;
1582
1604
  const schema = null;
1583
- const shape = options?.json?.shape || "row-table";
1605
+ const shape = options?.json?.shape || "object-row-table";
1584
1606
  const tableBatchBuilder = new TableBatchBuilder(schema, {
1585
1607
  ...options,
1586
1608
  shape
@@ -1676,7 +1698,7 @@ Char: ${this.c}`;
1676
1698
  VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
1677
1699
  DEFAULT_JSON_LOADER_OPTIONS = {
1678
1700
  json: {
1679
- shape: "row-table",
1701
+ shape: "object-row-table",
1680
1702
  table: false,
1681
1703
  jsonpaths: []
1682
1704
  }
@@ -1781,8 +1803,8 @@ Char: ${this.c}`;
1781
1803
  });
1782
1804
 
1783
1805
  // src/lib/encoders/json-encoder.ts
1784
- function encodeTableAsJSON(table, options = {}) {
1785
- const shape = options.shape || "object-row-table";
1806
+ function encodeTableAsJSON(table, options) {
1807
+ const shape = options?.json?.shape || "object-row-table";
1786
1808
  const strings = [];
1787
1809
  const rowIterator = makeRowIterator(table, shape);
1788
1810
  for (const row of rowIterator) {
@@ -1811,7 +1833,7 @@ Char: ${this.c}`;
1811
1833
  options: {},
1812
1834
  text: true,
1813
1835
  encode: async (table, options) => new TextEncoder().encode(encodeTableAsJSON(table, options)).buffer,
1814
- encodeText: (table, options) => encodeTableAsJSON(table, options)
1836
+ encodeTextSync: (table, options) => encodeTableAsJSON(table, options)
1815
1837
  };
1816
1838
  }
1817
1839
  });
@@ -2371,7 +2393,8 @@ Char: ${this.c}`;
2371
2393
  ...geometryInfo
2372
2394
  }, {
2373
2395
  numericPropKeys: options && options.numericPropKeys || numericPropKeys,
2374
- PositionDataType: options ? options.PositionDataType : Float32Array
2396
+ PositionDataType: options ? options.PositionDataType : Float32Array,
2397
+ triangulate: options ? options.triangulate : true
2375
2398
  });
2376
2399
  }
2377
2400
  function extractNumericPropTypes(features) {
@@ -2400,7 +2423,7 @@ Char: ${this.c}`;
2400
2423
  propArrayTypes,
2401
2424
  coordLength
2402
2425
  } = geometryInfo;
2403
- const { numericPropKeys = [], PositionDataType = Float32Array } = options;
2426
+ const { numericPropKeys = [], PositionDataType = Float32Array, triangulate = true } = options;
2404
2427
  const hasGlobalId = features[0] && "id" in features[0];
2405
2428
  const GlobalFeatureIdsDataType = features.length > 65535 ? Uint32Array : Uint16Array;
2406
2429
  const points = {
@@ -2427,13 +2450,15 @@ Char: ${this.c}`;
2427
2450
  polygonIndices: polygonPositionsCount > 65535 ? new Uint32Array(polygonObjectsCount + 1) : new Uint16Array(polygonObjectsCount + 1),
2428
2451
  primitivePolygonIndices: polygonPositionsCount > 65535 ? new Uint32Array(polygonRingsCount + 1) : new Uint16Array(polygonRingsCount + 1),
2429
2452
  positions: new PositionDataType(polygonPositionsCount * coordLength),
2430
- triangles: [],
2431
2453
  globalFeatureIds: new GlobalFeatureIdsDataType(polygonPositionsCount),
2432
2454
  featureIds: polygonFeaturesCount > 65535 ? new Uint32Array(polygonPositionsCount) : new Uint16Array(polygonPositionsCount),
2433
2455
  numericProps: {},
2434
2456
  properties: [],
2435
2457
  fields: []
2436
2458
  };
2459
+ if (triangulate) {
2460
+ polygons.triangles = [];
2461
+ }
2437
2462
  for (const object of [points, lines, polygons]) {
2438
2463
  for (const propName of numericPropKeys) {
2439
2464
  const T = propArrayTypes[propName];
@@ -2538,6 +2563,9 @@ Char: ${this.c}`;
2538
2563
  endPosition,
2539
2564
  coordLength
2540
2565
  }) {
2566
+ if (!polygons.triangles) {
2567
+ return;
2568
+ }
2541
2569
  const start = startPosition * coordLength;
2542
2570
  const end = endPosition * coordLength;
2543
2571
  const polygonPositions = polygons.positions.subarray(start, end);
@@ -2556,7 +2584,7 @@ Char: ${this.c}`;
2556
2584
  return returnObj;
2557
2585
  }
2558
2586
  function makeAccessorObjects(points, lines, polygons, coordLength) {
2559
- return {
2587
+ const binaryFeatures = {
2560
2588
  points: {
2561
2589
  ...points,
2562
2590
  positions: { value: points.positions, size: coordLength },
@@ -2577,12 +2605,15 @@ Char: ${this.c}`;
2577
2605
  positions: { value: polygons.positions, size: coordLength },
2578
2606
  polygonIndices: { value: polygons.polygonIndices, size: 1 },
2579
2607
  primitivePolygonIndices: { value: polygons.primitivePolygonIndices, size: 1 },
2580
- triangles: { value: new Uint32Array(polygons.triangles), size: 1 },
2581
2608
  globalFeatureIds: { value: polygons.globalFeatureIds, size: 1 },
2582
2609
  featureIds: { value: polygons.featureIds, size: 1 },
2583
2610
  numericProps: wrapProps(polygons.numericProps, 1)
2584
2611
  }
2585
2612
  };
2613
+ if (binaryFeatures.polygons && polygons.triangles) {
2614
+ binaryFeatures.polygons.triangles = { value: new Uint32Array(polygons.triangles), size: 1 };
2615
+ }
2616
+ return binaryFeatures;
2586
2617
  }
2587
2618
  function fillNumericProperties(object, properties, index, length) {
2588
2619
  for (const numericPropName in object.numericProps) {
@@ -2791,14 +2822,15 @@ Char: ${this.c}`;
2791
2822
  });
2792
2823
 
2793
2824
  // ../gis/src/lib/geojson-to-binary.ts
2794
- function geojsonToBinary(features, options = { fixRingWinding: true }) {
2825
+ function geojsonToBinary(features, options = { fixRingWinding: true, triangulate: true }) {
2795
2826
  const geometryInfo = extractGeometryInfo(features);
2796
2827
  const coordLength = geometryInfo.coordLength;
2797
2828
  const { fixRingWinding } = options;
2798
2829
  const flatFeatures = geojsonToFlatGeojson(features, { coordLength, fixRingWinding });
2799
2830
  return flatGeojsonToBinary(flatFeatures, geometryInfo, {
2800
2831
  numericPropKeys: options.numericPropKeys,
2801
- PositionDataType: options.PositionDataType || Float32Array
2832
+ PositionDataType: options.PositionDataType || Float32Array,
2833
+ triangulate: options.triangulate
2802
2834
  });
2803
2835
  }
2804
2836
  var init_geojson_to_binary = __esm({
@@ -2821,21 +2853,30 @@ Char: ${this.c}`;
2821
2853
  return parseTextSync2(new TextDecoder().decode(arrayBuffer), options);
2822
2854
  }
2823
2855
  function parseTextSync2(text, options) {
2824
- options = { ...DEFAULT_GEOJSON_LOADER_OPTIONS, ...options };
2825
- options.json = { ...DEFAULT_GEOJSON_LOADER_OPTIONS.geojson, ...options.geojson };
2856
+ options = { ...GeoJSONLoader.options, ...options };
2857
+ options.geojson = { ...GeoJSONLoader.options.geojson, ...options.geojson };
2826
2858
  options.gis = options.gis || {};
2827
- const table = parseJSONSync(text, options);
2828
- table.shape = "geojson-row-table";
2859
+ let geojson;
2860
+ try {
2861
+ geojson = JSON.parse(text);
2862
+ } catch {
2863
+ geojson = {};
2864
+ }
2865
+ const table = {
2866
+ shape: "geojson-table",
2867
+ type: "FeatureCollection",
2868
+ features: geojson?.features || []
2869
+ };
2829
2870
  switch (options.gis.format) {
2830
2871
  case "binary":
2831
- return geojsonToBinary(table.data);
2872
+ return geojsonToBinary(table.features);
2832
2873
  default:
2833
2874
  return table;
2834
2875
  }
2835
2876
  }
2836
2877
  function parseInBatches2(asyncIterator, options) {
2837
- options = { ...DEFAULT_GEOJSON_LOADER_OPTIONS, ...options };
2838
- options.json = { ...DEFAULT_GEOJSON_LOADER_OPTIONS.geojson, ...options.geojson };
2878
+ options = { ...GeoJSONLoader.options, ...options };
2879
+ options.json = { ...GeoJSONLoader.options.geojson, ...options.geojson };
2839
2880
  const geojsonIterator = parseJSONInBatches(asyncIterator, options);
2840
2881
  switch (options.gis.format) {
2841
2882
  case "binary":
@@ -2850,24 +2891,12 @@ Char: ${this.c}`;
2850
2891
  yield batch;
2851
2892
  }
2852
2893
  }
2853
- var VERSION3, DEFAULT_GEOJSON_LOADER_OPTIONS, GeoJSONWorkerLoader, GeoJSONLoader;
2894
+ var VERSION3, GeoJSONWorkerLoader, GeoJSONLoader;
2854
2895
  var init_geojson_loader = __esm({
2855
2896
  "src/geojson-loader.ts"() {
2856
2897
  init_src3();
2857
- init_parse_json();
2858
2898
  init_parse_json_in_batches();
2859
2899
  VERSION3 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
2860
- DEFAULT_GEOJSON_LOADER_OPTIONS = {
2861
- geojson: {
2862
- shape: "object-row-table"
2863
- },
2864
- json: {
2865
- jsonpaths: ["$", "$.features"]
2866
- },
2867
- gis: {
2868
- format: "geojson"
2869
- }
2870
- };
2871
2900
  GeoJSONWorkerLoader = {
2872
2901
  name: "GeoJSON",
2873
2902
  id: "geojson",
@@ -2878,7 +2907,18 @@ Char: ${this.c}`;
2878
2907
  mimeTypes: ["application/geo+json"],
2879
2908
  category: "geometry",
2880
2909
  text: true,
2881
- options: DEFAULT_GEOJSON_LOADER_OPTIONS
2910
+ options: {
2911
+ geojson: {
2912
+ shape: "object-row-table"
2913
+ },
2914
+ json: {
2915
+ shape: "object-row-table",
2916
+ jsonpaths: ["$", "$.features"]
2917
+ },
2918
+ gis: {
2919
+ format: "geojson"
2920
+ }
2921
+ }
2882
2922
  };
2883
2923
  GeoJSONLoader = {
2884
2924
  ...GeoJSONWorkerLoader,
@@ -2889,7 +2929,7 @@ Char: ${this.c}`;
2889
2929
  }
2890
2930
  });
2891
2931
 
2892
- // src/lib/encoders/encode-utils.ts
2932
+ // src/lib/encoder-utils/encode-utils.ts
2893
2933
  function detectGeometryColumnIndex(table) {
2894
2934
  const geometryIndex = table.schema?.fields.findIndex((field) => field.name === "geometry") ?? -1;
2895
2935
  if (geometryIndex > -1) {
@@ -2917,15 +2957,53 @@ Char: ${this.c}`;
2917
2957
  return properties;
2918
2958
  }
2919
2959
  var init_encode_utils = __esm({
2920
- "src/lib/encoders/encode-utils.ts"() {
2960
+ "src/lib/encoder-utils/encode-utils.ts"() {
2961
+ init_src();
2962
+ }
2963
+ });
2964
+
2965
+ // src/lib/encoder-utils/encode-table-row.ts
2966
+ function encodeTableRow(table, rowIndex, geometryColumnIndex, utf8Encoder) {
2967
+ const row = getTableRowAsObject(table, rowIndex);
2968
+ if (!row)
2969
+ return;
2970
+ const featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);
2971
+ const featureString = JSON.stringify(featureWithProperties);
2972
+ utf8Encoder.push(featureString);
2973
+ }
2974
+ function getFeatureFromRow(table, row, geometryColumnIndex) {
2975
+ const properties = getRowPropertyObject(table, row, [geometryColumnIndex]);
2976
+ const columnName = table.schema?.fields[geometryColumnIndex].name;
2977
+ let featureOrGeometry = columnName && row[columnName];
2978
+ if (!featureOrGeometry) {
2979
+ return { type: "Feature", geometry: null, properties };
2980
+ }
2981
+ if (typeof featureOrGeometry === "string") {
2982
+ try {
2983
+ featureOrGeometry = JSON.parse(featureOrGeometry);
2984
+ } catch (err) {
2985
+ throw new Error("Invalid string geometry");
2986
+ }
2987
+ }
2988
+ if (typeof featureOrGeometry !== "object" || typeof featureOrGeometry?.type !== "string") {
2989
+ throw new Error("invalid geometry column value");
2990
+ }
2991
+ if (featureOrGeometry?.type === "Feature") {
2992
+ return { ...featureOrGeometry, properties };
2993
+ }
2994
+ return { type: "Feature", geometry: featureOrGeometry, properties };
2995
+ }
2996
+ var init_encode_table_row = __esm({
2997
+ "src/lib/encoder-utils/encode-table-row.ts"() {
2921
2998
  init_src();
2999
+ init_encode_utils();
2922
3000
  }
2923
3001
  });
2924
3002
 
2925
- // src/lib/encoders/utf8-encoder.ts
3003
+ // src/lib/encoder-utils/utf8-encoder.ts
2926
3004
  var Utf8ArrayBufferEncoder;
2927
3005
  var init_utf8_encoder = __esm({
2928
- "src/lib/encoders/utf8-encoder.ts"() {
3006
+ "src/lib/encoder-utils/utf8-encoder.ts"() {
2929
3007
  Utf8ArrayBufferEncoder = class {
2930
3008
  constructor(chunkSize) {
2931
3009
  this.strings = [];
@@ -2965,10 +3043,11 @@ Char: ${this.c}`;
2965
3043
  utf8Encoder.push("[");
2966
3044
  let geometryColumn = options.geojson.geometryColumn;
2967
3045
  let isFirstLine = true;
2968
- for await (const batch of batchIterator) {
2969
- const { table, start, end = getTableLength(batch.table) - start } = batch;
3046
+ let start = 0;
3047
+ for await (const tableBatch of batchIterator) {
3048
+ const end = start + getTableLength(tableBatch);
2970
3049
  if (!geometryColumn) {
2971
- geometryColumn = geometryColumn || detectGeometryColumnIndex(table);
3050
+ geometryColumn = geometryColumn || detectGeometryColumnIndex(tableBatch);
2972
3051
  }
2973
3052
  for (let rowIndex = start; rowIndex < end; ++rowIndex) {
2974
3053
  if (!isFirstLine) {
@@ -2976,10 +3055,11 @@ Char: ${this.c}`;
2976
3055
  }
2977
3056
  utf8Encoder.push("\n");
2978
3057
  isFirstLine = false;
2979
- encodeRow(table, rowIndex, geometryColumn, utf8Encoder);
3058
+ encodeTableRow(tableBatch, rowIndex, geometryColumn, utf8Encoder);
2980
3059
  if (utf8Encoder.isFull()) {
2981
3060
  yield utf8Encoder.getArrayBufferBatch();
2982
3061
  }
3062
+ start = end;
2983
3063
  }
2984
3064
  const arrayBufferBatch = utf8Encoder.getArrayBufferBatch();
2985
3065
  if (arrayBufferBatch.byteLength > 0) {
@@ -2993,41 +3073,11 @@ Char: ${this.c}`;
2993
3073
  }
2994
3074
  yield utf8Encoder.getArrayBufferBatch();
2995
3075
  }
2996
- function encodeRow(table, rowIndex, geometryColumnIndex, utf8Encoder) {
2997
- const row = getTableRowAsObject(table, rowIndex);
2998
- if (!row)
2999
- return;
3000
- const featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);
3001
- const featureString = JSON.stringify(featureWithProperties);
3002
- utf8Encoder.push(featureString);
3003
- }
3004
- function getFeatureFromRow(table, row, geometryColumnIndex) {
3005
- const properties = getRowPropertyObject(table, row, [geometryColumnIndex]);
3006
- const columnName = table.schema?.fields[geometryColumnIndex].name;
3007
- let featureOrGeometry = columnName && row[columnName];
3008
- if (!featureOrGeometry) {
3009
- return { type: "Feature", geometry: null, properties };
3010
- }
3011
- if (typeof featureOrGeometry === "string") {
3012
- try {
3013
- featureOrGeometry = JSON.parse(featureOrGeometry);
3014
- } catch (err) {
3015
- throw new Error("Invalid string geometry");
3016
- }
3017
- }
3018
- if (typeof featureOrGeometry !== "object" || typeof featureOrGeometry?.type !== "string") {
3019
- throw new Error("invalid geometry column value");
3020
- }
3021
- if (featureOrGeometry?.type === "Feature") {
3022
- return { ...featureOrGeometry, properties };
3023
- }
3024
- return { type: "Feature", geometry: featureOrGeometry, properties };
3025
- }
3026
3076
  var init_geojson_encoder = __esm({
3027
3077
  "src/lib/encoders/geojson-encoder.ts"() {
3028
- init_src();
3029
3078
  init_src();
3030
3079
  init_encode_utils();
3080
+ init_encode_table_row();
3031
3081
  init_utf8_encoder();
3032
3082
  }
3033
3083
  });
@@ -11,24 +11,12 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
11
11
  var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
12
12
  var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
13
13
  var _gis = require("@loaders.gl/gis");
14
- var _parseJson = require("./lib/parsers/parse-json");
15
14
  var _parseJsonInBatches = require("./lib/parsers/parse-json-in-batches");
16
15
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
16
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
18
17
  function _asyncIterator(iterable) { var method, async, sync, retry = 2; for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { if (async && null != (method = iterable[async])) return method.call(iterable); if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); async = "@@asyncIterator", sync = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
19
18
  function AsyncFromSyncIterator(s) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var done = r.done; return Promise.resolve(r.value).then(function (value) { return { value: value, done: done }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { this.s = s, this.n = s.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(value) { var ret = this.s.return; return void 0 === ret ? Promise.resolve({ value: value, done: !0 }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); }, throw: function _throw(value) { var thr = this.s.return; return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(s); }
20
- var VERSION = typeof "4.0.0-alpha.8" !== 'undefined' ? "4.0.0-alpha.8" : 'latest';
21
- var DEFAULT_GEOJSON_LOADER_OPTIONS = {
22
- geojson: {
23
- shape: 'object-row-table'
24
- },
25
- json: {
26
- jsonpaths: ['$', '$.features']
27
- },
28
- gis: {
29
- format: 'geojson'
30
- }
31
- };
19
+ var VERSION = typeof "4.0.0-beta.1" !== 'undefined' ? "4.0.0-beta.1" : 'latest';
32
20
  var GeoJSONWorkerLoader = {
33
21
  name: 'GeoJSON',
34
22
  id: 'geojson',
@@ -39,7 +27,18 @@ var GeoJSONWorkerLoader = {
39
27
  mimeTypes: ['application/geo+json'],
40
28
  category: 'geometry',
41
29
  text: true,
42
- options: DEFAULT_GEOJSON_LOADER_OPTIONS
30
+ options: {
31
+ geojson: {
32
+ shape: 'object-row-table'
33
+ },
34
+ json: {
35
+ shape: 'object-row-table',
36
+ jsonpaths: ['$', '$.features']
37
+ },
38
+ gis: {
39
+ format: 'geojson'
40
+ }
41
+ }
43
42
  };
44
43
  exports.GeoJSONWorkerLoader = GeoJSONWorkerLoader;
45
44
  var GeoJSONLoader = _objectSpread(_objectSpread({}, GeoJSONWorkerLoader), {}, {
@@ -66,21 +65,31 @@ function _parse() {
66
65
  return _parse.apply(this, arguments);
67
66
  }
68
67
  function parseTextSync(text, options) {
69
- options = _objectSpread(_objectSpread({}, DEFAULT_GEOJSON_LOADER_OPTIONS), options);
70
- options.json = _objectSpread(_objectSpread({}, DEFAULT_GEOJSON_LOADER_OPTIONS.geojson), options.geojson);
68
+ var _geojson;
69
+ options = _objectSpread(_objectSpread({}, GeoJSONLoader.options), options);
70
+ options.geojson = _objectSpread(_objectSpread({}, GeoJSONLoader.options.geojson), options.geojson);
71
71
  options.gis = options.gis || {};
72
- var table = (0, _parseJson.parseJSONSync)(text, options);
73
- table.shape = 'geojson-row-table';
72
+ var geojson;
73
+ try {
74
+ geojson = JSON.parse(text);
75
+ } catch (_unused) {
76
+ geojson = {};
77
+ }
78
+ var table = {
79
+ shape: 'geojson-table',
80
+ type: 'FeatureCollection',
81
+ features: ((_geojson = geojson) === null || _geojson === void 0 ? void 0 : _geojson.features) || []
82
+ };
74
83
  switch (options.gis.format) {
75
84
  case 'binary':
76
- return (0, _gis.geojsonToBinary)(table.data);
85
+ return (0, _gis.geojsonToBinary)(table.features);
77
86
  default:
78
87
  return table;
79
88
  }
80
89
  }
81
90
  function parseInBatches(asyncIterator, options) {
82
- options = _objectSpread(_objectSpread({}, DEFAULT_GEOJSON_LOADER_OPTIONS), options);
83
- options.json = _objectSpread(_objectSpread({}, DEFAULT_GEOJSON_LOADER_OPTIONS.geojson), options.geojson);
91
+ options = _objectSpread(_objectSpread({}, GeoJSONLoader.options), options);
92
+ options.json = _objectSpread(_objectSpread({}, GeoJSONLoader.options.geojson), options.geojson);
84
93
  var geojsonIterator = (0, _parseJsonInBatches.parseJSONInBatches)(asyncIterator, options);
85
94
  switch (options.gis.format) {
86
95
  case 'binary':
@@ -1 +1 @@
1
- {"version":3,"file":"geojson-loader.js","names":["_gis","require","_parseJson","_parseJsonInBatches","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Promise","reject","done","resolve","value","then","n","next","prototype","return","_return","ret","throw","_throw","thr","VERSION","DEFAULT_GEOJSON_LOADER_OPTIONS","geojson","shape","json","jsonpaths","gis","format","GeoJSONWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","options","exports","GeoJSONLoader","parse","parseTextSync","parseInBatches","_x2","_x3","_parse","_asyncToGenerator2","_regenerator","mark","_callee2","arrayBuffer","wrap","_callee2$","_context2","prev","abrupt","TextDecoder","decode","stop","table","parseJSONSync","geojsonToBinary","data","geojsonIterator","parseJSONInBatches","makeBinaryGeometryIterator","_x","_makeBinaryGeometryIterator","_wrapAsyncGenerator2","_callee","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","_callee$","_context","_awaitAsyncGenerator2","sent","t0","finish"],"sources":["../../src/geojson-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {JSONLoaderOptions} from './json-loader';\nimport {geojsonToBinary} from '@loaders.gl/gis';\nimport {parseJSONSync} from './lib/parsers/parse-json';\nimport {parseJSONInBatches} from './lib/parsers/parse-json-in-batches';\nimport {GeoJSONRowTable} from '@loaders.gl/schema';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type GeoJSONLoaderOptions = JSONLoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format?: 'geojson' | 'binary';\n };\n};\n\nconst DEFAULT_GEOJSON_LOADER_OPTIONS = {\n geojson: {\n shape: 'object-row-table'\n },\n json: {\n jsonpaths: ['$', '$.features']\n },\n gis: {\n format: 'geojson'\n }\n};\n\n/**\n * GeoJSON loader\n */\nexport const GeoJSONWorkerLoader: Loader = {\n name: 'GeoJSON',\n id: 'geojson',\n module: 'geojson',\n version: VERSION,\n worker: true,\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n category: 'geometry',\n text: true,\n options: DEFAULT_GEOJSON_LOADER_OPTIONS\n};\n\nexport const GeoJSONLoader: LoaderWithParser = {\n ...GeoJSONWorkerLoader,\n parse,\n parseTextSync,\n parseInBatches\n};\n\nasync function parse(arrayBuffer, options) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text, options) {\n // Apps can call the parse method directly, we so apply default options here\n options = {...DEFAULT_GEOJSON_LOADER_OPTIONS, ...options};\n options.json = {...DEFAULT_GEOJSON_LOADER_OPTIONS.geojson, ...options.geojson};\n options.gis = options.gis || {};\n const table = parseJSONSync(text, options) as GeoJSONRowTable;\n table.shape = 'geojson-row-table';\n switch (options.gis.format) {\n case 'binary':\n return geojsonToBinary(table.data);\n default:\n return table;\n }\n}\n\nfunction parseInBatches(asyncIterator, options): AsyncIterable<any> {\n // Apps can call the parse method directly, we so apply default options here\n options = {...DEFAULT_GEOJSON_LOADER_OPTIONS, ...options};\n options.json = {...DEFAULT_GEOJSON_LOADER_OPTIONS.geojson, ...options.geojson};\n\n const geojsonIterator = parseJSONInBatches(asyncIterator, options);\n\n switch (options.gis.format) {\n case 'binary':\n return makeBinaryGeometryIterator(geojsonIterator);\n default:\n return geojsonIterator;\n }\n}\n\nasync function* makeBinaryGeometryIterator(geojsonIterator) {\n for await (const batch of geojsonIterator) {\n batch.data = geojsonToBinary(batch.data);\n yield batch;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"geojson-loader.js","names":["_gis","require","_parseJsonInBatches","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Promise","reject","done","resolve","value","then","n","next","prototype","return","_return","ret","throw","_throw","thr","VERSION","GeoJSONWorkerLoader","name","id","module","version","worker","extensions","mimeTypes","category","text","options","geojson","shape","json","jsonpaths","gis","format","exports","GeoJSONLoader","parse","parseTextSync","parseInBatches","_x2","_x3","_parse","_asyncToGenerator2","_regenerator","mark","_callee2","arrayBuffer","wrap","_callee2$","_context2","prev","abrupt","TextDecoder","decode","stop","_geojson","JSON","_unused","table","type","features","geojsonToBinary","geojsonIterator","parseJSONInBatches","makeBinaryGeometryIterator","_x","_makeBinaryGeometryIterator","_wrapAsyncGenerator2","_callee","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","_callee$","_context","_awaitAsyncGenerator2","sent","data","t0","finish"],"sources":["../../src/geojson-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {GeoJSON, GeoJSONTable, TableBatch} from '@loaders.gl/schema';\nimport type {JSONLoaderOptions} from './json-loader';\nimport {geojsonToBinary} from '@loaders.gl/gis';\n// import {parseJSONSync} from './lib/parsers/parse-json';\nimport {parseJSONInBatches} from './lib/parsers/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type GeoJSONLoaderOptions = JSONLoaderOptions & {\n geojson?: {\n shape?: 'object-row-table';\n };\n gis?: {\n format?: 'geojson' | 'binary';\n };\n};\n\n/**\n * GeoJSON loader\n */\nexport const GeoJSONWorkerLoader: Loader<GeoJSON, TableBatch, GeoJSONLoaderOptions> = {\n name: 'GeoJSON',\n id: 'geojson',\n module: 'geojson',\n version: VERSION,\n worker: true,\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n category: 'geometry',\n text: true,\n options: {\n geojson: {\n shape: 'object-row-table'\n },\n json: {\n shape: 'object-row-table',\n jsonpaths: ['$', '$.features']\n },\n gis: {\n format: 'geojson'\n }\n }\n};\n\nexport const GeoJSONLoader: LoaderWithParser<GeoJSON, TableBatch, GeoJSONLoaderOptions> = {\n ...GeoJSONWorkerLoader,\n // @ts-expect-error\n parse,\n // @ts-expect-error\n parseTextSync,\n parseInBatches\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: GeoJSONLoaderOptions) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text: string, options?: GeoJSONLoaderOptions) {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GeoJSONLoader.options, ...options};\n options.geojson = {...GeoJSONLoader.options.geojson, ...options.geojson};\n options.gis = options.gis || {};\n\n let geojson;\n try {\n geojson = JSON.parse(text);\n } catch {\n geojson = {};\n }\n\n const table: GeoJSONTable = {\n shape: 'geojson-table',\n // TODO - deduce schema from geojson\n // TODO check that parsed data is of type FeatureCollection\n type: 'FeatureCollection',\n features: geojson?.features || []\n };\n\n switch (options.gis.format) {\n case 'binary':\n return geojsonToBinary(table.features);\n default:\n return table;\n }\n}\n\nfunction parseInBatches(asyncIterator, options): AsyncIterable<TableBatch> {\n // Apps can call the parse method directly, we so apply default options here\n options = {...GeoJSONLoader.options, ...options};\n options.json = {...GeoJSONLoader.options.geojson, ...options.geojson};\n\n const geojsonIterator = parseJSONInBatches(asyncIterator, options);\n\n switch (options.gis.format) {\n case 'binary':\n return makeBinaryGeometryIterator(geojsonIterator);\n default:\n return geojsonIterator;\n }\n}\n\nasync function* makeBinaryGeometryIterator(geojsonIterator) {\n for await (const batch of geojsonIterator) {\n batch.data = geojsonToBinary(batch.data);\n yield batch;\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"geojson-writer.js","names":["_geojsonEncoder","require","GeoJSONWriter","id","version","module","name","extensions","mimeTypes","options","geojson","featureArray","geometryColumn","text","encodeInBatches","tableIterator","encodeTableAsGeojsonInBatches","exports"],"sources":["../../src/geojson-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright Foursquare, Inc 20222\n\nimport type {Writer} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport type {GeoJSONWriterOptions} from './lib/encoders/geojson-encoder';\nimport {encodeTableAsGeojsonInBatches} from './lib/encoders/geojson-encoder';\n\nexport type {GeoJSONWriterOptions};\n\nexport const GeoJSONWriter: Writer<Table, TableBatch, GeoJSONWriterOptions> = {\n id: 'geojson',\n version: 'latest',\n module: 'geojson',\n name: 'GeoJSON',\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n options: {\n geojson: {\n featureArray: false,\n geometryColumn: null\n }\n },\n text: true,\n encodeInBatches: (tableIterator: AsyncIterable<TableBatch>, options) =>\n encodeTableAsGeojsonInBatches(tableIterator, options)\n};\n"],"mappings":";;;;;;AAMA,IAAAA,eAAA,GAAAC,OAAA;AAIO,IAAMC,aAA8D,GAAG;EAC5EC,EAAE,EAAE,SAAS;EACbC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE,SAAS;EACfC,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,sBAAsB,CAAC;EACnCC,OAAO,EAAE;IACPC,OAAO,EAAE;MACPC,YAAY,EAAE,KAAK;MACnBC,cAAc,EAAE;IAClB;EACF,CAAC;EACDC,IAAI,EAAE,IAAI;EACVC,eAAe,EAAE,SAAAA,gBAACC,aAAwC,EAAEN,OAAO;IAAA,OACjE,IAAAO,6CAA6B,EAACD,aAAa,EAAEN,OAAO,CAAC;EAAA;AACzD,CAAC;AAACQ,OAAA,CAAAf,aAAA,GAAAA,aAAA"}
1
+ {"version":3,"file":"geojson-writer.js","names":["_geojsonEncoder","require","GeoJSONWriter","id","version","module","name","extensions","mimeTypes","options","geojson","featureArray","geometryColumn","text","encodeInBatches","tableIterator","encodeTableAsGeojsonInBatches","exports"],"sources":["../../src/geojson-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright Foursquare, Inc 20222\n\nimport type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport {encodeTableAsGeojsonInBatches} from './lib/encoders/geojson-encoder';\n\nexport type GeoJSONWriterOptions = WriterOptions & {\n geojson?: {\n featureArray?: boolean;\n geometryColumn?: number | null;\n };\n chunkSize?: number;\n};\n\nexport const GeoJSONWriter: Writer<Table, TableBatch, GeoJSONWriterOptions> = {\n id: 'geojson',\n version: 'latest',\n module: 'geojson',\n name: 'GeoJSON',\n extensions: ['geojson'],\n mimeTypes: ['application/geo+json'],\n options: {\n geojson: {\n featureArray: false,\n geometryColumn: null\n }\n },\n text: true,\n encodeInBatches: (tableIterator: AsyncIterable<TableBatch>, options) =>\n encodeTableAsGeojsonInBatches(tableIterator, options)\n};\n"],"mappings":";;;;;;AAKA,IAAAA,eAAA,GAAAC,OAAA;AAUO,IAAMC,aAA8D,GAAG;EAC5EC,EAAE,EAAE,SAAS;EACbC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,SAAS;EACjBC,IAAI,EAAE,SAAS;EACfC,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,sBAAsB,CAAC;EACnCC,OAAO,EAAE;IACPC,OAAO,EAAE;MACPC,YAAY,EAAE,KAAK;MACnBC,cAAc,EAAE;IAClB;EACF,CAAC;EACDC,IAAI,EAAE,IAAI;EACVC,eAAe,EAAE,SAAAA,gBAACC,aAAwC,EAAEN,OAAO;IAAA,OACjE,IAAAO,6CAA6B,EAACD,aAAa,EAAEN,OAAO,CAAC;EAAA;AACzD,CAAC;AAACQ,OAAA,CAAAf,aAAA,GAAAA,aAAA"}
@@ -12,10 +12,10 @@ var _parseJson = require("./lib/parsers/parse-json");
12
12
  var _parseJsonInBatches = require("./lib/parsers/parse-json-in-batches");
13
13
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
14
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
15
- var VERSION = typeof "4.0.0-alpha.8" !== 'undefined' ? "4.0.0-alpha.8" : 'latest';
15
+ var VERSION = typeof "4.0.0-beta.1" !== 'undefined' ? "4.0.0-beta.1" : 'latest';
16
16
  var DEFAULT_JSON_LOADER_OPTIONS = {
17
17
  json: {
18
- shape: 'row-table',
18
+ shape: 'object-row-table',
19
19
  table: false,
20
20
  jsonpaths: []
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"json-loader.js","names":["_parseJson","require","_parseJsonInBatches","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","VERSION","DEFAULT_JSON_LOADER_OPTIONS","json","shape","table","jsonpaths","JSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","parseTextSync","parseInBatches","options","exports","_x","_x2","_parse","_asyncToGenerator2","_regenerator","mark","_callee","arrayBuffer","wrap","_callee$","_context","prev","next","abrupt","TextDecoder","decode","stop","jsonOptions","parseJSONSync","asyncIterator","parseJSONInBatches"],"sources":["../../src/json-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {parseJSONSync} from './lib/parsers/parse-json';\nimport {parseJSONInBatches} from './lib/parsers/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\ntype ParseJSONOptions = {\n shape?: 'row-table';\n table?: boolean;\n jsonpaths?: string[];\n};\n\n/**\n * @param table -\n * @param jsonpaths -\n */\nexport type JSONLoaderOptions = LoaderOptions & {\n json?: ParseJSONOptions;\n};\n\nconst DEFAULT_JSON_LOADER_OPTIONS: {json: Required<ParseJSONOptions>} = {\n json: {\n shape: 'row-table',\n table: false,\n jsonpaths: []\n // batchSize: 'auto'\n }\n};\n\nexport const JSONLoader: LoaderWithParser<Table, TableBatch, JSONLoaderOptions> = {\n name: 'JSON',\n id: 'json',\n module: 'json',\n version: VERSION,\n extensions: ['json', 'geojson'],\n mimeTypes: ['application/json'],\n category: 'table',\n text: true,\n parse,\n parseTextSync,\n parseInBatches,\n options: DEFAULT_JSON_LOADER_OPTIONS\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: JSONLoaderOptions) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text: string, options?: JSONLoaderOptions) {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONSync(text, jsonOptions as JSONLoaderOptions);\n}\n\nfunction parseInBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: JSONLoaderOptions\n): AsyncIterable<TableBatch> {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONInBatches(asyncIterator, jsonOptions as JSONLoaderOptions);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"json-loader.js","names":["_parseJson","require","_parseJsonInBatches","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","VERSION","DEFAULT_JSON_LOADER_OPTIONS","json","shape","table","jsonpaths","JSONLoader","name","id","module","version","extensions","mimeTypes","category","text","parse","parseTextSync","parseInBatches","options","exports","_x","_x2","_parse","_asyncToGenerator2","_regenerator","mark","_callee","arrayBuffer","wrap","_callee$","_context","prev","next","abrupt","TextDecoder","decode","stop","jsonOptions","parseJSONSync","asyncIterator","parseJSONInBatches"],"sources":["../../src/json-loader.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {parseJSONSync} from './lib/parsers/parse-json';\nimport {parseJSONInBatches} from './lib/parsers/parse-json-in-batches';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\ntype ParseJSONOptions = {\n shape: 'object-row-table'; // TODO - 'auto'?\n table?: boolean;\n jsonpaths?: string[];\n};\n\n/**\n * @param table -\n * @param jsonpaths -\n */\nexport type JSONLoaderOptions = LoaderOptions & {\n json?: ParseJSONOptions;\n};\n\nconst DEFAULT_JSON_LOADER_OPTIONS: {json: Required<ParseJSONOptions>} = {\n json: {\n shape: 'object-row-table',\n table: false,\n jsonpaths: []\n // batchSize: 'auto'\n }\n};\n\nexport const JSONLoader: LoaderWithParser<Table, TableBatch, JSONLoaderOptions> = {\n name: 'JSON',\n id: 'json',\n module: 'json',\n version: VERSION,\n extensions: ['json', 'geojson'],\n mimeTypes: ['application/json'],\n category: 'table',\n text: true,\n parse,\n parseTextSync,\n parseInBatches,\n options: DEFAULT_JSON_LOADER_OPTIONS\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: JSONLoaderOptions) {\n return parseTextSync(new TextDecoder().decode(arrayBuffer), options);\n}\n\nfunction parseTextSync(text: string, options?: JSONLoaderOptions) {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONSync(text, jsonOptions as JSONLoaderOptions);\n}\n\nfunction parseInBatches(\n asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: JSONLoaderOptions\n): AsyncIterable<TableBatch> {\n const jsonOptions = {...options, json: {...DEFAULT_JSON_LOADER_OPTIONS.json, ...options?.json}};\n return parseJSONInBatches(asyncIterator, jsonOptions as JSONLoaderOptions);\n}\n"],"mappings":"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"}