@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
@@ -34,7 +34,7 @@ var JSONWriter = {
34
34
  }
35
35
  return encode;
36
36
  }(),
37
- encodeText: function encodeText(table, options) {
37
+ encodeTextSync: function encodeTextSync(table, options) {
38
38
  return (0, _jsonEncoder.encodeTableAsJSON)(table, options);
39
39
  }
40
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"json-writer.js","names":["_jsonEncoder","require","JSONWriter","id","version","module","name","extensions","mimeTypes","options","text","encode","_encode","_asyncToGenerator2","default","_regenerator","mark","_callee","table","wrap","_callee$","_context","prev","next","abrupt","TextEncoder","encodeTableAsJSON","buffer","stop","_x","_x2","apply","arguments","encodeText","exports"],"sources":["../../src/json-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\n/* global TextEncoder */\nimport type {Writer} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport type {JSONWriterOptions} from './lib/encoders/json-encoder';\nimport {encodeTableAsJSON} from './lib/encoders/json-encoder';\n\nexport type {JSONWriterOptions};\n\nexport const JSONWriter: Writer<Table, TableBatch, JSONWriterOptions> = {\n id: 'json',\n version: 'latest',\n module: 'json',\n name: 'JSON',\n extensions: ['json'],\n mimeTypes: ['application/json'],\n options: {},\n text: true,\n encode: async (table: Table, options: JSONWriterOptions) =>\n new TextEncoder().encode(encodeTableAsJSON(table, options)).buffer,\n encodeText: (table: Table, options: JSONWriterOptions) => encodeTableAsJSON(table, options)\n};\n"],"mappings":";;;;;;;;;AAOA,IAAAA,YAAA,GAAAC,OAAA;AAIO,IAAMC,UAAwD,GAAG;EACtEC,EAAE,EAAE,MAAM;EACVC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,MAAM;EACdC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,OAAO,EAAE,CAAC,CAAC;EACXC,IAAI,EAAE,IAAI;EACVC,MAAM;IAAA,IAAAC,OAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAOC,KAAY,EAAET,OAA0B;MAAA,OAAAM,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WACrD,IAAIC,WAAW,CAAC,CAAC,CAACd,MAAM,CAAC,IAAAe,8BAAiB,EAACR,KAAK,EAAET,OAAO,CAAC,CAAC,CAACkB,MAAM;UAAA;UAAA;YAAA,OAAAN,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAX,OAAA;IAAA;IAAA,SAAAN,OAAAkB,EAAA,EAAAC,GAAA;MAAA,OAAAlB,OAAA,CAAAmB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAArB,MAAA;EAAA;EACpEsB,UAAU,EAAE,SAAAA,WAACf,KAAY,EAAET,OAA0B;IAAA,OAAK,IAAAiB,8BAAiB,EAACR,KAAK,EAAET,OAAO,CAAC;EAAA;AAC7F,CAAC;AAACyB,OAAA,CAAAhC,UAAA,GAAAA,UAAA"}
1
+ {"version":3,"file":"json-writer.js","names":["_jsonEncoder","require","JSONWriter","id","version","module","name","extensions","mimeTypes","options","text","encode","_encode","_asyncToGenerator2","default","_regenerator","mark","_callee","table","wrap","_callee$","_context","prev","next","abrupt","TextEncoder","encodeTableAsJSON","buffer","stop","_x","_x2","apply","arguments","encodeTextSync","exports"],"sources":["../../src/json-writer.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\n/* global TextEncoder */\nimport type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport type {Table, TableBatch} from '@loaders.gl/schema';\nimport {encodeTableAsJSON} from './lib/encoders/json-encoder';\n\nexport type JSONWriterOptions = WriterOptions & {\n json?: {\n shape?: 'object-row-table' | 'array-row-table';\n wrapper?: (table: TableJSON) => unknown;\n };\n};\n\ntype RowArray = unknown[];\ntype RowObject = {[key: string]: unknown};\ntype TableJSON = RowArray[] | RowObject[];\n\nexport const JSONWriter: Writer<Table, TableBatch, JSONWriterOptions> = {\n id: 'json',\n version: 'latest',\n module: 'json',\n name: 'JSON',\n extensions: ['json'],\n mimeTypes: ['application/json'],\n options: {},\n text: true,\n encode: async (table: Table, options: JSONWriterOptions) =>\n new TextEncoder().encode(encodeTableAsJSON(table, options)).buffer,\n encodeTextSync: (table: Table, options: JSONWriterOptions) => encodeTableAsJSON(table, options)\n};\n"],"mappings":";;;;;;;;;AAMA,IAAAA,YAAA,GAAAC,OAAA;AAaO,IAAMC,UAAwD,GAAG;EACtEC,EAAE,EAAE,MAAM;EACVC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,MAAM;EACdC,IAAI,EAAE,MAAM;EACZC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,SAAS,EAAE,CAAC,kBAAkB,CAAC;EAC/BC,OAAO,EAAE,CAAC,CAAC;EACXC,IAAI,EAAE,IAAI;EACVC,MAAM;IAAA,IAAAC,OAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAOC,KAAY,EAAET,OAA0B;MAAA,OAAAM,YAAA,CAAAD,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAA,OAAAF,QAAA,CAAAG,MAAA,WACrD,IAAIC,WAAW,CAAC,CAAC,CAACd,MAAM,CAAC,IAAAe,8BAAiB,EAACR,KAAK,EAAET,OAAO,CAAC,CAAC,CAACkB,MAAM;UAAA;UAAA;YAAA,OAAAN,QAAA,CAAAO,IAAA;QAAA;MAAA,GAAAX,OAAA;IAAA;IAAA,SAAAN,OAAAkB,EAAA,EAAAC,GAAA;MAAA,OAAAlB,OAAA,CAAAmB,KAAA,OAAAC,SAAA;IAAA;IAAA,OAAArB,MAAA;EAAA;EACpEsB,cAAc,EAAE,SAAAA,eAACf,KAAY,EAAET,OAA0B;IAAA,OAAK,IAAAiB,8BAAiB,EAACR,KAAK,EAAET,OAAO,CAAC;EAAA;AACjG,CAAC;AAACyB,OAAA,CAAAhC,UAAA,GAAAA,UAAA"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.encodeTableRow = encodeTableRow;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
+ var _schema = require("@loaders.gl/schema");
11
+ var _encodeUtils = require("./encode-utils");
12
+ 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; }
13
+ 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; }
14
+ function encodeTableRow(table, rowIndex, geometryColumnIndex, utf8Encoder) {
15
+ var row = (0, _schema.getTableRowAsObject)(table, rowIndex);
16
+ if (!row) return;
17
+ var featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);
18
+ var featureString = JSON.stringify(featureWithProperties);
19
+ utf8Encoder.push(featureString);
20
+ }
21
+ function getFeatureFromRow(table, row, geometryColumnIndex) {
22
+ var _table$schema, _featureOrGeometry, _featureOrGeometry2;
23
+ var properties = (0, _encodeUtils.getRowPropertyObject)(table, row, [geometryColumnIndex]);
24
+ var columnName = (_table$schema = table.schema) === null || _table$schema === void 0 ? void 0 : _table$schema.fields[geometryColumnIndex].name;
25
+ var featureOrGeometry = columnName && row[columnName];
26
+ if (!featureOrGeometry) {
27
+ return {
28
+ type: 'Feature',
29
+ geometry: null,
30
+ properties: properties
31
+ };
32
+ }
33
+ if (typeof featureOrGeometry === 'string') {
34
+ try {
35
+ featureOrGeometry = JSON.parse(featureOrGeometry);
36
+ } catch (err) {
37
+ throw new Error('Invalid string geometry');
38
+ }
39
+ }
40
+ if ((0, _typeof2.default)(featureOrGeometry) !== 'object' || typeof ((_featureOrGeometry = featureOrGeometry) === null || _featureOrGeometry === void 0 ? void 0 : _featureOrGeometry.type) !== 'string') {
41
+ throw new Error('invalid geometry column value');
42
+ }
43
+ if (((_featureOrGeometry2 = featureOrGeometry) === null || _featureOrGeometry2 === void 0 ? void 0 : _featureOrGeometry2.type) === 'Feature') {
44
+ return _objectSpread(_objectSpread({}, featureOrGeometry), {}, {
45
+ properties: properties
46
+ });
47
+ }
48
+ return {
49
+ type: 'Feature',
50
+ geometry: featureOrGeometry,
51
+ properties: properties
52
+ };
53
+ }
54
+ //# sourceMappingURL=encode-table-row.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-table-row.js","names":["_schema","require","_encodeUtils","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","encodeTableRow","table","rowIndex","geometryColumnIndex","utf8Encoder","row","getTableRowAsObject","featureWithProperties","getFeatureFromRow","featureString","JSON","stringify","_table$schema","_featureOrGeometry","_featureOrGeometry2","properties","getRowPropertyObject","columnName","schema","fields","name","featureOrGeometry","type","geometry","parse","err","Error","_typeof2"],"sources":["../../../../src/lib/encoder-utils/encode-table-row.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Feature} from '@loaders.gl/schema';\nimport {Table, getTableRowAsObject} from '@loaders.gl/schema';\nimport {getRowPropertyObject} from './encode-utils';\nimport {Utf8ArrayBufferEncoder} from './utf8-encoder';\n\ntype Row = {[key: string]: unknown};\n\n// Helpers\n\n/**\n * Encode a row. Currently this ignores properties in the geometry column.\n */\nexport function encodeTableRow(\n table: Table,\n rowIndex: number,\n geometryColumnIndex: number,\n utf8Encoder: Utf8ArrayBufferEncoder\n): void {\n const row = getTableRowAsObject(table, rowIndex);\n if (!row) return;\n const featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);\n const featureString = JSON.stringify(featureWithProperties);\n utf8Encoder.push(featureString);\n}\n\n/**\n * Encode a row as a Feature. Currently this ignores properties objects in the geometry column.\n */\nfunction getFeatureFromRow(table: Table, row: Row, geometryColumnIndex: number): Feature {\n // Extract non-feature/geometry properties\n const properties = getRowPropertyObject(table, row, [geometryColumnIndex]);\n\n // Extract geometry feature\n const columnName = table.schema?.fields[geometryColumnIndex].name;\n let featureOrGeometry =\n columnName && (row[columnName] as {[key: string]: unknown} | string | null | undefined);\n\n // GeoJSON support null geometries\n if (!featureOrGeometry) {\n // @ts-ignore Feature type does not support null geometries\n return {type: 'Feature', geometry: null, properties};\n }\n\n // Support string geometries?\n // TODO: This assumes GeoJSON strings, which may not be the correct format\n // (could be WKT, encoded WKB...)\n if (typeof featureOrGeometry === 'string') {\n try {\n featureOrGeometry = JSON.parse(featureOrGeometry);\n } catch (err) {\n throw new Error('Invalid string geometry');\n }\n }\n\n if (typeof featureOrGeometry !== 'object' || typeof featureOrGeometry?.type !== 'string') {\n throw new Error('invalid geometry column value');\n }\n\n if (featureOrGeometry?.type === 'Feature') {\n // @ts-ignore Feature type does not support null geometries\n return {...featureOrGeometry, properties};\n }\n\n // @ts-ignore Feature type does not support null geometries\n return {type: 'Feature', geometry: featureOrGeometry, properties};\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode-utils.js","names":["_schema","require","detectGeometryColumnIndex","table","_table$schema$fields$","_table$schema","geometryIndex","schema","fields","findIndex","field","name","getTableLength","row","getTableRowAsArray","columnIndex","getTableNumCols","value","_typeof2","default","Error","getRowPropertyObject","excludeColumnIndices","arguments","length","undefined","properties","_table$schema2","columnName","includes"],"sources":["../../../../src/lib/encoder-utils/encode-utils.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Table, getTableLength, getTableNumCols, getTableRowAsArray} from '@loaders.gl/schema';\n\ntype Row = {[key: string]: unknown};\n\n/**\n * Attempts to identify which column contains geometry\n * Currently just returns name (key) of first object-valued column\n * @todo look for hints in schema metadata\n * @todo look for WKB\n */\nexport function detectGeometryColumnIndex(table: Table): number {\n // TODO - look for hints in schema metadata\n\n // look for a column named geometry\n const geometryIndex = table.schema?.fields.findIndex((field) => field.name === 'geometry') ?? -1;\n if (geometryIndex > -1) {\n return geometryIndex;\n }\n\n // look at the data\n // TODO - this drags in the indices\n if (getTableLength(table) > 0) {\n const row = getTableRowAsArray(table, 0);\n for (let columnIndex = 0; columnIndex < getTableNumCols(table); columnIndex++) {\n const value = row?.[columnIndex];\n if (value && typeof value === 'object') {\n return columnIndex;\n }\n }\n }\n\n throw new Error('Failed to detect geometry column');\n}\n\n/**\n * Return a row as a property (key/value) object, excluding selected columns\n */\nexport function getRowPropertyObject(\n table: Table,\n row: Row,\n excludeColumnIndices: number[] = []\n): {[columnName: string]: unknown} {\n const properties = {};\n for (let columnIndex = 0; columnIndex < getTableNumCols(table); ++columnIndex) {\n const columnName = table.schema?.fields[columnIndex].name;\n if (columnName && !excludeColumnIndices.includes(columnIndex)) {\n properties[columnName] = row[columnName];\n }\n }\n return properties;\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AAUO,SAASC,yBAAyBA,CAACC,KAAY,EAAU;EAAA,IAAAC,qBAAA,EAAAC,aAAA;EAI9D,IAAMC,aAAa,IAAAF,qBAAA,IAAAC,aAAA,GAAGF,KAAK,CAACI,MAAM,cAAAF,aAAA,uBAAZA,aAAA,CAAcG,MAAM,CAACC,SAAS,CAAC,UAACC,KAAK;IAAA,OAAKA,KAAK,CAACC,IAAI,KAAK,UAAU;EAAA,EAAC,cAAAP,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;EAChG,IAAIE,aAAa,GAAG,CAAC,CAAC,EAAE;IACtB,OAAOA,aAAa;EACtB;EAIA,IAAI,IAAAM,sBAAc,EAACT,KAAK,CAAC,GAAG,CAAC,EAAE;IAC7B,IAAMU,GAAG,GAAG,IAAAC,0BAAkB,EAACX,KAAK,EAAE,CAAC,CAAC;IACxC,KAAK,IAAIY,WAAW,GAAG,CAAC,EAAEA,WAAW,GAAG,IAAAC,uBAAe,EAACb,KAAK,CAAC,EAAEY,WAAW,EAAE,EAAE;MAC7E,IAAME,KAAK,GAAGJ,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAGE,WAAW,CAAC;MAChC,IAAIE,KAAK,IAAI,IAAAC,QAAA,CAAAC,OAAA,EAAOF,KAAK,MAAK,QAAQ,EAAE;QACtC,OAAOF,WAAW;MACpB;IACF;EACF;EAEA,MAAM,IAAIK,KAAK,CAAC,kCAAkC,CAAC;AACrD;AAKO,SAASC,oBAAoBA,CAClClB,KAAY,EACZU,GAAQ,EAEyB;EAAA,IADjCS,oBAA8B,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAEnC,IAAMG,UAAU,GAAG,CAAC,CAAC;EACrB,KAAK,IAAIX,WAAW,GAAG,CAAC,EAAEA,WAAW,GAAG,IAAAC,uBAAe,EAACb,KAAK,CAAC,EAAE,EAAEY,WAAW,EAAE;IAAA,IAAAY,cAAA;IAC7E,IAAMC,WAAU,IAAAD,cAAA,GAAGxB,KAAK,CAACI,MAAM,cAAAoB,cAAA,uBAAZA,cAAA,CAAcnB,MAAM,CAACO,WAAW,CAAC,CAACJ,IAAI;IACzD,IAAIiB,WAAU,IAAI,CAACN,oBAAoB,CAACO,QAAQ,CAACd,WAAW,CAAC,EAAE;MAC7DW,UAAU,CAACE,WAAU,CAAC,GAAGf,GAAG,CAACe,WAAU,CAAC;IAC1C;EACF;EACA,OAAOF,UAAU;AACnB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utf8-encoder.js","names":["Utf8ArrayBufferEncoder","chunkSize","_classCallCheck2","default","_defineProperty2","TextEncoder","_createClass2","key","value","push","_len","arguments","length","strings","Array","_key","_i","_strings","string","totalLength","isFull","getArrayBufferBatch","textEncoder","encode","getStringBatch","buffer","stringChunk","join","exports"],"sources":["../../../../src/lib/encoder-utils/utf8-encoder.ts"],"sourcesContent":["// loaders.gl, MIT License\n\n/* global TextEncoder */\nexport class Utf8ArrayBufferEncoder {\n private readonly chunkSize: number;\n private strings: string[] = [];\n private totalLength = 0;\n private textEncoder: TextEncoder = new TextEncoder();\n\n constructor(chunkSize: number) {\n this.chunkSize = chunkSize;\n }\n\n push(...strings: string[]): void {\n for (const string of strings) {\n this.strings.push(string);\n this.totalLength += string.length;\n }\n }\n\n isFull(): boolean {\n return this.totalLength >= this.chunkSize;\n }\n\n getArrayBufferBatch(): ArrayBufferLike {\n return this.textEncoder.encode(this.getStringBatch()).buffer;\n }\n\n getStringBatch(): string {\n const stringChunk = this.strings.join('');\n this.strings = [];\n this.totalLength = 0;\n return stringChunk;\n }\n}\n"],"mappings":";;;;;;;;;;IAGaA,sBAAsB;EAMjC,SAAAA,uBAAYC,SAAiB,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAH,sBAAA;IAAA,IAAAI,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA,mBAJH,EAAE;IAAA,IAAAC,gBAAA,CAAAD,OAAA,uBACR,CAAC;IAAA,IAAAC,gBAAA,CAAAD,OAAA,uBACY,IAAIE,WAAW,CAAC,CAAC;IAGlD,IAAI,CAACJ,SAAS,GAAGA,SAAS;EAC5B;EAAC,IAAAK,aAAA,CAAAH,OAAA,EAAAH,sBAAA;IAAAO,GAAA;IAAAC,KAAA,EAED,SAAAC,KAAA,EAAiC;MAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAzBC,OAAO,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAPF,OAAO,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MACb,SAAAC,EAAA,MAAAC,QAAA,GAAqBJ,OAAO,EAAAG,EAAA,GAAAC,QAAA,CAAAL,MAAA,EAAAI,EAAA,IAAE;QAAzB,IAAME,MAAM,GAAAD,QAAA,CAAAD,EAAA;QACf,IAAI,CAACH,OAAO,CAACJ,IAAI,CAACS,MAAM,CAAC;QACzB,IAAI,CAACC,WAAW,IAAID,MAAM,CAACN,MAAM;MACnC;IACF;EAAC;IAAAL,GAAA;IAAAC,KAAA,EAED,SAAAY,OAAA,EAAkB;MAChB,OAAO,IAAI,CAACD,WAAW,IAAI,IAAI,CAAClB,SAAS;IAC3C;EAAC;IAAAM,GAAA;IAAAC,KAAA,EAED,SAAAa,oBAAA,EAAuC;MACrC,OAAO,IAAI,CAACC,WAAW,CAACC,MAAM,CAAC,IAAI,CAACC,cAAc,CAAC,CAAC,CAAC,CAACC,MAAM;IAC9D;EAAC;IAAAlB,GAAA;IAAAC,KAAA,EAED,SAAAgB,eAAA,EAAyB;MACvB,IAAME,WAAW,GAAG,IAAI,CAACb,OAAO,CAACc,IAAI,CAAC,EAAE,CAAC;MACzC,IAAI,CAACd,OAAO,GAAG,EAAE;MACjB,IAAI,CAACM,WAAW,GAAG,CAAC;MACpB,OAAOO,WAAW;IACpB;EAAC;EAAA,OAAA1B,sBAAA;AAAA;AAAA4B,OAAA,CAAA5B,sBAAA,GAAAA,sBAAA"}
@@ -6,13 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.encodeTableAsGeojsonInBatches = encodeTableAsGeojsonInBatches;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
10
  var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
