@loaders.gl/shapefile 3.1.0-alpha.4 → 3.1.0-beta.3

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 (110) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +7554 -0
  4. package/dist/dbf-loader.d.ts +8 -0
  5. package/dist/dbf-loader.d.ts.map +1 -0
  6. package/dist/dbf-loader.js +32 -0
  7. package/dist/dbf-worker.js +912 -2
  8. package/dist/es5/bundle.js +1 -1
  9. package/dist/es5/bundle.js.map +1 -1
  10. package/dist/es5/dbf-loader.js +5 -40
  11. package/dist/es5/dbf-loader.js.map +1 -1
  12. package/dist/es5/index.js +5 -5
  13. package/dist/es5/lib/parsers/parse-dbf.js +86 -232
  14. package/dist/es5/lib/parsers/parse-dbf.js.map +1 -1
  15. package/dist/es5/lib/parsers/parse-shapefile.js +151 -404
  16. package/dist/es5/lib/parsers/parse-shapefile.js.map +1 -1
  17. package/dist/es5/lib/parsers/parse-shp-geometry.js +49 -96
  18. package/dist/es5/lib/parsers/parse-shp-geometry.js.map +1 -1
  19. package/dist/es5/lib/parsers/parse-shp-header.js +4 -4
  20. package/dist/es5/lib/parsers/parse-shp-header.js.map +1 -1
  21. package/dist/es5/lib/parsers/parse-shp.js +47 -165
  22. package/dist/es5/lib/parsers/parse-shp.js.map +1 -1
  23. package/dist/es5/lib/parsers/parse-shx.js +11 -11
  24. package/dist/es5/lib/parsers/parse-shx.js.map +1 -1
  25. package/dist/es5/lib/streaming/binary-chunk-reader.js +99 -172
  26. package/dist/es5/lib/streaming/binary-chunk-reader.js.map +1 -1
  27. package/dist/es5/lib/streaming/binary-reader.js +24 -35
  28. package/dist/es5/lib/streaming/binary-reader.js.map +1 -1
  29. package/dist/es5/lib/streaming/zip-batch-iterators.js +37 -96
  30. package/dist/es5/lib/streaming/zip-batch-iterators.js.map +1 -1
  31. package/dist/es5/shapefile-loader.js +3 -3
  32. package/dist/es5/shapefile-loader.js.map +1 -1
  33. package/dist/es5/shp-loader.js +6 -41
  34. package/dist/es5/shp-loader.js.map +1 -1
  35. package/dist/es5/workers/dbf-worker.js +7 -3
  36. package/dist/es5/workers/dbf-worker.js.map +1 -0
  37. package/dist/es5/workers/shp-worker.js +7 -3
  38. package/dist/es5/workers/shp-worker.js.map +1 -0
  39. package/dist/esm/dbf-loader.js +1 -1
  40. package/dist/esm/dbf-loader.js.map +1 -1
  41. package/dist/esm/lib/parsers/parse-dbf.js +4 -6
  42. package/dist/esm/lib/parsers/parse-dbf.js.map +1 -1
  43. package/dist/esm/lib/parsers/parse-shapefile.js +1 -1
  44. package/dist/esm/lib/parsers/parse-shapefile.js.map +1 -1
  45. package/dist/esm/lib/parsers/parse-shp-geometry.js +1 -1
  46. package/dist/esm/lib/parsers/parse-shp-geometry.js.map +1 -1
  47. package/dist/esm/lib/parsers/parse-shp-header.js +2 -2
  48. package/dist/esm/lib/parsers/parse-shp-header.js.map +1 -1
  49. package/dist/esm/lib/parsers/parse-shp.js +2 -2
  50. package/dist/esm/lib/parsers/parse-shp.js.map +1 -1
  51. package/dist/esm/shapefile-loader.js +1 -1
  52. package/dist/esm/shapefile-loader.js.map +1 -1
  53. package/dist/esm/shp-loader.js +1 -1
  54. package/dist/esm/shp-loader.js.map +1 -1
  55. package/dist/esm/workers/dbf-worker.js +3 -3
  56. package/dist/esm/workers/dbf-worker.js.map +1 -0
  57. package/dist/esm/workers/shp-worker.js +3 -3
  58. package/dist/esm/workers/shp-worker.js.map +1 -0
  59. package/dist/index.d.ts +4 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +11 -0
  62. package/dist/lib/parsers/parse-dbf.d.ts +28 -0
  63. package/dist/lib/parsers/parse-dbf.d.ts.map +1 -0
  64. package/dist/lib/parsers/parse-dbf.js +335 -0
  65. package/dist/lib/parsers/parse-shapefile.d.ts +54 -0
  66. package/dist/lib/parsers/parse-shapefile.d.ts.map +1 -0
  67. package/dist/lib/parsers/parse-shapefile.js +245 -0
  68. package/dist/lib/parsers/parse-shp-geometry.d.ts +11 -0
  69. package/dist/lib/parsers/parse-shp-geometry.d.ts.map +1 -0
  70. package/dist/lib/parsers/parse-shp-geometry.js +287 -0
  71. package/dist/lib/parsers/parse-shp-header.d.ts +26 -0
  72. package/dist/lib/parsers/parse-shp-header.d.ts.map +1 -0
  73. package/dist/lib/parsers/parse-shp-header.js +43 -0
  74. package/dist/lib/parsers/parse-shp.d.ts +9 -0
  75. package/dist/lib/parsers/parse-shp.d.ts.map +1 -0
  76. package/dist/lib/parsers/parse-shp.js +170 -0
  77. package/dist/lib/parsers/parse-shx.d.ts +10 -0
  78. package/dist/lib/parsers/parse-shx.d.ts.map +1 -0
  79. package/dist/lib/parsers/parse-shx.js +28 -0
  80. package/dist/lib/streaming/binary-chunk-reader.d.ts +59 -0
  81. package/dist/lib/streaming/binary-chunk-reader.d.ts.map +1 -0
  82. package/dist/lib/streaming/binary-chunk-reader.js +161 -0
  83. package/dist/lib/streaming/binary-reader.d.ts +32 -0
  84. package/dist/lib/streaming/binary-reader.d.ts.map +1 -0
  85. package/dist/lib/streaming/binary-reader.js +52 -0
  86. package/dist/lib/streaming/zip-batch-iterators.d.ts +8 -0
  87. package/dist/lib/streaming/zip-batch-iterators.d.ts.map +1 -0
  88. package/dist/lib/streaming/zip-batch-iterators.js +61 -0
  89. package/dist/shapefile-loader.d.ts +26 -0
  90. package/dist/shapefile-loader.d.ts.map +1 -0
  91. package/dist/shapefile-loader.js +31 -0
  92. package/dist/shp-loader.d.ts +9 -0
  93. package/dist/shp-loader.d.ts.map +1 -0
  94. package/dist/shp-loader.js +35 -0
  95. package/dist/shp-worker.js +606 -2
  96. package/dist/workers/dbf-worker.d.ts +2 -0
  97. package/dist/workers/dbf-worker.d.ts.map +1 -0
  98. package/dist/workers/dbf-worker.js +5 -0
  99. package/dist/workers/shp-worker.d.ts +2 -0
  100. package/dist/workers/shp-worker.d.ts.map +1 -0
  101. package/dist/workers/shp-worker.js +5 -0
  102. package/package.json +10 -10
  103. package/src/lib/parsers/parse-dbf.ts +5 -3
  104. package/src/lib/parsers/parse-shp-geometry.ts +1 -1
  105. package/src/workers/{dbf-worker.js → dbf-worker.ts} +0 -0
  106. package/src/workers/{shp-worker.js → shp-worker.ts} +0 -0
  107. package/dist/dbf-worker.js.map +0 -1
  108. package/dist/dist.min.js +0 -2
  109. package/dist/dist.min.js.map +0 -1
  110. package/dist/shp-worker.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var moduleExports = require('./index');
