@loaders.gl/schema 3.1.0-beta.4 → 3.1.0

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 (34) hide show
  1. package/dist/es5/bundle.js +1 -1
  2. package/dist/es5/bundle.js.map +1 -1
  3. package/dist/es5/category/mesh/convert-mesh.js +10 -2
  4. package/dist/es5/category/mesh/convert-mesh.js.map +1 -1
  5. package/dist/es5/category/mesh/deduce-mesh-schema.js +8 -8
  6. package/dist/es5/category/mesh/deduce-mesh-schema.js.map +1 -1
  7. package/dist/es5/category/mesh/mesh-utils.js +16 -16
  8. package/dist/es5/category/mesh/mesh-utils.js.map +1 -1
  9. package/dist/es5/category/table/deduce-table-schema.js +9 -9
  10. package/dist/es5/category/table/deduce-table-schema.js.map +1 -1
  11. package/dist/es5/index.js +52 -52
  12. package/dist/es5/lib/arrow/get-type-info.js +3 -3
  13. package/dist/es5/lib/arrow/get-type-info.js.map +1 -1
  14. package/dist/es5/lib/batches/base-table-batch-aggregator.js +53 -42
  15. package/dist/es5/lib/batches/base-table-batch-aggregator.js.map +1 -1
  16. package/dist/es5/lib/batches/columnar-table-batch-aggregator.js +90 -71
  17. package/dist/es5/lib/batches/columnar-table-batch-aggregator.js.map +1 -1
  18. package/dist/es5/lib/batches/row-table-batch-aggregator.js +70 -59
  19. package/dist/es5/lib/batches/row-table-batch-aggregator.js.map +1 -1
  20. package/dist/es5/lib/batches/table-batch-builder.js +133 -113
  21. package/dist/es5/lib/batches/table-batch-builder.js.map +1 -1
  22. package/dist/es5/lib/schema/impl/enum.js +1 -1
  23. package/dist/es5/lib/schema/impl/field.js +32 -19
  24. package/dist/es5/lib/schema/impl/field.js.map +1 -1
  25. package/dist/es5/lib/schema/impl/schema.js +119 -54
  26. package/dist/es5/lib/schema/impl/schema.js.map +1 -1
  27. package/dist/es5/lib/schema/impl/type.js +728 -395
  28. package/dist/es5/lib/schema/impl/type.js.map +1 -1
  29. package/dist/es5/lib/schema/schema.js +37 -37
  30. package/dist/es5/lib/utils/async-queue.js +164 -81
  31. package/dist/es5/lib/utils/async-queue.js.map +1 -1
  32. package/dist/es5/lib/utils/row-utils.js +4 -4
  33. package/dist/es5/lib/utils/row-utils.js.map +1 -1
  34. package/package.json +2 -2
@@ -7,12 +7,17 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
10
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
15
 
12
- const DEFAULT_ROW_COUNT = 100;
16
+ var DEFAULT_ROW_COUNT = 100;
13
17
 