12
11
  var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
13
12
  var _schema = require("@loaders.gl/schema");
14
- var _encodeUtils = require("./encode-utils");
15
- var _utf8Encoder = require("./utf8-encoder");
13
+ var _encodeUtils = require("../encoder-utils/encode-utils");
14
+ var _encodeTableRow = require("../encoder-utils/encode-table-row");
15
+ var _utf8Encoder = require("../encoder-utils/utf8-encoder");
16
16
  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
17
  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
18
  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"); }
@@ -24,7 +24,7 @@ function _encodeTableAsGeojsonInBatches() {
24
24
  _encodeTableAsGeojsonInBatches = (0, _wrapAsyncGenerator2.default)(function (batchIterator) {
25
25
  var inputOpts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
26
26
  return _regenerator.default.mark(function _callee() {
27
- var options, utf8Encoder, geometryColumn, isFirstLine, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, batch, table, start, _batch$end, end, rowIndex, arrayBufferBatch;
27
+ var options, utf8Encoder, geometryColumn, isFirstLine, start, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, tableBatch, end, rowIndex, arrayBufferBatch;
28
28
  return _regenerator.default.wrap(function _callee$(_context) {
29
29
  while (1) switch (_context.prev = _context.next) {
30
30
  case 0:
@@ -39,27 +39,28 @@ function _encodeTableAsGeojsonInBatches() {
39
39
  utf8Encoder.push('[');
40
40
  geometryColumn = options.geojson.geometryColumn;
41
41
  isFirstLine = true;
42
+ start = 0;
42
43
  _iteratorAbruptCompletion = false;
43
44
  _didIteratorError = false;
44
- _context.prev = 8;
45
+ _context.prev = 9;
45
46
  _iterator = _asyncIterator(batchIterator);
46
- case 10:
47
- _context.next = 12;
47
+ case 11:
48
+ _context.next = 13;
48
49
  return (0, _awaitAsyncGenerator2.default)(_iterator.next());
49
- case 12:
50
+ case 13:
50
51
  if (!(_iteratorAbruptCompletion = !(_step = _context.sent).done)) {
51
- _context.next = 35;
52
+ _context.next = 37;
52
53
  break;
53
54
  }
54
- batch = _step.value;
55
- table = batch.table, start = batch.start, _batch$end = batch.end, end = _batch$end === void 0 ? (0, _schema.getTableLength)(batch.table) - start : _batch$end;
55
+ tableBatch = _step.value;
56
+ end = start + (0, _schema.getTableLength)(tableBatch);
56
57
  if (!geometryColumn) {
57
- geometryColumn = geometryColumn || (0, _encodeUtils.detectGeometryColumnIndex)(table);
58
+ geometryColumn = geometryColumn || (0, _encodeUtils.detectGeometryColumnIndex)(tableBatch);
58
59
  }
59
60
  rowIndex = start;
60
- case 17:
61
+ case 18:
61
62
  if (!(rowIndex < end)) {
62
- _context.next = 28;
63
+ _context.next = 30;
63
64
  break;
64
65
  }
65
66
  if (!isFirstLine) {
@@ -67,112 +68,74 @@ function _encodeTableAsGeojsonInBatches() {
67
68
  }
68
69
  utf8Encoder.push('\n');
69
70
  isFirstLine = false;
70
- encodeRow(table, rowIndex, geometryColumn, utf8Encoder);
71
+ (0, _encodeTableRow.encodeTableRow)(tableBatch, rowIndex, geometryColumn, utf8Encoder);
71
72
  if (!utf8Encoder.isFull()) {
72
- _context.next = 25;
73
+ _context.next = 26;
73
74
  break;
74
75
  }
75
- _context.next = 25;
76
+ _context.next = 26;
76
77
  return utf8Encoder.getArrayBufferBatch();
77
- case 25:
78
+ case 26:
79
+ start = end;
80
+ case 27:
78
81
  ++rowIndex;
79
- _context.next = 17;
82
+ _context.next = 18;
80
83
  break;
81
- case 28:
84
+ case 30:
82
85
  arrayBufferBatch = utf8Encoder.getArrayBufferBatch();
83
86
  if (!(arrayBufferBatch.byteLength > 0)) {
84
- _context.next = 32;
87
+ _context.next = 34;
85
88
  break;
86
89
  }
87
- _context.next = 32;
90
+ _context.next = 34;
88
91
  return arrayBufferBatch;
89
- case 32:
92
+ case 34:
90
93
  _iteratorAbruptCompletion = false;
91
- _context.next = 10;
92
- break;
93
- case 35:
94
- _context.next = 41;
94
+ _context.next = 11;
95
95
  break;
96
96
  case 37:
97
- _context.prev = 37;
98
- _context.t0 = _context["catch"](8);
97
+ _context.next = 43;
98
+ break;
99
+ case 39:
100
+ _context.prev = 39;
101
+ _context.t0 = _context["catch"](9);
99
102
  _didIteratorError = true;
100
103
  _iteratorError = _context.t0;
101
- case 41:
102
- _context.prev = 41;
103
- _context.prev = 42;
104
+ case 43:
105
+ _context.prev = 43;
106
+ _context.prev = 44;
104
107
  if (!(_iteratorAbruptCompletion && _iterator.return != null)) {
105
- _context.next = 46;
108
+ _context.next = 48;
106
109
  break;
107
110
  }
108
- _context.next = 46;
111
+ _context.next = 48;
109
112
  return (0, _awaitAsyncGenerator2.default)(_iterator.return());
110
- case 46:
111
- _context.prev = 46;
113
+ case 48:
114
+ _context.prev = 48;
112
115
  if (!_didIteratorError) {
113
- _context.next = 49;
116
+ _context.next = 51;
114
117
  break;
115
118
  }
116
119
  throw _iteratorError;
117
- case 49:
118
- return _context.finish(46);
119
- case 50:
120
- return _context.finish(41);
121
120
  case 51:
121
+ return _context.finish(48);
122
+ case 52:
123
+ return _context.finish(43);
124
+ case 53:
122
125
  utf8Encoder.push('\n');
123
126
  utf8Encoder.push(']\n');
124
127
  if (!options.geojson.featureArray) {
125
128
  utf8Encoder.push('}');
126
129
  }
127
- _context.next = 56;
130
+ _context.next = 58;
128
131
  return utf8Encoder.getArrayBufferBatch();
129
- case 56:
132
+ case 58:
130
133
  case "end":
131
134
  return _context.stop();
132
135
  }
133
- }, _callee, null, [[8, 37, 41, 51], [42,, 46, 50]]);
136
+ }, _callee, null, [[9, 39, 43, 53], [44,, 48, 52]]);
134
137
  })();
135
138
  });
136
139
  return _encodeTableAsGeojsonInBatches.apply(this, arguments);
137
140
  }