3
+ const moduleExports = require('./index');
4
4
 
5
5
  globalThis.loaders = globalThis.loaders || {};
6
6
  module.exports = Object.assign(globalThis.loaders, moduleExports);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
1
+ {"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":";;AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
@@ -1,26 +1,14 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports.DBFLoader = exports.DBFWorkerLoader = void 0;
9
7
 
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
8
  var _parseDbf = require("./lib/parsers/parse-dbf");
17
9
 
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
19
-
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
21
-
22
- var VERSION = typeof "3.1.0-alpha.4" !== 'undefined' ? "3.1.0-alpha.4" : 'latest';
23
- var DBFWorkerLoader = {
10
+ const VERSION = typeof "3.1.0-beta.3" !== 'undefined' ? "3.1.0-beta.3" : 'latest';
11
+ const DBFWorkerLoader = {
24
12
  name: 'DBF',
25
13
  id: 'dbf',
26
14
  module: 'shapefile',
@@ -36,33 +24,10 @@ var DBFWorkerLoader = {
36
24
  }
37
25
  };
38
26
  exports.DBFWorkerLoader = DBFWorkerLoader;
39
-
40
- var DBFLoader = _objectSpread(_objectSpread({}, DBFWorkerLoader), {}, {
41
- parse: function () {
42
- var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
43
- return _regenerator.default.wrap(function _callee$(_context) {
44
- while (1) {
45
- switch (_context.prev = _context.next) {
46
- case 0:
47
- return _context.abrupt("return", (0, _parseDbf.parseDBF)(arrayBuffer, options));
48
-
49
- case 1:
50
- case "end":
51
- return _context.stop();
52
- }
53
- }
54
- }, _callee);
55
- }));
56
-
57
- function parse(_x, _x2) {
58
- return _parse.apply(this, arguments);
59
- }
60
-
61
- return parse;
62
- }(),
27
+ const DBFLoader = { ...DBFWorkerLoader,
28
+ parse: async (arrayBuffer, options) => (0, _parseDbf.parseDBF)(arrayBuffer, options),
63
29
  parseSync: _parseDbf.parseDBF,
64
30
  parseInBatches: _parseDbf.parseDBFInBatches
65
- });
66
-
31
+ };
67
32
  exports.DBFLoader = DBFLoader;