14
- class RowTableBatchAggregator {
15
- constructor(schema, options) {
18
+ var RowTableBatchAggregator = function () {
19
+ function RowTableBatchAggregator(schema, options) {
20
+ (0, _classCallCheck2.default)(this, RowTableBatchAggregator);
16
21
  (0, _defineProperty2.default)(this, "schema", void 0);
17
22
  (0, _defineProperty2.default)(this, "options", void 0);
18
23
  (0, _defineProperty2.default)(this, "length", 0);
@@ -25,57 +30,63 @@ class RowTableBatchAggregator {
25
30
  if (!Array.isArray(schema)) {
26
31
  this._headers = [];
27
32
 
28
- for (const key in schema) {
33
+ for (var key in schema) {
29
34
  this._headers[schema[key].index] = schema[key].name;
30
35
  }
31
36
  }
32
37
  }
33
38
 
34
- rowCount() {
35
- return this.length;
36
- }
37
-
38
- addArrayRow(row, cursor) {
39
- if (Number.isFinite(cursor)) {
40
- this.cursor = cursor;
39
+ (0, _createClass2.default)(RowTableBatchAggregator, [{
40
+ key: "rowCount",
41
+ value: function rowCount() {
42
+ return this.length;
41
43
  }
44
+ }, {
45
+ key: "addArrayRow",
46
+ value: function addArrayRow(row, cursor) {
47
+ if (Number.isFinite(cursor)) {
48
+ this.cursor = cursor;
49
+ }
42
50
 
43
- this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);
44
- this.rows[this.length] = row;
45
- this.length++;
46
- }
47
-
48
- addObjectRow(row, cursor) {
49
- if (Number.isFinite(cursor)) {
50
- this.cursor = cursor;
51
+ this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);
52
+ this.rows[this.length] = row;
53
+ this.length++;
51
54
  }
55
+ }, {
56
+ key: "addObjectRow",
57
+ value: function addObjectRow(row, cursor) {
58
+ if (Number.isFinite(cursor)) {
59
+ this.cursor = cursor;
60
+ }
52
61
 
53
- this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);
54
- this.rows[this.length] = row;
55
- this.length++;
56
- }
57
-
58
- getBatch() {
59
- let rows = this.rows;
60
-
61
- if (!rows) {
62
- return null;
62
+ this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);
63
+ this.rows[this.length] = row;
64
+ this.length++;
63
65
  }
66
+ }, {
67
+ key: "getBatch",
68
+ value: function getBatch() {
69
+ var rows = this.rows;
64
70
 
65
- rows = rows.slice(0, this.length);
66
- this.rows = null;
67
- const batch = {
68
- shape: this.options.shape,
69
- batchType: 'data',
70
- data: rows,
71
- length: this.length,
72
- schema: this.schema,
73
- cursor: this.cursor
74
- };
75
- return batch;
76
- }
71
+ if (!rows) {
72
+ return null;
73
+ }
77
74
 
78
- }
75
+ rows = rows.slice(0, this.length);
76
+ this.rows = null;
77
+ var batch = {
78
+ shape: this.options.shape,
79
+ batchType: 'data',
80
+ data: rows,
81
+ length: this.length,
82
+ schema: this.schema,
83
+ cursor: this.cursor
84
+ };
85
+ return batch;
86
+ }
87
+ }]);
88
+ return RowTableBatchAggregator;
89
+ }();
79
90
 
80
91
  exports.default = RowTableBatchAggregator;
81
92
  //# sourceMappingURL=base-table-batch-aggregator.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/batches/base-table-batch-aggregator.ts"],"names":["DEFAULT_ROW_COUNT","RowTableBatchAggregator","constructor","schema","options","Array","isArray","_headers","key","index","name","rowCount","length","addArrayRow","row","cursor","Number","isFinite","rows","addObjectRow","getBatch","slice","batch","shape","batchType","data"],"mappings":";;;;;;;;;;;AAIA,MAAMA,iBAAiB,GAAG,GAA1B;;AAEe,MAAMC,uBAAN,CAA8D;AAS3EC,EAAAA,WAAW,CAACC,MAAD,EAAiBC,OAAjB,EAA6C;AAAA;AAAA;AAAA,kDALvC,CAKuC;AAAA,gDAJnC,IAImC;AAAA,kDAHvC,CAGuC;AAAA,oDAF3B,EAE2B;AACtD,SAAKA,OAAL,GAAeA,OAAf;AACA,SAAKD,MAAL,GAAcA,MAAd;;AAIA,QAAI,CAACE,KAAK,CAACC,OAAN,CAAcH,MAAd,CAAL,EAA4B;AAC1B,WAAKI,QAAL,GAAgB,EAAhB;;AACA,WAAK,MAAMC,GAAX,IAAkBL,MAAlB,EAA0B;AACxB,aAAKI,QAAL,CAAcJ,MAAM,CAACK,GAAD,CAAN,CAAYC,KAA1B,IAAmCN,MAAM,CAACK,GAAD,CAAN,CAAYE,IAA/C;AACD;AACF;AACF;;AAEDC,EAAAA,QAAQ,GAAW;AACjB,WAAO,KAAKC,MAAZ;AACD;;AAEDC,EAAAA,WAAW,CAACC,GAAD,EAAaC,MAAb,EAAoC;AAC7C,QAAIC,MAAM,CAACC,QAAP,CAAgBF,MAAhB,CAAJ,EAA6B;AAC3B,WAAKA,MAAL,GAAcA,MAAd;AACD;;AAED,SAAKG,IAAL,GAAY,KAAKA,IAAL,IAAa,IAAIb,KAAJ,CAAUL,iBAAV,CAAzB;AACA,SAAKkB,IAAL,CAAU,KAAKN,MAAf,IAAyBE,GAAzB;AACA,SAAKF,MAAL;AACD;;AAEDO,EAAAA,YAAY,CAACL,GAAD,EAAmCC,MAAnC,EAA0D;AACpE,QAAIC,MAAM,CAACC,QAAP,CAAgBF,MAAhB,CAAJ,EAA6B;AAC3B,WAAKA,MAAL,GAAcA,MAAd;AACD;;AAED,SAAKG,IAAL,GAAY,KAAKA,IAAL,IAAa,IAAIb,KAAJ,CAAUL,iBAAV,CAAzB;AACA,SAAKkB,IAAL,CAAU,KAAKN,MAAf,IAAyBE,GAAzB;AACA,SAAKF,MAAL;AACD;;AAEDQ,EAAAA,QAAQ,GAAsB;AAC5B,QAAIF,IAAI,GAAG,KAAKA,IAAhB;;AACA,QAAI,CAACA,IAAL,EAAW;AACT,aAAO,IAAP;AACD;;AAEDA,IAAAA,IAAI,GAAGA,IAAI,CAACG,KAAL,CAAW,CAAX,EAAc,KAAKT,MAAnB,CAAP;AACA,SAAKM,IAAL,GAAY,IAAZ;AAEA,UAAMI,KAAiB,GAAG;AACxBC,MAAAA,KAAK,EAAE,KAAKnB,OAAL,CAAamB,KADI;AAExBC,MAAAA,SAAS,EAAE,MAFa;AAGxBC,MAAAA,IAAI,EAAEP,IAHkB;AAIxBN,MAAAA,MAAM,EAAE,KAAKA,MAJW;AAKxBT,MAAAA,MAAM,EAAE,KAAKA,MALW;AAMxBY,MAAAA,MAAM,EAAE,KAAKA;AANW,KAA1B;AASA,WAAOO,KAAP;AACD;;AAlE0E","sourcesContent":["import type {Schema} from '../schema/schema';\nimport type {TableBatch} from '../../category/table/table-types';\nimport {TableBatchAggregator, TableBatchOptions} from './table-batch-aggregator';\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport default class RowTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n options: TableBatchOptions;\n\n length: number = 0;\n rows: any[] | null = null;\n cursor: number = 0;\n private _headers: string[] = [];\n\n constructor(schema: Schema, options: TableBatchOptions) {\n this.options = options;\n this.schema = schema;\n\n // schema is an array if there're no headers\n // object if there are headers\n if (!Array.isArray(schema)) {\n this._headers = [];\n for (const key in schema) {\n this._headers[schema[key].index] = schema[key].name;\n }\n }\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[], cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);\n this.rows[this.length] = row;\n this.length++;\n }\n\n addObjectRow(row: {[columnName: string]: any}, cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);\n this.rows[this.length] = row;\n this.length++;\n }\n\n getBatch(): TableBatch | null {\n let rows = this.rows;\n if (!rows) {\n return null;\n }\n\n rows = rows.slice(0, this.length);\n this.rows = null;\n\n const batch: TableBatch = {\n shape: this.options.shape,\n batchType: 'data',\n data: rows,\n length: this.length,\n schema: this.schema,\n cursor: this.cursor\n };\n\n return batch;\n }\n}\n"],"file":"base-table-batch-aggregator.js"}
1
+ {"version":3,"sources":["../../../../src/lib/batches/base-table-batch-aggregator.ts"],"names":["DEFAULT_ROW_COUNT","RowTableBatchAggregator","schema","options","Array","isArray","_headers","key","index","name","length","row","cursor","Number","isFinite","rows","slice","batch","shape","batchType","data"],"mappings":";;;;;;;;;;;;;;;AAIA,IAAMA,iBAAiB,GAAG,GAA1B;;IAEqBC,uB;AASnB,mCAAYC,MAAZ,EAA4BC,OAA5B,EAAwD;AAAA;AAAA;AAAA;AAAA,kDALvC,CAKuC;AAAA,gDAJnC,IAImC;AAAA,kDAHvC,CAGuC;AAAA,oDAF3B,EAE2B;AACtD,SAAKA,OAAL,GAAeA,OAAf;AACA,SAAKD,MAAL,GAAcA,MAAd;;AAIA,QAAI,CAACE,KAAK,CAACC,OAAN,CAAcH,MAAd,CAAL,EAA4B;AAC1B,WAAKI,QAAL,GAAgB,EAAhB;;AACA,WAAK,IAAMC,GAAX,IAAkBL,MAAlB,EAA0B;AACxB,aAAKI,QAAL,CAAcJ,MAAM,CAACK,GAAD,CAAN,CAAYC,KAA1B,IAAmCN,MAAM,CAACK,GAAD,CAAN,CAAYE,IAA/C;AACD;AACF;AACF;;;;WAED,oBAAmB;AACjB,aAAO,KAAKC,MAAZ;AACD;;;WAED,qBAAYC,GAAZ,EAAwBC,MAAxB,EAA+C;AAC7C,UAAIC,MAAM,CAACC,QAAP,CAAgBF,MAAhB,CAAJ,EAA6B;AAC3B,aAAKA,MAAL,GAAcA,MAAd;AACD;;AAED,WAAKG,IAAL,GAAY,KAAKA,IAAL,IAAa,IAAIX,KAAJ,CAAUJ,iBAAV,CAAzB;AACA,WAAKe,IAAL,CAAU,KAAKL,MAAf,IAAyBC,GAAzB;AACA,WAAKD,MAAL;AACD;;;WAED,sBAAaC,GAAb,EAA+CC,MAA/C,EAAsE;AACpE,UAAIC,MAAM,CAACC,QAAP,CAAgBF,MAAhB,CAAJ,EAA6B;AAC3B,aAAKA,MAAL,GAAcA,MAAd;AACD;;AAED,WAAKG,IAAL,GAAY,KAAKA,IAAL,IAAa,IAAIX,KAAJ,CAAUJ,iBAAV,CAAzB;AACA,WAAKe,IAAL,CAAU,KAAKL,MAAf,IAAyBC,GAAzB;AACA,WAAKD,MAAL;AACD;;;WAED,oBAA8B;AAC5B,UAAIK,IAAI,GAAG,KAAKA,IAAhB;;AACA,UAAI,CAACA,IAAL,EAAW;AACT,eAAO,IAAP;AACD;;AAEDA,MAAAA,IAAI,GAAGA,IAAI,CAACC,KAAL,CAAW,CAAX,EAAc,KAAKN,MAAnB,CAAP;AACA,WAAKK,IAAL,GAAY,IAAZ;AAEA,UAAME,KAAiB,GAAG;AACxBC,QAAAA,KAAK,EAAE,KAAKf,OAAL,CAAae,KADI;AAExBC,QAAAA,SAAS,EAAE,MAFa;AAGxBC,QAAAA,IAAI,EAAEL,IAHkB;AAIxBL,QAAAA,MAAM,EAAE,KAAKA,MAJW;AAKxBR,QAAAA,MAAM,EAAE,KAAKA,MALW;AAMxBU,QAAAA,MAAM,EAAE,KAAKA;AANW,OAA1B;AASA,aAAOK,KAAP;AACD","sourcesContent":["import type {Schema} from '../schema/schema';\nimport type {TableBatch} from '../../category/table/table-types';\nimport {TableBatchAggregator, TableBatchOptions} from './table-batch-aggregator';\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport default class RowTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n options: TableBatchOptions;\n\n length: number = 0;\n rows: any[] | null = null;\n cursor: number = 0;\n private _headers: string[] = [];\n\n constructor(schema: Schema, options: TableBatchOptions) {\n this.options = options;\n this.schema = schema;\n\n // schema is an array if there're no headers\n // object if there are headers\n if (!Array.isArray(schema)) {\n this._headers = [];\n for (const key in schema) {\n this._headers[schema[key].index] = schema[key].name;\n }\n }\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[], cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);\n this.rows[this.length] = row;\n this.length++;\n }\n\n addObjectRow(row: {[columnName: string]: any}, cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n this.rows = this.rows || new Array(DEFAULT_ROW_COUNT);\n this.rows[this.length] = row;\n this.length++;\n }\n\n getBatch(): TableBatch | null {\n let rows = this.rows;\n if (!rows) {\n return null;\n }\n\n rows = rows.slice(0, this.length);\n this.rows = null;\n\n const batch: TableBatch = {\n shape: this.options.shape,\n batchType: 'data',\n data: rows,\n length: this.length,\n schema: this.schema,\n cursor: this.cursor\n };\n\n return batch;\n }\n}\n"],"file":"base-table-batch-aggregator.js"}
@@ -7,12 +7,19 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
10
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
17
 
12
- const DEFAULT_ROW_COUNT = 100;
18
+ var DEFAULT_ROW_COUNT = 100;
13
19
 
14
- class ColumnarTableBatchAggregator {
15
- constructor(schema, options) {
20
+ var ColumnarTableBatchAggregator = function () {
21
+ function ColumnarTableBatchAggregator(schema, options) {
22
+ (0, _classCallCheck2.default)(this, ColumnarTableBatchAggregator);
16
23
  (0, _defineProperty2.default)(this, "schema", void 0);
17
24
  (0, _defineProperty2.default)(this, "length", 0);
18
25
  (0, _defineProperty2.default)(this, "allocated", 0);
@@ -22,88 +29,100 @@ class ColumnarTableBatchAggregator {
22
29
  this._reallocateColumns();
23
30
  }
24
31
 
25
- rowCount() {
26
- return this.length;
27
- }
28
-
29
- addArrayRow(row) {
30
- this._reallocateColumns();
31
-
32
- let i = 0;
33
-
34
- for (const fieldName in this.columns) {
35
- this.columns[fieldName][this.length] = row[i++];
32
+ (0, _createClass2.default)(ColumnarTableBatchAggregator, [{
33
+ key: "rowCount",
34
+ value: function rowCount() {
35
+ return this.length;
36
36
  }
37
+ }, {
38
+ key: "addArrayRow",
39
+ value: function addArrayRow(row) {
40
+ this._reallocateColumns();
37
41
 
38
- this.length++;
39
- }
42
+ var i = 0;
40
43
 
41
- addObjectRow(row) {
42
- this._reallocateColumns();
44
+ for (var fieldName in this.columns) {
45
+ this.columns[fieldName][this.length] = row[i++];
46
+ }
43
47
 
44
- for (const fieldName in row) {
45
- this.columns[fieldName][this.length] = row[fieldName];
48
+ this.length++;
46
49
  }
50
+ }, {
51
+ key: "addObjectRow",
52
+ value: function addObjectRow(row) {
53
+ this._reallocateColumns();
47
54
 
48
- this.length++;
49
- }
50
-
51
- getBatch() {
52
- this._pruneColumns();
53
-
54
- const columns = Array.isArray(this.schema) ? this.columns : {};
55
-
56
- if (!Array.isArray(this.schema)) {
57
- for (const fieldName in this.schema) {
58
- const field = this.schema[fieldName];
59
- columns[field.name] = this.columns[field.index];
55
+ for (var fieldName in row) {
56
+ this.columns[fieldName][this.length] = row[fieldName];
60
57
  }
61
- }
62
58
 
63
- this.columns = {};
64
- const batch = {
65
- shape: 'columnar-table',
66
- batchType: 'data',
67
- data: columns,
68
- schema: this.schema,
69
- length: this.length
70
- };
71
- return batch;
72
- }
59
+ this.length++;
60
+ }
61
+ }, {
62
+ key: "getBatch",
63
+ value: function getBatch() {
64
+ this._pruneColumns();
65
+
66
+ var columns = Array.isArray(this.schema) ? this.columns : {};
67
+
68
+ if (!Array.isArray(this.schema)) {
69
+ for (var fieldName in this.schema) {
70
+ var field = this.schema[fieldName];
71
+ columns[field.name] = this.columns[field.index];
72
+ }
73
+ }
73
74
 
74
- _reallocateColumns() {
75
- if (this.length < this.allocated) {
76
- return;
75
+ this.columns = {};
76
+ var batch = {
77
+ shape: 'columnar-table',
78
+ batchType: 'data',
79
+ data: columns,
80
+ schema: this.schema,
81
+ length: this.length
82
+ };
83
+ return batch;
77
84
  }
85
+ }, {
86
+ key: "_reallocateColumns",
87
+ value: function _reallocateColumns() {
88
+ if (this.length < this.allocated) {
89
+ return;
90
+ }
78
91
 
79
- this.allocated = this.allocated > 0 ? this.allocated *= 2 : DEFAULT_ROW_COUNT;
80
- this.columns = {};
81
-
82
- for (const fieldName in this.schema) {
83
- const field = this.schema[fieldName];
84
- const ArrayType = field.type || Float32Array;
85
- const oldColumn = this.columns[field.index];
86
-
87
- if (oldColumn && ArrayBuffer.isView(oldColumn)) {
88
- const typedArray = new ArrayType(this.allocated);
89
- typedArray.set(oldColumn);
90
- this.columns[field.index] = typedArray;
91
- } else if (oldColumn) {
92
- oldColumn.length = this.allocated;
93
- this.columns[field.index] = oldColumn;
94
- } else {
95
- this.columns[field.index] = new ArrayType(this.allocated);
92
+ this.allocated = this.allocated > 0 ? this.allocated *= 2 : DEFAULT_ROW_COUNT;
93
+ this.columns = {};
94
+
95
+ for (var fieldName in this.schema) {
96
+ var field = this.schema[fieldName];
97
+ var ArrayType = field.type || Float32Array;
98
+ var oldColumn = this.columns[field.index];
99
+
100
+ if (oldColumn && ArrayBuffer.isView(oldColumn)) {
101
+ var typedArray = new ArrayType(this.allocated);
102
+ typedArray.set(oldColumn);
103
+ this.columns[field.index] = typedArray;
104
+ } else if (oldColumn) {
105
+ oldColumn.length = this.allocated;
106
+ this.columns[field.index] = oldColumn;
107
+ } else {
108
+ this.columns[field.index] = new ArrayType(this.allocated);
109
+ }
96
110
  }
97
111
  }
98
- }
99
-
100
- _pruneColumns() {
101
- for (const [columnName, column] of Object.entries(this.columns)) {
102
- this.columns[columnName] = column.slice(0, this.length);
112
+ }, {
113
+ key: "_pruneColumns",
114
+ value: function _pruneColumns() {
115
+ for (var _i = 0, _Object$entries = Object.entries(this.columns); _i < _Object$entries.length; _i++) {
116
+ var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
117
+ _columnName = _Object$entries$_i[0],
118
+ column = _Object$entries$_i[1];
119
+
120
+ this.columns[_columnName] = column.slice(0, this.length);
121
+ }
103
122
  }
104
- }
105
-
106
- }
123
+ }]);
124
+ return ColumnarTableBatchAggregator;
125
+ }();
107
126
 
108
127
  exports.default = ColumnarTableBatchAggregator;
109
128
  //# sourceMappingURL=columnar-table-batch-aggregator.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/batches/columnar-table-batch-aggregator.ts"],"names":["DEFAULT_ROW_COUNT","ColumnarTableBatchAggregator","constructor","schema","options","_reallocateColumns","rowCount","length","addArrayRow","row","i","fieldName","columns","addObjectRow","getBatch","_pruneColumns","Array","isArray","field","name","index","batch","shape","batchType","data","allocated","ArrayType","type","Float32Array","oldColumn","ArrayBuffer","isView","typedArray","set","columnName","column","Object","entries","slice"],"mappings":"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","sourcesContent":["import type {Schema} from '../schema/schema';\nimport type {ColumnarTableBatch, ArrowTableBatch} from '../../category/table/table-types';\nimport {TableBatchAggregator} from './table-batch-aggregator';\n\ntype ColumnarTableBatchOptions = {};\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport default class ColumnarTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n length: number = 0;\n allocated: number = 0;\n columns: {[columnName: string]: any[]} = {};\n\n constructor(schema: Schema, options: ColumnarTableBatchOptions) {\n this.schema = schema;\n this._reallocateColumns();\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[]) {\n // If user keeps pushing rows beyond batch size, reallocate\n this._reallocateColumns();\n let i = 0;\n // TODO what if no csv header, columns not populated?\n for (const fieldName in this.columns) {\n this.columns[fieldName][this.length] = row[i++];\n }\n this.length++;\n }\n\n addObjectRow(row: {[columnName: string]: any}): void {\n // If user keeps pushing rows beyond batch size, reallocate\n this._reallocateColumns();\n for (const fieldName in row) {\n this.columns[fieldName][this.length] = row[fieldName];\n }\n this.length++;\n }\n\n getBatch(): ColumnarTableBatch | ArrowTableBatch | null {\n this._pruneColumns();\n const columns = Array.isArray(this.schema) ? this.columns : {};\n\n // schema is an array if there're no headers\n // object if there are headers\n // columns should match schema format\n if (!Array.isArray(this.schema)) {\n for (const fieldName in this.schema) {\n const field = this.schema[fieldName];\n columns[field.name] = this.columns[field.index];\n }\n }\n\n this.columns = {};\n\n const batch: ColumnarTableBatch = {\n shape: 'columnar-table',\n batchType: 'data',\n data: columns,\n schema: this.schema,\n length: this.length\n };\n\n return batch;\n }\n\n // HELPERS\n\n _reallocateColumns() {\n if (this.length < this.allocated) {\n return;\n }\n\n // @ts-ignore TODO\n this.allocated = this.allocated > 0 ? (this.allocated *= 2) : DEFAULT_ROW_COUNT;\n this.columns = {};\n\n for (const fieldName in this.schema) {\n const field = this.schema[fieldName];\n const ArrayType = field.type || Float32Array;\n const oldColumn = this.columns[field.index];\n\n if (oldColumn && ArrayBuffer.isView(oldColumn)) {\n // Copy the old data to the new array\n const typedArray = new ArrayType(this.allocated);\n typedArray.set(oldColumn);\n this.columns[field.index] = typedArray;\n } else if (oldColumn) {\n // Plain array\n oldColumn.length = this.allocated;\n this.columns[field.index] = oldColumn;\n } else {\n // Create new\n this.columns[field.index] = new ArrayType(this.allocated);\n }\n }\n }\n\n _pruneColumns() {\n for (const [columnName, column] of Object.entries(this.columns)) {\n this.columns[columnName] = column.slice(0, this.length);\n }\n }\n}\n"],"file":"columnar-table-batch-aggregator.js"}
1
+ {"version":3,"sources":["../../../../src/lib/batches/columnar-table-batch-aggregator.ts"],"names":["DEFAULT_ROW_COUNT","ColumnarTableBatchAggregator","schema","options","_reallocateColumns","length","row","i","fieldName","columns","_pruneColumns","Array","isArray","field","name","index","batch","shape","batchType","data","allocated","ArrayType","type","Float32Array","oldColumn","ArrayBuffer","isView","typedArray","set","Object","entries","columnName","column","slice"],"mappings":"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","sourcesContent":["import type {Schema} from '../schema/schema';\nimport type {ColumnarTableBatch, ArrowTableBatch} from '../../category/table/table-types';\nimport {TableBatchAggregator} from './table-batch-aggregator';\n\ntype ColumnarTableBatchOptions = {};\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport default class ColumnarTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n length: number = 0;\n allocated: number = 0;\n columns: {[columnName: string]: any[]} = {};\n\n constructor(schema: Schema, options: ColumnarTableBatchOptions) {\n this.schema = schema;\n this._reallocateColumns();\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[]) {\n // If user keeps pushing rows beyond batch size, reallocate\n this._reallocateColumns();\n let i = 0;\n // TODO what if no csv header, columns not populated?\n for (const fieldName in this.columns) {\n this.columns[fieldName][this.length] = row[i++];\n }\n this.length++;\n }\n\n addObjectRow(row: {[columnName: string]: any}): void {\n // If user keeps pushing rows beyond batch size, reallocate\n this._reallocateColumns();\n for (const fieldName in row) {\n this.columns[fieldName][this.length] = row[fieldName];\n }\n this.length++;\n }\n\n getBatch(): ColumnarTableBatch | ArrowTableBatch | null {\n this._pruneColumns();\n const columns = Array.isArray(this.schema) ? this.columns : {};\n\n // schema is an array if there're no headers\n // object if there are headers\n // columns should match schema format\n if (!Array.isArray(this.schema)) {\n for (const fieldName in this.schema) {\n const field = this.schema[fieldName];\n columns[field.name] = this.columns[field.index];\n }\n }\n\n this.columns = {};\n\n const batch: ColumnarTableBatch = {\n shape: 'columnar-table',\n batchType: 'data',\n data: columns,\n schema: this.schema,\n length: this.length\n };\n\n return batch;\n }\n\n // HELPERS\n\n _reallocateColumns() {\n if (this.length < this.allocated) {\n return;\n }\n\n // @ts-ignore TODO\n this.allocated = this.allocated > 0 ? (this.allocated *= 2) : DEFAULT_ROW_COUNT;\n this.columns = {};\n\n for (const fieldName in this.schema) {\n const field = this.schema[fieldName];\n const ArrayType = field.type || Float32Array;\n const oldColumn = this.columns[field.index];\n\n if (oldColumn && ArrayBuffer.isView(oldColumn)) {\n // Copy the old data to the new array\n const typedArray = new ArrayType(this.allocated);\n typedArray.set(oldColumn);\n this.columns[field.index] = typedArray;\n } else if (oldColumn) {\n // Plain array\n oldColumn.length = this.allocated;\n this.columns[field.index] = oldColumn;\n } else {\n // Create new\n this.columns[field.index] = new ArrayType(this.allocated);\n }\n }\n }\n\n _pruneColumns() {\n for (const [columnName, column] of Object.entries(this.columns)) {\n this.columns[columnName] = column.slice(0, this.length);\n }\n }\n}\n"],"file":"columnar-table-batch-aggregator.js"}
@@ -7,14 +7,19 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
10
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
15
 
12
16
  var _rowUtils = require("../utils/row-utils");
13
17
 
14
- const DEFAULT_ROW_COUNT = 100;
18
+ var DEFAULT_ROW_COUNT = 100;
15
19
 
16
- class RowTableBatchAggregator {
17
- constructor(schema, options) {
20
+ var RowTableBatchAggregator = function () {
21
+ function RowTableBatchAggregator(schema, options) {
22
+ (0, _classCallCheck2.default)(this, RowTableBatchAggregator);
18
23
  (0, _defineProperty2.default)(this, "schema", void 0);
19
24
  (0, _defineProperty2.default)(this, "options", void 0);
20
25
  (0, _defineProperty2.default)(this, "length", 0);
@@ -28,75 +33,81 @@ class RowTableBatchAggregator {
28
33
  if (!Array.isArray(schema)) {
29
34
  this._headers = [];
30
35
 
31
- for (const key in schema) {
36
+ for (var key in schema) {
32
37
  this._headers[schema[key].index] = schema[key].name;
33
38
  }
34
39
  }
35
40
  }
36
41
 
37
- rowCount() {
38
- return this.length;
39
- }
40
-
41
- addArrayRow(row, cursor) {
42
- if (Number.isFinite(cursor)) {
43
- this.cursor = cursor;
42
+ (0, _createClass2.default)(RowTableBatchAggregator, [{
43
+ key: "rowCount",
44
+ value: function rowCount() {
45
+ return this.length;
44
46
  }
47
+ }, {
48
+ key: "addArrayRow",
49
+ value: function addArrayRow(row, cursor) {
50
+ if (Number.isFinite(cursor)) {
51
+ this.cursor = cursor;
52
+ }
45
53
 
46
- switch (this.options.shape) {
47
- case 'object-row-table':
48
- const rowObject = (0, _rowUtils.convertToObjectRow)(row, this._headers);
49
- this.addObjectRow(rowObject, cursor);
50
- break;
51
-
52
- case 'array-row-table':
53
- this.arrayRows = this.arrayRows || new Array(DEFAULT_ROW_COUNT);
54
- this.arrayRows[this.length] = row;
55
- this.length++;
56
- break;
57
- }
58
- }
59
-
60
- addObjectRow(row, cursor) {
61
- if (Number.isFinite(cursor)) {
62
- this.cursor = cursor;
54
+ switch (this.options.shape) {
55
+ case 'object-row-table':
56
+ var rowObject = (0, _rowUtils.convertToObjectRow)(row, this._headers);
57
+ this.addObjectRow(rowObject, cursor);
58
+ break;
59
+
60
+ case 'array-row-table':
61
+ this.arrayRows = this.arrayRows || new Array(DEFAULT_ROW_COUNT);
62
+ this.arrayRows[this.length] = row;
63
+ this.length++;
64
+ break;
65
+ }
63
66
  }
67
+ }, {
68
+ key: "addObjectRow",
69
+ value: function addObjectRow(row, cursor) {
70
+ if (Number.isFinite(cursor)) {
71
+ this.cursor = cursor;
72
+ }
64
73
 
65
- switch (this.options.shape) {
66
- case 'array-row-table':
67
- const rowArray = (0, _rowUtils.convertToArrayRow)(row, this._headers);
68
- this.addArrayRow(rowArray, cursor);
69
- break;
70
-
71
- case 'object-row-table':
72
- this.objectRows = this.objectRows || new Array(DEFAULT_ROW_COUNT);
73
- this.objectRows[this.length] = row;
74
- this.length++;
75
- break;
74
+ switch (this.options.shape) {
75
+ case 'array-row-table':
76
+ var rowArray = (0, _rowUtils.convertToArrayRow)(row, this._headers);
77
+ this.addArrayRow(rowArray, cursor);
78
+ break;
79
+
80
+ case 'object-row-table':
81
+ this.objectRows = this.objectRows || new Array(DEFAULT_ROW_COUNT);
82
+ this.objectRows[this.length] = row;
83
+ this.length++;
84
+ break;
85
+ }
76
86
  }
77
- }
87
+ }, {
88
+ key: "getBatch",
89
+ value: function getBatch() {
90
+ var rows = this.arrayRows || this.objectRows;
78
91
 
79
- getBatch() {
80
- let rows = this.arrayRows || this.objectRows;
92
+ if (!rows) {
93
+ return null;
94
+ }
81
95
 
82
- if (!rows) {
83
- return null;
96
+ rows = rows.slice(0, this.length);
97
+ this.arrayRows = null;
98
+ this.objectRows = null;
99
+ return {
100
+ shape: this.options.shape,
101
+ batchType: 'data',
102
+ data: rows,
103
+ length: this.length,
104
+ schema: this.schema,
105
+ cursor: this.cursor
106
+ };
84
107
  }
85
-
86
- rows = rows.slice(0, this.length);
87
- this.arrayRows = null;
88
- this.objectRows = null;
89
- return {
90
- shape: this.options.shape,
91
- batchType: 'data',
92
- data: rows,
93
- length: this.length,
94
- schema: this.schema,
95
- cursor: this.cursor
96
- };
97
- }
98
-
99
- }
108
+ }]);
109
+ return RowTableBatchAggregator;
110
+ }();
100
111
 
101
112
  exports.default = RowTableBatchAggregator;
102
113
  //# sourceMappingURL=row-table-batch-aggregator.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/batches/row-table-batch-aggregator.ts"],"names":["DEFAULT_ROW_COUNT","RowTableBatchAggregator","constructor","schema","options","Array","isArray","_headers","key","index","name","rowCount","length","addArrayRow","row","cursor","Number","isFinite","shape","rowObject","addObjectRow","arrayRows","rowArray","objectRows","getBatch","rows","slice","batchType","data"],"mappings":";;;;;;;;;;;AAGA;;AAGA,MAAMA,iBAAiB,GAAG,GAA1B;;AAEe,MAAMC,uBAAN,CAA8D;AAU3EC,EAAAA,WAAW,CAACC,MAAD,EAAiBC,OAAjB,EAA6C;AAAA;AAAA;AAAA,kDANvC,CAMuC;AAAA,sDALP,IAKO;AAAA,qDAJ9B,IAI8B;AAAA,kDAHvC,CAGuC;AAAA,oDAF3B,EAE2B;AACtD,SAAKA,OAAL,GAAeA,OAAf;AACA,SAAKD,MAAL,GAAcA,MAAd;;AAIA,QAAI,CAACE,KAAK,CAACC,OAAN,CAAcH,MAAd,CAAL,EAA4B;AAC1B,WAAKI,QAAL,GAAgB,EAAhB;;AACA,WAAK,MAAMC,GAAX,IAAkBL,MAAlB,EAA0B;AACxB,aAAKI,QAAL,CAAcJ,MAAM,CAACK,GAAD,CAAN,CAAYC,KAA1B,IAAmCN,MAAM,CAACK,GAAD,CAAN,CAAYE,IAA/C;AACD;AACF;AACF;;AAEDC,EAAAA,QAAQ,GAAW;AACjB,WAAO,KAAKC,MAAZ;AACD;;AAEDC,EAAAA,WAAW,CAACC,GAAD,EAAaC,MAAb,EAAoC;AAC7C,QAAIC,MAAM,CAACC,QAAP,CAAgBF,MAAhB,CAAJ,EAA6B;AAC3B,WAAKA,MAAL,GAAcA,MAAd;AACD;;AAGD,YAAQ,KAAKX,OAAL,CAAac,KAArB;AACE,WAAK,kBAAL;AACE,cAAMC,SAAS,GAAG,kCAAmBL,GAAnB,EAAwB,KAAKP,QAA7B,CAAlB;AACA,aAAKa,YAAL,CAAkBD,SAAlB,EAA6BJ,MAA7B;AACA;;AACF,WAAK,iBAAL;AACE,aAAKM,SAAL,GAAiB,KAAKA,SAAL,IAAkB,IAAIhB,KAAJ,CAAUL,iBAAV,CAAnC;AACA,aAAKqB,SAAL,CAAe,KAAKT,MAApB,IAA8BE,GAA9B;AACA,aAAKF,MAAL;AACA;AATJ;AAWD;;AAEDQ,EAAAA,YAAY,CAACN,GAAD,EAAmCC,MAAnC,EAA0D;AACpE,QAAIC,MAAM,CAACC,QAAP,CAAgBF,MAAhB,CAAJ,EAA6B;AAC3B,WAAKA,MAAL,GAAcA,MAAd;AACD;;AAGD,YAAQ,KAAKX,OAAL,CAAac,KAArB;AACE,WAAK,iBAAL;AACE,cAAMI,QAAQ,GAAG,iCAAkBR,GAAlB,EAAuB,KAAKP,QAA5B,CAAjB;AACA,aAAKM,WAAL,CAAiBS,QAAjB,EAA2BP,MAA3B;AACA;;AACF,WAAK,kBAAL;AACE,aAAKQ,UAAL,GAAkB,KAAKA,UAAL,IAAmB,IAAIlB,KAAJ,CAAUL,iBAAV,CAArC;AACA,aAAKuB,UAAL,CAAgB,KAAKX,MAArB,IAA+BE,GAA/B;AACA,aAAKF,MAAL;AACA;AATJ;AAWD;;AAEDY,EAAAA,QAAQ,GAAsB;AAC5B,QAAIC,IAAI,GAAG,KAAKJ,SAAL,IAAkB,KAAKE,UAAlC;;AACA,QAAI,CAACE,IAAL,EAAW;AACT,aAAO,IAAP;AACD;;AAEDA,IAAAA,IAAI,GAAGA,IAAI,CAACC,KAAL,CAAW,CAAX,EAAc,KAAKd,MAAnB,CAAP;AACA,SAAKS,SAAL,GAAiB,IAAjB;AACA,SAAKE,UAAL,GAAkB,IAAlB;AAEA,WAAO;AACLL,MAAAA,KAAK,EAAE,KAAKd,OAAL,CAAac,KADf;AAELS,MAAAA,SAAS,EAAE,MAFN;AAGLC,MAAAA,IAAI,EAAEH,IAHD;AAILb,MAAAA,MAAM,EAAE,KAAKA,MAJR;AAKLT,MAAAA,MAAM,EAAE,KAAKA,MALR;AAMLY,MAAAA,MAAM,EAAE,KAAKA;AANR,KAAP;AAQD;;AApF0E","sourcesContent":["import type {Schema} from '../schema/schema';\nimport type {TableBatch} from '../../category/table/table-types';\n// import type {ArrayRowTableBatch, ObjectRowTableBatch} from '../../category/table';\nimport {convertToArrayRow, convertToObjectRow} from '../utils/row-utils';\nimport {TableBatchAggregator, TableBatchOptions} from './table-batch-aggregator';\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport default class RowTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n options: TableBatchOptions;\n\n length: number = 0;\n objectRows: {[columnName: string]: any} | null = null;\n arrayRows: any[] | null = null;\n cursor: number = 0;\n private _headers: string[] = [];\n\n constructor(schema: Schema, options: TableBatchOptions) {\n this.options = options;\n this.schema = schema;\n\n // schema is an array if there're no headers\n // object if there are headers\n if (!Array.isArray(schema)) {\n this._headers = [];\n for (const key in schema) {\n this._headers[schema[key].index] = schema[key].name;\n }\n }\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[], cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n // eslint-disable-next-line default-case\n switch (this.options.shape) {\n case 'object-row-table':\n const rowObject = convertToObjectRow(row, this._headers);\n this.addObjectRow(rowObject, cursor);\n break;\n case 'array-row-table':\n this.arrayRows = this.arrayRows || new Array(DEFAULT_ROW_COUNT);\n this.arrayRows[this.length] = row;\n this.length++;\n break;\n }\n }\n\n addObjectRow(row: {[columnName: string]: any}, cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n // eslint-disable-next-line default-case\n switch (this.options.shape) {\n case 'array-row-table':\n const rowArray = convertToArrayRow(row, this._headers);\n this.addArrayRow(rowArray, cursor);\n break;\n case 'object-row-table':\n this.objectRows = this.objectRows || new Array(DEFAULT_ROW_COUNT);\n this.objectRows[this.length] = row;\n this.length++;\n break;\n }\n }\n\n getBatch(): TableBatch | null {\n let rows = this.arrayRows || this.objectRows;\n if (!rows) {\n return null;\n }\n\n rows = rows.slice(0, this.length);\n this.arrayRows = null;\n this.objectRows = null;\n\n return {\n shape: this.options.shape,\n batchType: 'data',\n data: rows,\n length: this.length,\n schema: this.schema,\n cursor: this.cursor\n };\n }\n}\n"],"file":"row-table-batch-aggregator.js"}
1
+ {"version":3,"sources":["../../../../src/lib/batches/row-table-batch-aggregator.ts"],"names":["DEFAULT_ROW_COUNT","RowTableBatchAggregator","schema","options","Array","isArray","_headers","key","index","name","length","row","cursor","Number","isFinite","shape","rowObject","addObjectRow","arrayRows","rowArray","addArrayRow","objectRows","rows","slice","batchType","data"],"mappings":";;;;;;;;;;;;;;;AAGA;;AAGA,IAAMA,iBAAiB,GAAG,GAA1B;;IAEqBC,uB;AAUnB,mCAAYC,MAAZ,EAA4BC,OAA5B,EAAwD;AAAA;AAAA;AAAA;AAAA,kDANvC,CAMuC;AAAA,sDALP,IAKO;AAAA,qDAJ9B,IAI8B;AAAA,kDAHvC,CAGuC;AAAA,oDAF3B,EAE2B;AACtD,SAAKA,OAAL,GAAeA,OAAf;AACA,SAAKD,MAAL,GAAcA,MAAd;;AAIA,QAAI,CAACE,KAAK,CAACC,OAAN,CAAcH,MAAd,CAAL,EAA4B;AAC1B,WAAKI,QAAL,GAAgB,EAAhB;;AACA,WAAK,IAAMC,GAAX,IAAkBL,MAAlB,EAA0B;AACxB,aAAKI,QAAL,CAAcJ,MAAM,CAACK,GAAD,CAAN,CAAYC,KAA1B,IAAmCN,MAAM,CAACK,GAAD,CAAN,CAAYE,IAA/C;AACD;AACF;AACF;;;;WAED,oBAAmB;AACjB,aAAO,KAAKC,MAAZ;AACD;;;WAED,qBAAYC,GAAZ,EAAwBC,MAAxB,EAA+C;AAC7C,UAAIC,MAAM,CAACC,QAAP,CAAgBF,MAAhB,CAAJ,EAA6B;AAC3B,aAAKA,MAAL,GAAcA,MAAd;AACD;;AAGD,cAAQ,KAAKT,OAAL,CAAaY,KAArB;AACE,aAAK,kBAAL;AACE,cAAMC,SAAS,GAAG,kCAAmBL,GAAnB,EAAwB,KAAKL,QAA7B,CAAlB;AACA,eAAKW,YAAL,CAAkBD,SAAlB,EAA6BJ,MAA7B;AACA;;AACF,aAAK,iBAAL;AACE,eAAKM,SAAL,GAAiB,KAAKA,SAAL,IAAkB,IAAId,KAAJ,CAAUJ,iBAAV,CAAnC;AACA,eAAKkB,SAAL,CAAe,KAAKR,MAApB,IAA8BC,GAA9B;AACA,eAAKD,MAAL;AACA;AATJ;AAWD;;;WAED,sBAAaC,GAAb,EAA+CC,MAA/C,EAAsE;AACpE,UAAIC,MAAM,CAACC,QAAP,CAAgBF,MAAhB,CAAJ,EAA6B;AAC3B,aAAKA,MAAL,GAAcA,MAAd;AACD;;AAGD,cAAQ,KAAKT,OAAL,CAAaY,KAArB;AACE,aAAK,iBAAL;AACE,cAAMI,QAAQ,GAAG,iCAAkBR,GAAlB,EAAuB,KAAKL,QAA5B,CAAjB;AACA,eAAKc,WAAL,CAAiBD,QAAjB,EAA2BP,MAA3B;AACA;;AACF,aAAK,kBAAL;AACE,eAAKS,UAAL,GAAkB,KAAKA,UAAL,IAAmB,IAAIjB,KAAJ,CAAUJ,iBAAV,CAArC;AACA,eAAKqB,UAAL,CAAgB,KAAKX,MAArB,IAA+BC,GAA/B;AACA,eAAKD,MAAL;AACA;AATJ;AAWD;;;WAED,oBAA8B;AAC5B,UAAIY,IAAI,GAAG,KAAKJ,SAAL,IAAkB,KAAKG,UAAlC;;AACA,UAAI,CAACC,IAAL,EAAW;AACT,eAAO,IAAP;AACD;;AAEDA,MAAAA,IAAI,GAAGA,IAAI,CAACC,KAAL,CAAW,CAAX,EAAc,KAAKb,MAAnB,CAAP;AACA,WAAKQ,SAAL,GAAiB,IAAjB;AACA,WAAKG,UAAL,GAAkB,IAAlB;AAEA,aAAO;AACLN,QAAAA,KAAK,EAAE,KAAKZ,OAAL,CAAaY,KADf;AAELS,QAAAA,SAAS,EAAE,MAFN;AAGLC,QAAAA,IAAI,EAAEH,IAHD;AAILZ,QAAAA,MAAM,EAAE,KAAKA,MAJR;AAKLR,QAAAA,MAAM,EAAE,KAAKA,MALR;AAMLU,QAAAA,MAAM,EAAE,KAAKA;AANR,OAAP;AAQD","sourcesContent":["import type {Schema} from '../schema/schema';\nimport type {TableBatch} from '../../category/table/table-types';\n// import type {ArrayRowTableBatch, ObjectRowTableBatch} from '../../category/table';\nimport {convertToArrayRow, convertToObjectRow} from '../utils/row-utils';\nimport {TableBatchAggregator, TableBatchOptions} from './table-batch-aggregator';\n\nconst DEFAULT_ROW_COUNT = 100;\n\nexport default class RowTableBatchAggregator implements TableBatchAggregator {\n schema: Schema;\n options: TableBatchOptions;\n\n length: number = 0;\n objectRows: {[columnName: string]: any} | null = null;\n arrayRows: any[] | null = null;\n cursor: number = 0;\n private _headers: string[] = [];\n\n constructor(schema: Schema, options: TableBatchOptions) {\n this.options = options;\n this.schema = schema;\n\n // schema is an array if there're no headers\n // object if there are headers\n if (!Array.isArray(schema)) {\n this._headers = [];\n for (const key in schema) {\n this._headers[schema[key].index] = schema[key].name;\n }\n }\n }\n\n rowCount(): number {\n return this.length;\n }\n\n addArrayRow(row: any[], cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n // eslint-disable-next-line default-case\n switch (this.options.shape) {\n case 'object-row-table':\n const rowObject = convertToObjectRow(row, this._headers);\n this.addObjectRow(rowObject, cursor);\n break;\n case 'array-row-table':\n this.arrayRows = this.arrayRows || new Array(DEFAULT_ROW_COUNT);\n this.arrayRows[this.length] = row;\n this.length++;\n break;\n }\n }\n\n addObjectRow(row: {[columnName: string]: any}, cursor?: number): void {\n if (Number.isFinite(cursor)) {\n this.cursor = cursor as number;\n }\n\n // eslint-disable-next-line default-case\n switch (this.options.shape) {\n case 'array-row-table':\n const rowArray = convertToArrayRow(row, this._headers);\n this.addArrayRow(rowArray, cursor);\n break;\n case 'object-row-table':\n this.objectRows = this.objectRows || new Array(DEFAULT_ROW_COUNT);\n this.objectRows[this.length] = row;\n this.length++;\n break;\n }\n }\n\n getBatch(): TableBatch | null {\n let rows = this.arrayRows || this.objectRows;\n if (!rows) {\n return null;\n }\n\n rows = rows.slice(0, this.length);\n this.arrayRows = null;\n this.objectRows = null;\n\n return {\n shape: this.options.shape,\n batchType: 'data',\n data: rows,\n length: this.length,\n schema: this.schema,\n cursor: this.cursor\n };\n }\n}\n"],"file":"row-table-batch-aggregator.js"}