138
- function encodeRow(table, rowIndex, geometryColumnIndex, utf8Encoder) {
139
- var row = (0, _schema.getTableRowAsObject)(table, rowIndex);
140
- if (!row) return;
141
- var featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);
142
- var featureString = JSON.stringify(featureWithProperties);
143
- utf8Encoder.push(featureString);
144
- }
145
- function getFeatureFromRow(table, row, geometryColumnIndex) {
146
- var _table$schema, _featureOrGeometry, _featureOrGeometry2;
147
- var properties = (0, _encodeUtils.getRowPropertyObject)(table, row, [geometryColumnIndex]);
148
- var columnName = (_table$schema = table.schema) === null || _table$schema === void 0 ? void 0 : _table$schema.fields[geometryColumnIndex].name;
149
- var featureOrGeometry = columnName && row[columnName];
150
- if (!featureOrGeometry) {
151
- return {
152
- type: 'Feature',
153
- geometry: null,
154
- properties: properties
155
- };
156
- }
157
- if (typeof featureOrGeometry === 'string') {
158
- try {
159
- featureOrGeometry = JSON.parse(featureOrGeometry);
160
- } catch (err) {
161
- throw new Error('Invalid string geometry');
162
- }
163
- }
164
- if ((0, _typeof2.default)(featureOrGeometry) !== 'object' || typeof ((_featureOrGeometry = featureOrGeometry) === null || _featureOrGeometry === void 0 ? void 0 : _featureOrGeometry.type) !== 'string') {
165
- throw new Error('invalid geometry column value');
166
- }
167
- if (((_featureOrGeometry2 = featureOrGeometry) === null || _featureOrGeometry2 === void 0 ? void 0 : _featureOrGeometry2.type) === 'Feature') {
168
- return _objectSpread(_objectSpread({}, featureOrGeometry), {}, {
169
- properties: properties
170
- });
171
- }
172
- return {
173
- type: 'Feature',
174
- geometry: featureOrGeometry,
175
- properties: properties
176
- };
177
- }
178
141
  //# sourceMappingURL=geojson-encoder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"geojson-encoder.js","names":["_schema","require","_encodeUtils","_utf8Encoder","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","encodeTableAsGeojsonInBatches","_x","_encodeTableAsGeojsonInBatches","_wrapAsyncGenerator2","batchIterator","inputOpts","undefined","_regenerator","mark","_callee","options","utf8Encoder","geometryColumn","isFirstLine","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","batch","table","start","_batch$end","end","rowIndex","arrayBufferBatch","wrap","_callee$","_context","prev","geojson","chunkSize","Utf8ArrayBufferEncoder","featureArray","_awaitAsyncGenerator2","sent","getTableLength","detectGeometryColumnIndex","encodeRow","isFull","getArrayBufferBatch","byteLength","t0","finish","stop","geometryColumnIndex","row","getTableRowAsObject","featureWithProperties","getFeatureFromRow","featureString","JSON","stringify","_table$schema","_featureOrGeometry","_featureOrGeometry2","properties","getRowPropertyObject","columnName","schema","fields","name","featureOrGeometry","type","geometry","parse","err","Error","_typeof2"],"sources":["../../../../src/lib/encoders/geojson-encoder.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Feature, getTableLength} from '@loaders.gl/schema';\nimport {Table, TableBatch, getTableRowAsObject} from '@loaders.gl/schema';\nimport {detectGeometryColumnIndex, getRowPropertyObject} from './encode-utils';\nimport {Utf8ArrayBufferEncoder} from './utf8-encoder';\n\ntype Row = {[key: string]: unknown};\n\nexport type GeoJSONWriterOptions = {\n geojson?: {\n featureArray?: boolean;\n geometryColumn?: number | null;\n };\n chunkSize?: number;\n};\n\n/**\n * Encode a table as GeoJSON\n */\n// eslint-disable-next-line max-statements\nexport async function* encodeTableAsGeojsonInBatches(\n batchIterator: AsyncIterable<TableBatch>, // | Iterable<TableBatch>,\n inputOpts: GeoJSONWriterOptions = {}\n): AsyncIterable<ArrayBuffer> {\n const options: Required<GeoJSONWriterOptions> = {geojson: {}, chunkSize: 10000, ...inputOpts};\n\n const utf8Encoder = new Utf8ArrayBufferEncoder(options.chunkSize);\n\n if (!options.geojson.featureArray) {\n utf8Encoder.push('{\\n', '\"type\": \"FeatureCollection\",\\n', '\"features\":\\n');\n }\n utf8Encoder.push('['); // Note no newline\n\n let geometryColumn = options.geojson.geometryColumn;\n\n let isFirstLine = true;\n\n for await (const batch of batchIterator) {\n const {table, start, end = getTableLength(batch.table) - start} = batch;\n\n // Deduce geometry column if not already done\n if (!geometryColumn) {\n geometryColumn = geometryColumn || detectGeometryColumnIndex(table);\n }\n\n for (let rowIndex = start; rowIndex < end; ++rowIndex) {\n // Add a comma except on final feature\n if (!isFirstLine) {\n utf8Encoder.push(',');\n }\n utf8Encoder.push('\\n');\n isFirstLine = false;\n\n encodeRow(table, rowIndex, geometryColumn, utf8Encoder);\n\n // eslint-disable-next-line max-depth\n if (utf8Encoder.isFull()) {\n yield utf8Encoder.getArrayBufferBatch();\n }\n }\n const arrayBufferBatch = utf8Encoder.getArrayBufferBatch();\n if (arrayBufferBatch.byteLength > 0) {\n yield arrayBufferBatch;\n }\n }\n\n utf8Encoder.push('\\n');\n\n // Add completing rows and emit final batch\n utf8Encoder.push(']\\n');\n if (!options.geojson.featureArray) {\n utf8Encoder.push('}');\n }\n\n // Note: Since we pushed a few final lines, the last batch will always exist, no need to check first\n yield utf8Encoder.getArrayBufferBatch();\n}\n\n// Helpers\n\n/**\n * Encode a row. Currently this ignores properties in the geometry column.\n */\nfunction encodeRow(\n table: Table,\n rowIndex: number,\n geometryColumnIndex: number,\n utf8Encoder: Utf8ArrayBufferEncoder\n): void {\n const row = getTableRowAsObject(table, rowIndex);\n if (!row) return;\n const featureWithProperties = getFeatureFromRow(table, row, geometryColumnIndex);\n const featureString = JSON.stringify(featureWithProperties);\n utf8Encoder.push(featureString);\n}\n\n/**\n * Encode a row as a Feature. Currently this ignores properties objects in the geometry column.\n */\nfunction getFeatureFromRow(table: Table, row: Row, geometryColumnIndex: number): Feature {\n // Extract non-feature/geometry properties\n const properties = getRowPropertyObject(table, row, [geometryColumnIndex]);\n\n // Extract geometry feature\n const columnName = table.schema?.fields[geometryColumnIndex].name;\n let featureOrGeometry =\n columnName && (row[columnName] as {[key: string]: unknown} | string | null | undefined);\n\n // GeoJSON support null geometries\n if (!featureOrGeometry) {\n // @ts-ignore Feature type does not support null geometries\n return {type: 'Feature', geometry: null, properties};\n }\n\n // Support string geometries?\n // TODO: This assumes GeoJSON strings, which may not be the correct format\n // (could be WKT, encoded WKB...)\n if (typeof featureOrGeometry === 'string') {\n try {\n featureOrGeometry = JSON.parse(featureOrGeometry);\n } catch (err) {\n throw new Error('Invalid string geometry');\n }\n }\n\n if (typeof featureOrGeometry !== 'object' || typeof featureOrGeometry?.type !== 'string') {\n throw new Error('invalid geometry column value');\n }\n\n if (featureOrGeometry?.type === 'Feature') {\n // @ts-ignore Feature type does not support null geometries\n return {...featureOrGeometry, properties};\n }\n\n // @ts-ignore Feature type does not support null geometries\n return {type: 'Feature', geometry: featureOrGeometry, properties};\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"geojson-encoder.js","names":["_schema","require","_encodeUtils","_encodeTableRow","_utf8Encoder","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","encodeTableAsGeojsonInBatches","_x","_encodeTableAsGeojsonInBatches","_wrapAsyncGenerator2","batchIterator","inputOpts","undefined","_regenerator","mark","_callee","options","utf8Encoder","geometryColumn","isFirstLine","start","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","tableBatch","end","rowIndex","arrayBufferBatch","wrap","_callee$","_context","prev","geojson","chunkSize","Utf8ArrayBufferEncoder","featureArray","_awaitAsyncGenerator2","sent","getTableLength","detectGeometryColumnIndex","encodeTableRow","isFull","getArrayBufferBatch","byteLength","t0","finish","stop"],"sources":["../../../../src/lib/encoders/geojson-encoder.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport type {TableBatch} from '@loaders.gl/schema';\nimport {getTableLength} from '@loaders.gl/schema';\nimport {detectGeometryColumnIndex} from '../encoder-utils/encode-utils';\nimport {encodeTableRow} from '../encoder-utils/encode-table-row';\nimport {Utf8ArrayBufferEncoder} from '../encoder-utils/utf8-encoder';\nimport type {GeoJSONWriterOptions} from '../../geojson-writer';\n\n/**\n * Encode a table as GeoJSON\n */\n// eslint-disable-next-line max-statements\nexport async function* encodeTableAsGeojsonInBatches(\n batchIterator: AsyncIterable<TableBatch>, // | Iterable<TableBatch>,\n inputOpts: GeoJSONWriterOptions = {}\n): AsyncIterable<ArrayBuffer> {\n // @ts-expect-error\n const options: Required<GeoJSONWriterOptions> = {geojson: {}, chunkSize: 10000, ...inputOpts};\n\n const utf8Encoder = new Utf8ArrayBufferEncoder(options.chunkSize);\n\n if (!options.geojson.featureArray) {\n utf8Encoder.push('{\\n', '\"type\": \"FeatureCollection\",\\n', '\"features\":\\n');\n }\n utf8Encoder.push('['); // Note no newline\n\n let geometryColumn = options.geojson.geometryColumn;\n\n let isFirstLine = true;\n\n let start = 0;\n for await (const tableBatch of batchIterator) {\n const end = start + getTableLength(tableBatch);\n\n // Deduce geometry column if not already done\n if (!geometryColumn) {\n geometryColumn = geometryColumn || detectGeometryColumnIndex(tableBatch);\n }\n\n for (let rowIndex = start; rowIndex < end; ++rowIndex) {\n // Add a comma except on final feature\n if (!isFirstLine) {\n utf8Encoder.push(',');\n }\n utf8Encoder.push('\\n');\n isFirstLine = false;\n\n encodeTableRow(tableBatch, rowIndex, geometryColumn, utf8Encoder);\n\n // eslint-disable-next-line max-depth\n if (utf8Encoder.isFull()) {\n yield utf8Encoder.getArrayBufferBatch();\n }\n\n start = end;\n }\n\n const arrayBufferBatch = utf8Encoder.getArrayBufferBatch();\n if (arrayBufferBatch.byteLength > 0) {\n yield arrayBufferBatch;\n }\n }\n\n utf8Encoder.push('\\n');\n\n // Add completing rows and emit final batch\n utf8Encoder.push(']\\n');\n if (!options.geojson.featureArray) {\n utf8Encoder.push('}');\n }\n\n // Note: Since we pushed a few final lines, the last batch will always exist, no need to check first\n yield utf8Encoder.getArrayBufferBatch();\n}\n"],"mappings":"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"}