68
33
  //# sourceMappingURL=dbf-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/dbf-loader.ts"],"names":["VERSION","DBFWorkerLoader","name","id","module","version","worker","category","extensions","mimeTypes","options","dbf","encoding","DBFLoader","parse","arrayBuffer","parseSync","parseDBF","parseInBatches","parseDBFInBatches"],"mappings":";;;;;;;;;;;;;;;AACA;;;;;;AAIA,IAAMA,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE;AAKO,IAAMC,eAAuB,GAAG;AACrCC,EAAAA,IAAI,EAAE,KAD+B;AAErCC,EAAAA,EAAE,EAAE,KAFiC;AAGrCC,EAAAA,MAAM,EAAE,WAH6B;AAIrCC,EAAAA,OAAO,EAAEL,OAJ4B;AAKrCM,EAAAA,MAAM,EAAE,IAL6B;AAMrCC,EAAAA,QAAQ,EAAE,OAN2B;AAOrCC,EAAAA,UAAU,EAAE,CAAC,KAAD,CAPyB;AAQrCC,EAAAA,SAAS,EAAE,CAAC,mBAAD,CAR0B;AASrCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AACHC,MAAAA,QAAQ,EAAE;AADP;AADE;AAT4B,CAAhC;;;AAiBA,IAAMC,SAA2B,mCACnCZ,eADmC;AAEtCa,EAAAA,KAAK;AAAA,2EAAE,iBAAOC,WAAP,EAAoBL,OAApB;AAAA;AAAA;AAAA;AAAA;AAAA,+CAAgC,wBAASK,WAAT,EAAsBL,OAAtB,CAAhC;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA,KAFiC;AAGtCM,EAAAA,SAAS,EAAEC,kBAH2B;AAItCC,EAAAA,cAAc,EAAEC;AAJsB,EAAjC","sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {parseDBF, parseDBFInBatches} from './lib/parsers/parse-dbf';\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\n/**\n * DBFLoader - DBF files are used to contain non-geometry columns in Shapefiles\n */\nexport const DBFWorkerLoader: Loader = {\n name: 'DBF',\n id: 'dbf',\n module: 'shapefile',\n version: VERSION,\n worker: true,\n category: 'table',\n extensions: ['dbf'],\n mimeTypes: ['application/x-dbf'],\n options: {\n dbf: {\n encoding: 'latin1'\n }\n }\n};\n\n/** DBF file loader */\nexport const DBFLoader: LoaderWithParser = {\n ...DBFWorkerLoader,\n parse: async (arrayBuffer, options) => parseDBF(arrayBuffer, options),\n parseSync: parseDBF,\n parseInBatches: parseDBFInBatches\n};\n"],"file":"dbf-loader.js"}