@@ -8,9 +8,9 @@ var _schema = require("@loaders.gl/schema");
8
8
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
9
9
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
10
10
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
- function encodeTableAsJSON(table) {
12
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
13
- var shape = options.shape || 'object-row-table';
11
+ function encodeTableAsJSON(table, options) {
12
+ var _options$json;
13
+ var shape = (options === null || options === void 0 ? void 0 : (_options$json = options.json) === null || _options$json === void 0 ? void 0 : _options$json.shape) || 'object-row-table';
14
14
  var strings = [];
15
15
  var rowIterator = (0, _schema.makeRowIterator)(table, shape);
16
16
  var _iterator = _createForOfIteratorHelper(rowIterator),
@@ -1 +1 @@
1
- {"version":3,"file":"json-encoder.js","names":["_schema","require","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","encodeTableAsJSON","table","options","arguments","undefined","shape","strings","rowIterator","makeRowIterator","_iterator","_step","row","push","JSON","stringify","concat","join"],"sources":["../../../../src/lib/encoders/json-encoder.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Table, makeRowIterator} from '@loaders.gl/schema';\n\ntype RowArray = unknown[];\ntype RowObject = {[key: string]: unknown};\ntype TableJSON = RowArray[] | RowObject[];\n\nexport type JSONWriterOptions = {\n shape?: 'object-row-table' | 'array-row-table';\n wrapper?: (table: TableJSON) => unknown;\n};\n\n/**\n * Encode a table as a JSON string\n */\nexport function encodeTableAsJSON(table: Table, options: JSONWriterOptions = {}): string {\n const shape = options.shape || 'object-row-table';\n\n const strings: string[] = [];\n const rowIterator = makeRowIterator(table, shape);\n for (const row of rowIterator) {\n // Round elements etc\n // processRow(wrappedRow, table.schema);\n // const wrappedRow = options.wrapper ? options.wrapper(row) : row;\n strings.push(JSON.stringify(row));\n }\n return `[${strings.join(',')}]`;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"json-encoder.js","names":["_schema","require","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","encodeTableAsJSON","table","options","_options$json","shape","json","strings","rowIterator","makeRowIterator","_iterator","_step","row","push","JSON","stringify","concat","join"],"sources":["../../../../src/lib/encoders/json-encoder.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Copyright 2022 Foursquare Labs, Inc.\n\nimport {Table, makeRowIterator} from '@loaders.gl/schema';\nimport type {JSONWriterOptions} from '../../json-writer';\n\n/**\n * Encode a table as a JSON string\n */\nexport function encodeTableAsJSON(table: Table, options?: JSONWriterOptions): string {\n const shape = options?.json?.shape || 'object-row-table';\n\n const strings: string[] = [];\n const rowIterator = makeRowIterator(table, shape);\n for (const row of rowIterator) {\n // Round elements etc\n // processRow(wrappedRow, table.schema);\n // const wrappedRow = options.wrapper ? options.wrapper(row) : row;\n strings.push(JSON.stringify(row));\n }\n return `[${strings.join(',')}]`;\n}\n"],"mappings":"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"}
@@ -36,7 +36,7 @@ function _parseJSONInBatches() {
36
36
  _ref = options.json || {}, jsonpaths = _ref.jsonpaths;
37
37
  isFirstChunk = true;
38
38
  schema = null;
39
- shape = (options === null || options === void 0 ? void 0 : (_options$json = options.json) === null || _options$json === void 0 ? void 0 : _options$json.shape) || 'row-table';
39
+ shape = (options === null || options === void 0 ? void 0 : (_options$json = options.json) === null || _options$json === void 0 ? void 0 : _options$json.shape) || 'object-row-table';
40
40
  tableBatchBuilder = new _schema.TableBatchBuilder(schema, _objectSpread(_objectSpread({}, options), {}, {
41
41
  shape: shape
42
42
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"parse-json-in-batches.js","names":["_schema","require","_loaderUtils","_streamingJsonParser","_interopRequireDefault","_jsonpath2","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","asyncIterator","AsyncFromSyncIterator","AsyncFromSyncIteratorContinuation","r","Promise","reject","resolve","then","_return","ret","throw","_throw","thr","parseJSONInBatches","_x","_x2","_parseJSONInBatches","_wrapAsyncGenerator2","_regenerator","mark","_callee","binaryAsyncIterator","options","_options$json","metadata","_ref","jsonpaths","isFirstChunk","schema","shape","tableBatchBuilder","parser","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","chunk","rows","_jsonpath","initialBatch","_iterator2","_step2","row","_batch2","_batch","jsonpath","batch","finalBatch","wrap","_callee$","_context","prev","makeTextDecoderIterator","json","TableBatchBuilder","StreamingJSONParser","_awaitAsyncGenerator2","sent","write","getStreamingJsonPathAsString","batchType","data","bytesUsed","container","getPartialResult","addRow","getFullBatch","t0","finish","chunkComplete","t1","getFinalBatch","stop","rebuildJsonObject","assert","topLevelObject","streamingPath","JSONPath","setFieldAtPath"],"sources":["../../../../src/lib/parsers/parse-json-in-batches.ts"],"sourcesContent":["import type {TableBatch} from '@loaders.gl/schema';\nimport type {JSONLoaderOptions} from '../../json-loader';\nimport {TableBatchBuilder} from '@loaders.gl/schema';\nimport {assert, makeTextDecoderIterator} from '@loaders.gl/loader-utils';\nimport StreamingJSONParser from '../json-parser/streaming-json-parser';\nimport JSONPath from '../jsonpath/jsonpath';\n\n// TODO - support batch size 0 = no batching/single batch?\n// eslint-disable-next-line max-statements, complexity\nexport async function* parseJSONInBatches(\n binaryAsyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options: JSONLoaderOptions\n): AsyncIterable<TableBatch> {\n const asyncIterator = makeTextDecoderIterator(binaryAsyncIterator);\n\n const {metadata} = options;\n const {jsonpaths} = options.json || {};\n\n let isFirstChunk: boolean = true;\n\n // TODO fix Schema deduction\n const schema = null; // new Schema([]);\n const shape = options?.json?.shape || 'row-table';\n // @ts-ignore\n const tableBatchBuilder = new TableBatchBuilder(schema, {\n ...options,\n shape\n });\n\n const parser = new StreamingJSONParser({jsonpaths});\n\n for await (const chunk of asyncIterator) {\n const rows = parser.write(chunk);\n\n const jsonpath = rows.length > 0 && parser.getStreamingJsonPathAsString();\n\n if (rows.length > 0 && isFirstChunk) {\n if (metadata) {\n const initialBatch: TableBatch = {\n // Common fields\n shape,\n batchType: 'partial-result',\n data: [],\n length: 0,\n bytesUsed: 0,\n // JSON additions\n container: parser.getPartialResult(),\n jsonpath\n };\n yield initialBatch;\n }\n isFirstChunk = false;\n // schema = deduceSchema(rows);\n }\n\n // Add the row\n for (const row of rows) {\n tableBatchBuilder.addRow(row);\n // If a batch has been completed, emit it\n const batch = tableBatchBuilder.getFullBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n }\n\n tableBatchBuilder.chunkComplete(chunk);\n const batch = tableBatchBuilder.getFullBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n }\n\n // yield final batch\n const jsonpath = parser.getStreamingJsonPathAsString();\n const batch = tableBatchBuilder.getFinalBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n\n if (metadata) {\n const finalBatch: TableBatch = {\n shape,\n batchType: 'final-result',\n container: parser.getPartialResult(),\n jsonpath: parser.getStreamingJsonPathAsString(),\n data: [],\n length: 0\n // schema: null\n };\n yield finalBatch;\n }\n}\n\nexport function rebuildJsonObject(batch, data) {\n // Last batch will have this special type and will provide all the root object of the parsed file\n assert(batch.batchType === 'final-result');\n\n // The streamed JSON data is a top level array (jsonpath = '$'), just return the array of row objects\n if (batch.jsonpath === '$') {\n return data;\n }\n\n // (jsonpath !== '$') The streamed data is not a top level array, so stitch it back in to the top-level object\n if (batch.jsonpath && batch.jsonpath.length > 1) {\n const topLevelObject = batch.container;\n const streamingPath = new JSONPath(batch.jsonpath);\n streamingPath.setFieldAtPath(topLevelObject, data);\n return topLevelObject;\n }\n\n // No jsonpath, in this case nothing was streamed.\n return batch.container;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-json-in-batches.js","names":["_schema","require","_loaderUtils","_streamingJsonParser","_interopRequireDefault","_jsonpath2","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","asyncIterator","AsyncFromSyncIterator","AsyncFromSyncIteratorContinuation","r","Promise","reject","resolve","then","_return","ret","throw","_throw","thr","parseJSONInBatches","_x","_x2","_parseJSONInBatches","_wrapAsyncGenerator2","_regenerator","mark","_callee","binaryAsyncIterator","options","_options$json","metadata","_ref","jsonpaths","isFirstChunk","schema","shape","tableBatchBuilder","parser","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","chunk","rows","_jsonpath","initialBatch","_iterator2","_step2","row","_batch2","_batch","jsonpath","batch","finalBatch","wrap","_callee$","_context","prev","makeTextDecoderIterator","json","TableBatchBuilder","StreamingJSONParser","_awaitAsyncGenerator2","sent","write","getStreamingJsonPathAsString","batchType","data","bytesUsed","container","getPartialResult","addRow","getFullBatch","t0","finish","chunkComplete","t1","getFinalBatch","stop","rebuildJsonObject","assert","topLevelObject","streamingPath","JSONPath","setFieldAtPath"],"sources":["../../../../src/lib/parsers/parse-json-in-batches.ts"],"sourcesContent":["import type {TableBatch} from '@loaders.gl/schema';\nimport type {JSONLoaderOptions} from '../../json-loader';\nimport {TableBatchBuilder} from '@loaders.gl/schema';\nimport {assert, makeTextDecoderIterator} from '@loaders.gl/loader-utils';\nimport StreamingJSONParser from '../json-parser/streaming-json-parser';\nimport JSONPath from '../jsonpath/jsonpath';\n\n// TODO - support batch size 0 = no batching/single batch?\n// eslint-disable-next-line max-statements, complexity\nexport async function* parseJSONInBatches(\n binaryAsyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options: JSONLoaderOptions\n): AsyncIterable<TableBatch> {\n const asyncIterator = makeTextDecoderIterator(binaryAsyncIterator);\n\n const {metadata} = options;\n const {jsonpaths} = options.json || {};\n\n let isFirstChunk: boolean = true;\n\n // TODO fix Schema deduction\n const schema = null; // new Schema([]);\n // TODO - detect shape from data?\n const shape = options?.json?.shape || 'object-row-table';\n // @ts-ignore\n const tableBatchBuilder = new TableBatchBuilder(schema, {\n ...options,\n shape\n });\n\n const parser = new StreamingJSONParser({jsonpaths});\n\n for await (const chunk of asyncIterator) {\n const rows = parser.write(chunk);\n\n const jsonpath = rows.length > 0 && parser.getStreamingJsonPathAsString();\n\n if (rows.length > 0 && isFirstChunk) {\n if (metadata) {\n const initialBatch: TableBatch = {\n // Common fields\n shape,\n batchType: 'partial-result',\n data: [],\n length: 0,\n bytesUsed: 0,\n // JSON additions\n container: parser.getPartialResult(),\n jsonpath\n };\n yield initialBatch;\n }\n isFirstChunk = false;\n // schema = deduceSchema(rows);\n }\n\n // Add the row\n for (const row of rows) {\n tableBatchBuilder.addRow(row);\n // If a batch has been completed, emit it\n const batch = tableBatchBuilder.getFullBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n }\n\n tableBatchBuilder.chunkComplete(chunk);\n const batch = tableBatchBuilder.getFullBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n }\n\n // yield final batch\n const jsonpath = parser.getStreamingJsonPathAsString();\n const batch = tableBatchBuilder.getFinalBatch({jsonpath});\n if (batch) {\n yield batch;\n }\n\n if (metadata) {\n const finalBatch: TableBatch = {\n shape,\n batchType: 'final-result',\n container: parser.getPartialResult(),\n jsonpath: parser.getStreamingJsonPathAsString(),\n data: [],\n length: 0\n // schema: null\n };\n yield finalBatch;\n }\n}\n\nexport function rebuildJsonObject(batch, data) {\n // Last batch will have this special type and will provide all the root object of the parsed file\n assert(batch.batchType === 'final-result');\n\n // The streamed JSON data is a top level array (jsonpath = '$'), just return the array of row objects\n if (batch.jsonpath === '$') {\n return data;\n }\n\n // (jsonpath !== '$') The streamed data is not a top level array, so stitch it back in to the top-level object\n if (batch.jsonpath && batch.jsonpath.length > 1) {\n const topLevelObject = batch.container;\n const streamingPath = new JSONPath(batch.jsonpath);\n streamingPath.setFieldAtPath(topLevelObject, data);\n return topLevelObject;\n }\n\n // No jsonpath, in this case nothing was streamed.\n return batch.container;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-ndjson-in-batches.js","names":["_schema","require","_loaderUtils","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","parseNDJSONInBatches","_x","_x2","_parseNDJSONInBatches","_wrapAsyncGenerator2","_regenerator","mark","_callee","binaryAsyncIterator","options","textIterator","lineIterator","numberedLineIterator","schema","shape","tableBatchBuilder","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","_step$value","counter","line","row","_batch","batch","wrap","_callee$","_context","prev","makeTextDecoderIterator","makeLineIterator","makeNumberedLineIterator","TableBatchBuilder","_awaitAsyncGenerator2","sent","JSON","parse","addRow","chunkComplete","getFullBatch","t0","Error","concat","t1","finish","getFinalBatch","stop"],"sources":["../../../../src/lib/parsers/parse-ndjson-in-batches.ts"],"sourcesContent":["import type {Batch} from '@loaders.gl/schema';\nimport {TableBatchBuilder} from '@loaders.gl/schema';\nimport {\n LoaderOptions,\n makeLineIterator,\n makeNumberedLineIterator,\n makeTextDecoderIterator\n} from '@loaders.gl/loader-utils';\n\nexport async function* parseNDJSONInBatches(\n binaryAsyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: LoaderOptions\n): AsyncIterable<Batch> {\n const textIterator = makeTextDecoderIterator(binaryAsyncIterator);\n const lineIterator = makeLineIterator(textIterator);\n const numberedLineIterator = makeNumberedLineIterator(lineIterator);\n\n const schema = null;\n const shape = 'row-table';\n // @ts-ignore\n const tableBatchBuilder = new TableBatchBuilder(schema, {\n ...options,\n shape\n });\n\n for await (const {counter, line} of numberedLineIterator) {\n try {\n const row = JSON.parse(line);\n tableBatchBuilder.addRow(row);\n tableBatchBuilder.chunkComplete(line);\n const batch = tableBatchBuilder.getFullBatch();\n if (batch) {\n yield batch;\n }\n } catch (error) {\n throw new Error(`NDJSONLoader: failed to parse JSON on line ${counter}`);\n }\n }\n\n const batch = tableBatchBuilder.getFinalBatch();\n if (batch) {\n yield batch;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"parse-ndjson-in-batches.js","names":["_schema","require","_loaderUtils","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","parseNDJSONInBatches","_x","_x2","_parseNDJSONInBatches","_wrapAsyncGenerator2","_regenerator","mark","_callee","binaryAsyncIterator","options","textIterator","lineIterator","numberedLineIterator","schema","shape","tableBatchBuilder","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","_step$value","counter","line","row","_batch","batch","wrap","_callee$","_context","prev","makeTextDecoderIterator","makeLineIterator","makeNumberedLineIterator","TableBatchBuilder","_awaitAsyncGenerator2","sent","JSON","parse","addRow","chunkComplete","getFullBatch","t0","Error","concat","t1","finish","getFinalBatch","stop"],"sources":["../../../../src/lib/parsers/parse-ndjson-in-batches.ts"],"sourcesContent":["import type {TableBatch} from '@loaders.gl/schema';\nimport {TableBatchBuilder} from '@loaders.gl/schema';\nimport {\n LoaderOptions,\n makeLineIterator,\n makeNumberedLineIterator,\n makeTextDecoderIterator\n} from '@loaders.gl/loader-utils';\n\nexport async function* parseNDJSONInBatches(\n binaryAsyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n options?: LoaderOptions\n): AsyncIterable<TableBatch> {\n const textIterator = makeTextDecoderIterator(binaryAsyncIterator);\n const lineIterator = makeLineIterator(textIterator);\n const numberedLineIterator = makeNumberedLineIterator(lineIterator);\n\n const schema = null;\n const shape = 'row-table';\n // @ts-ignore\n const tableBatchBuilder = new TableBatchBuilder(schema, {\n ...options,\n shape\n });\n\n for await (const {counter, line} of numberedLineIterator) {\n try {\n const row = JSON.parse(line);\n tableBatchBuilder.addRow(row);\n tableBatchBuilder.chunkComplete(line);\n const batch = tableBatchBuilder.getFullBatch();\n if (batch) {\n yield batch;\n }\n } catch (error) {\n throw new Error(`NDJSONLoader: failed to parse JSON on line ${counter}`);\n }\n }\n\n const batch = tableBatchBuilder.getFinalBatch();\n if (batch) {\n yield batch;\n }\n}\n"],"mappings":"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"}
@@ -4,20 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports._typecheckNDJSONLoader = exports.NDJSONLoader = void 0;
7
+ exports.NDJSONLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _parseNdjson = require("./lib/parsers/parse-ndjson");
11
11
  var _parseNdjsonInBatches = require("./lib/parsers/parse-ndjson-in-batches");
12
- var VERSION = typeof "4.0.0-alpha.8" !== 'undefined' ? "4.0.0-alpha.8" : 'latest';
13
- var DEFAULT_NDGEOJSON_LOADER_OPTIONS = {
14
- geojson: {
15
- shape: 'object-row-table'
16
- },
17
- gis: {
18
- format: 'geojson'
19
- }
20
- };
12
+ var VERSION = typeof "4.0.0-beta.1" !== 'undefined' ? "4.0.0-beta.1" : 'latest';
21
13
  var NDJSONLoader = {
22
14
  name: 'NDJSON',
23
15
  id: 'ndjson',
@@ -46,9 +38,14 @@ var NDJSONLoader = {
46
38
  }(),
47
39
  parseTextSync: _parseNdjson.parseNDJSONSync,
48
40
  parseInBatches: _parseNdjsonInBatches.parseNDJSONInBatches,
49
- options: DEFAULT_NDGEOJSON_LOADER_OPTIONS
41
+ options: {
42
+ geojson: {
43
+ shape: 'object-row-table'
44
+ },
45
+ gis: {
46
+ format: 'geojson'
47
+ }
48
+ }
50
49
  };
51
50
  exports.NDJSONLoader = NDJSONLoader;
52
- var _typecheckNDJSONLoader = NDJSONLoader;
53
- exports._typecheckNDJSONLoader = _typecheckNDJSONLoader;
54
51
  //# sourceMappingURL=ndgeoson-loader.js.map