1
+ {"version":3,"sources":["../../src/dbf-loader.ts"],"names":["VERSION","DBFWorkerLoader","name","id","module","version","worker","category","extensions","mimeTypes","options","dbf","encoding","DBFLoader","parse","arrayBuffer","parseSync","parseDBF","parseInBatches","parseDBFInBatches"],"mappings":";;;;;;;AACA;;AAIA,MAAMA,OAAO,GAAG,0BAAuB,WAAvB,oBAAmD,QAAnE;AAKO,MAAMC,eAAuB,GAAG;AACrCC,EAAAA,IAAI,EAAE,KAD+B;AAErCC,EAAAA,EAAE,EAAE,KAFiC;AAGrCC,EAAAA,MAAM,EAAE,WAH6B;AAIrCC,EAAAA,OAAO,EAAEL,OAJ4B;AAKrCM,EAAAA,MAAM,EAAE,IAL6B;AAMrCC,EAAAA,QAAQ,EAAE,OAN2B;AAOrCC,EAAAA,UAAU,EAAE,CAAC,KAAD,CAPyB;AAQrCC,EAAAA,SAAS,EAAE,CAAC,mBAAD,CAR0B;AASrCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AACHC,MAAAA,QAAQ,EAAE;AADP;AADE;AAT4B,CAAhC;;AAiBA,MAAMC,SAA2B,GAAG,EACzC,GAAGZ,eADsC;AAEzCa,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBL,OAApB,KAAgC,wBAASK,WAAT,EAAsBL,OAAtB,CAFE;AAGzCM,EAAAA,SAAS,EAAEC,kBAH8B;AAIzCC,EAAAA,cAAc,EAAEC;AAJyB,CAApC","sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {parseDBF, parseDBFInBatches} from './lib/parsers/parse-dbf';\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\n/**\n * DBFLoader - DBF files are used to contain non-geometry columns in Shapefiles\n */\nexport const DBFWorkerLoader: Loader = {\n name: 'DBF',\n id: 'dbf',\n module: 'shapefile',\n version: VERSION,\n worker: true,\n category: 'table',\n extensions: ['dbf'],\n mimeTypes: ['application/x-dbf'],\n options: {\n dbf: {\n encoding: 'latin1'\n }\n }\n};\n\n/** DBF file loader */\nexport const DBFLoader: LoaderWithParser = {\n ...DBFWorkerLoader,\n parse: async (arrayBuffer, options) => parseDBF(arrayBuffer, options),\n parseSync: parseDBF,\n parseInBatches: parseDBFInBatches\n};\n"],"file":"dbf-loader.js"}
package/dist/es5/index.js CHANGED
@@ -5,31 +5,31 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  Object.defineProperty(exports, "ShapefileLoader", {
7
7
  enumerable: true,
8
- get: function get() {
8
+ get: function () {
9
9
  return _shapefileLoader.ShapefileLoader;
10
10
  }
11
11
  });
12
12
  Object.defineProperty(exports, "DBFLoader", {
13
13
  enumerable: true,
14
- get: function get() {
14
+ get: function () {
15
15
  return _dbfLoader.DBFLoader;
16
16
  }
17
17
  });
18
18
  Object.defineProperty(exports, "DBFWorkerLoader", {
19
19
  enumerable: true,
20
- get: function get() {
20
+ get: function () {
21
21
  return _dbfLoader.DBFWorkerLoader;
22
22
  }
23
23
  });
24
24
  Object.defineProperty(exports, "SHPLoader", {
25
25
  enumerable: true,
26
- get: function get() {
26
+ get: function () {
27
27
  return _shpLoader.SHPLoader;
28
28
  }
29
29
  });
30
30
  Object.defineProperty(exports, "SHPWorkerLoader", {
31
31
  enumerable: true,
32
- get: function get() {
32
+ get: function () {
33
33
  return _shpLoader.SHPWorkerLoader;
34
34
  }
35
35
  });
@@ -8,32 +8,14 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.parseDBF = parseDBF;
9
9
  exports.parseDBFInBatches = parseDBFInBatches;
10
10
 
11
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
-
13
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
14
-
15
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
16
-
17
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
12
 
19
- var _awaitAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));
20
-
21
- var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));
22
-
23
- var _asyncIterator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncIterator"));
24
-
25
13
  var _schema = require("@loaders.gl/schema");
26
14
 
27
15
  var _binaryChunkReader = _interopRequireDefault(require("../streaming/binary-chunk-reader"));
28
16
 
29
- 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; } } }; }
30
-
31
- 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); }
32
-
33
- 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; }
34
-
35
- var LITTLE_ENDIAN = true;
36
- var DBF_HEADER_SIZE = 32;
17
+ const LITTLE_ENDIAN = true;
18
+ const DBF_HEADER_SIZE = 32;
37
19
  var STATE;
38
20
 
39
21
  (function (STATE) {
@@ -44,57 +26,53 @@ var STATE;
44
26
  STATE[STATE["ERROR"] = 4] = "ERROR";
45
27
  })(STATE || (STATE = {}));
46
28
 
47
- var DBFParser = function () {
48
- function DBFParser(_ref) {
49
- var encoding = _ref.encoding;
50
- (0, _classCallCheck2.default)(this, DBFParser);
29
+ class DBFParser {
30
+ constructor(options) {
51
31
  (0, _defineProperty2.default)(this, "binaryReader", new _binaryChunkReader.default());
52
32
  (0, _defineProperty2.default)(this, "textDecoder", void 0);
53
33
  (0, _defineProperty2.default)(this, "state", STATE.START);
54
34
  (0, _defineProperty2.default)(this, "result", {
55
35
  data: []
56
36
  });
57
- this.textDecoder = new TextDecoder(encoding);
37
+ this.textDecoder = new TextDecoder(options.encoding);
58
38
  }
59
39
 
60
- (0, _createClass2.default)(DBFParser, [{
61
- key: "write",
62
- value: function write(arrayBuffer) {
63
- this.binaryReader.write(arrayBuffer);
64
- this.state = parseState(this.state, this.result, this.binaryReader, this.textDecoder);
65
- }
66
- }, {
67
- key: "end",
68
- value: function end() {
69
- this.binaryReader.end();
70
- this.state = parseState(this.state, this.result, this.binaryReader, this.textDecoder);
71
-
72
- if (this.state !== STATE.END) {
73
- this.state = STATE.ERROR;
74
- this.result.error = 'DBF incomplete file';
75
- }
40
+ write(arrayBuffer) {
41
+ this.binaryReader.write(arrayBuffer);
42
+ this.state = parseState(this.state, this.result, this.binaryReader, this.textDecoder);
43
+ }
44
+
45
+ end() {
46
+ this.binaryReader.end();
47
+ this.state = parseState(this.state, this.result, this.binaryReader, this.textDecoder);
48
+
49
+ if (this.state !== STATE.END) {
50
+ this.state = STATE.ERROR;
51
+ this.result.error = 'DBF incomplete file';
76
52
  }
77
- }]);
78
- return DBFParser;
79
- }();
80
-
81
- function parseDBF(arrayBuffer) {
82
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
83
- var loaderOptions = options.dbf || {};
84
- var encoding = loaderOptions.encoding;
85
- var dbfParser = new DBFParser({
86
- encoding: encoding
53
+ }
54
+
55
+ }
56
+
57
+ function parseDBF(arrayBuffer, options = {}) {
58
+ const loaderOptions = options.dbf || {};
59
+ const {
60
+ encoding
61
+ } = loaderOptions;
62
+ const dbfParser = new DBFParser({
63
+ encoding
87
64
  });
88
65
  dbfParser.write(arrayBuffer);
89
66
  dbfParser.end();
90
- var _dbfParser$result = dbfParser.result,
91
- data = _dbfParser$result.data,
92
- schema = _dbfParser$result.schema;
67
+ const {
68
+ data,
69
+ schema
70
+ } = dbfParser.result;
93
71
 
94
72
  switch (options.tables && options.tables.format) {
95
73
  case 'table':
96
74
  return {
97
- schema: schema,
75
+ schema,
98
76
  rows: data
99
77
  };
100
78
 
@@ -104,146 +82,35 @@ function parseDBF(arrayBuffer) {
104
82
  }
105
83
  }
106
84
 
107
- function parseDBFInBatches(_x) {
108
- return _parseDBFInBatches.apply(this, arguments);
109
- }
110
-
111
- function _parseDBFInBatches() {
112
- _parseDBFInBatches = (0, _wrapAsyncGenerator2.default)(_regenerator.default.mark(function _callee(asyncIterator) {
113
- var options,
114
- loaderOptions,
115
- encoding,
116
- parser,
117
- headerReturned,
118
- _iteratorNormalCompletion,
119
- _didIteratorError,
120
- _iteratorError,
121
- _iterator,
122
- _step,
123
- _value,
124
- arrayBuffer,
125
- _args = arguments;
126
-
127
- return _regenerator.default.wrap(function _callee$(_context) {
128
- while (1) {
129
- switch (_context.prev = _context.next) {
130
- case 0:
131
- options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
132
- loaderOptions = options.dbf || {};
133
- encoding = loaderOptions.encoding;
134
- parser = new DBFParser({
135
- encoding: encoding
136
- });
137
- headerReturned = false;
138
- _iteratorNormalCompletion = true;
139
- _didIteratorError = false;
140
- _context.prev = 7;
141
- _iterator = (0, _asyncIterator2.default)(asyncIterator);
142
-
143
- case 9:
144
- _context.next = 11;
145
- return (0, _awaitAsyncGenerator2.default)(_iterator.next());
146
-
147
- case 11:
148
- _step = _context.sent;
149
- _iteratorNormalCompletion = _step.done;
150
- _context.next = 15;
151
- return (0, _awaitAsyncGenerator2.default)(_step.value);
152
-
153
- case 15:
154
- _value = _context.sent;
155
-
156
- if (_iteratorNormalCompletion) {
157
- _context.next = 30;
158
- break;
159
- }
160
-
161
- arrayBuffer = _value;
162
- parser.write(arrayBuffer);
163
-
164
- if (!(!headerReturned && parser.result.dbfHeader)) {
165
- _context.next = 23;
166
- break;
167
- }
168
-
169
- headerReturned = true;
170
- _context.next = 23;
171
- return parser.result.dbfHeader;
172
-
173
- case 23:
174
- if (!(parser.result.data.length > 0)) {
175
- _context.next = 27;
176
- break;
177
- }
178
-
179
- _context.next = 26;
180
- return parser.result.data;
181
-
182
- case 26:
183
- parser.result.data = [];
184
-
185
- case 27:
186
- _iteratorNormalCompletion = true;
187
- _context.next = 9;
188
- break;
189
-
190
- case 30:
191
- _context.next = 36;
192
- break;
193
-
194
- case 32:
195
- _context.prev = 32;
196
- _context.t0 = _context["catch"](7);
197
- _didIteratorError = true;
198
- _iteratorError = _context.t0;
199
-
200
- case 36:
201
- _context.prev = 36;
202
- _context.prev = 37;
203
-
204
- if (!(!_iteratorNormalCompletion && _iterator.return != null)) {
205
- _context.next = 41;
206
- break;
207
- }
208
-
209
- _context.next = 41;
210
- return (0, _awaitAsyncGenerator2.default)(_iterator.return());
211
-
212
- case 41:
213
- _context.prev = 41;
214
-
215
- if (!_didIteratorError) {
216
- _context.next = 44;
217
- break;
218
- }
219
-
220
- throw _iteratorError;
221
-
222
- case 44:
223
- return _context.finish(41);
85
+ async function* parseDBFInBatches(asyncIterator, options = {}) {
86
+ const loaderOptions = options.dbf || {};
87
+ const {
88
+ encoding
89
+ } = loaderOptions;
90
+ const parser = new DBFParser({
91
+ encoding
92
+ });
93
+ let headerReturned = false;
224
94
 
225
- case 45:
226
- return _context.finish(36);
95
+ for await (const arrayBuffer of asyncIterator) {
96
+ parser.write(arrayBuffer);
227
97
 
228
- case 46:
229
- parser.end();
98
+ if (!headerReturned && parser.result.dbfHeader) {
99
+ headerReturned = true;
100
+ yield parser.result.dbfHeader;
101
+ }
230
102
 
231
- if (!(parser.result.data.length > 0)) {
232
- _context.next = 50;
233
- break;
234
- }
103
+ if (parser.result.data.length > 0) {
104
+ yield parser.result.data;
105
+ parser.result.data = [];
106
+ }
107
+ }
235
108
 
236
- _context.next = 50;
237
- return parser.result.data;
109
+ parser.end();
238
110
 
239
- case 50:
240
- case "end":
241
- return _context.stop();
242
- }
243
- }
244
- }, _callee, null, [[7, 32, 36, 46], [37,, 41, 45]]);
245
- }));
246
- return _parseDBFInBatches.apply(this, arguments);
111
+ if (parser.result.data.length > 0) {
112
+ yield parser.result.data;
113
+ }
247
114
  }
248
115
 
249
116
  function parseState(state, result, binaryReader, textDecoder) {
@@ -255,7 +122,7 @@ function parseState(state, result, binaryReader, textDecoder) {
255
122
  return state;
256
123
 
257
124
  case STATE.START:
258
- var dataView = binaryReader.getDataView(DBF_HEADER_SIZE, 'DBF header');
125
+ const dataView = binaryReader.getDataView(DBF_HEADER_SIZE, 'DBF header');
259
126
 
260
127
  if (!dataView) {
261
128
  return state;
@@ -271,36 +138,33 @@ function parseState(state, result, binaryReader, textDecoder) {
271
138
  break;
272
139
 
273
140
  case STATE.FIELD_DESCRIPTORS:
274
- var fieldDescriptorView = binaryReader.getDataView(result.dbfHeader.headerLength - DBF_HEADER_SIZE, 'DBF field descriptors');
141
+ const fieldDescriptorView = binaryReader.getDataView(result.dbfHeader.headerLength - DBF_HEADER_SIZE, 'DBF field descriptors');
275
142
 
276
143
  if (!fieldDescriptorView) {
277
144
  return state;
278
145
  }
279
146
 
280
147
  result.dbfFields = parseFieldDescriptors(fieldDescriptorView, textDecoder);
281
- result.schema = new _schema.Schema(result.dbfFields.map(function (dbfField) {
282
- return makeField(dbfField);
283
- }));
148
+ result.schema = new _schema.Schema(result.dbfFields.map(dbfField => makeField(dbfField)));
284
149
  state = STATE.FIELD_PROPERTIES;
285
150
  binaryReader.skip(1);
286
151
  break;
287
152
 
288
153
  case STATE.FIELD_PROPERTIES:
289
- var _ref2 = (result === null || result === void 0 ? void 0 : result.dbfHeader) || {},
290
- _ref2$recordLength = _ref2.recordLength,
291
- recordLength = _ref2$recordLength === void 0 ? 0 : _ref2$recordLength,
292
- _ref2$nRecords = _ref2.nRecords,
293
- nRecords = _ref2$nRecords === void 0 ? 0 : _ref2$nRecords;
154
+ const {
155
+ recordLength = 0,
156
+ nRecords = 0
157
+ } = (result === null || result === void 0 ? void 0 : result.dbfHeader) || {};
294
158
 
295
159
  while (result.data.length < nRecords) {
296
- var recordView = binaryReader.getDataView(recordLength - 1);
160
+ const recordView = binaryReader.getDataView(recordLength - 1);
297
161
 
298
162
  if (!recordView) {
299
163
  return state;
300
164
  }
301
165
 
302
166
  binaryReader.skip(1);
303
- var row = parseRow(recordView, result.dbfFields, textDecoder);
167
+ const row = parseRow(recordView, result.dbfFields, textDecoder);
304
168
  result.data.push(row);
305
169
  result.progress.rows = result.data.length;
306
170
  }
@@ -334,14 +198,14 @@ function parseDBFHeader(headerView) {
334
198
  }
335
199
 
336
200
  function parseFieldDescriptors(view, textDecoder) {
337
- var nFields = (view.byteLength - 1) / 32;
338
- var fields = [];
339
- var offset = 0;
201
+ const nFields = (view.byteLength - 1) / 32;
202
+ const fields = [];
203
+ let offset = 0;
340
204
 
341
- for (var i = 0; i < nFields; i++) {
342
- var name = textDecoder.decode(new Uint8Array(view.buffer, view.byteOffset + offset, 11)).replace(/\u0000/g, '');
205
+ for (let i = 0; i < nFields; i++) {
206
+ const name = textDecoder.decode(new Uint8Array(view.buffer, view.byteOffset + offset, 11)).replace(/\u0000/g, '');
343
207
  fields.push({
344
- name: name,
208
+ name,
345
209
  dataType: String.fromCharCode(view.getUint8(offset + 11)),
346
210
  fieldLength: view.getUint8(offset + 16),
347
211
  decimal: view.getUint8(offset + 17)
@@ -353,23 +217,13 @@ function parseFieldDescriptors(view, textDecoder) {
353
217
  }
354
218
 
355
219
  function parseRow(view, fields, textDecoder) {
356
- var out = {};
357
- var offset = 0;
358
-
359
- var _iterator2 = _createForOfIteratorHelper(fields),
360
- _step2;
361
-
362
- try {
363
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
364
- var field = _step2.value;
365
- var text = textDecoder.decode(new Uint8Array(view.buffer, view.byteOffset + offset, field.fieldLength));
366
- out[field.name] = parseField(text, field.dataType);
367
- offset += field.fieldLength;
368
- }
369
- } catch (err) {
370
- _iterator2.e(err);
371
- } finally {
372
- _iterator2.f();
220
+ const out = {};
221
+ let offset = 0;
222
+
223
+ for (const field of fields) {
224
+ const text = textDecoder.decode(new Uint8Array(view.buffer, view.byteOffset + offset, field.fieldLength));
225
+ out[field.name] = parseField(text, field.dataType);
226
+ offset += field.fieldLength;
373
227
  }
374
228
 
375
229
  return out;
@@ -412,7 +266,7 @@ function parseBoolean(value) {
412
266
  }
413
267
 
414
268
  function parseNumber(text) {
415
- var number = parseFloat(text);
269
+ const number = parseFloat(text);
416
270
  return isNaN(number) ? null : number;
417
271
  }
418
272
 
@@ -420,12 +274,12 @@ function parseCharacter(text) {
420
274
  return text.trim() || null;
421
275
  }
422
276
 
423
- function makeField(_ref3) {
424
- var name = _ref3.name,
425
- dataType = _ref3.dataType,
426
- fieldLength = _ref3.fieldLength,
427
- decimal = _ref3.decimal;
428
-
277
+ function makeField({
278
+ name,
279
+ dataType,
280
+ fieldLength,
281
+ decimal
282
+ }) {
429
283
  switch (dataType) {
430
284
  case 'B':
431
285
  return new _schema.Field(name, new _schema.Float64(), true);