@loaders.gl/schema 3.4.14 → 3.4.15

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 (36) 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 +2 -7
  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-to-arrow-table.js +17 -16
  8. package/dist/es5/category/mesh/mesh-to-arrow-table.js.map +1 -1
  9. package/dist/es5/category/mesh/mesh-utils.js +15 -15
  10. package/dist/es5/category/mesh/mesh-utils.js.map +1 -1
  11. package/dist/es5/category/table/deduce-table-schema.js +9 -9
  12. package/dist/es5/category/table/deduce-table-schema.js.map +1 -1
  13. package/dist/es5/index.js +51 -51
  14. package/dist/es5/lib/arrow/get-type-info.js +3 -3
  15. package/dist/es5/lib/arrow/get-type-info.js.map +1 -1
  16. package/dist/es5/lib/batches/base-table-batch-aggregator.js +38 -51
  17. package/dist/es5/lib/batches/base-table-batch-aggregator.js.map +1 -1
  18. package/dist/es5/lib/batches/columnar-table-batch-aggregator.js +60 -81
  19. package/dist/es5/lib/batches/columnar-table-batch-aggregator.js.map +1 -1
  20. package/dist/es5/lib/batches/row-table-batch-aggregator.js +53 -66
  21. package/dist/es5/lib/batches/row-table-batch-aggregator.js.map +1 -1
  22. package/dist/es5/lib/batches/table-batch-builder.js +101 -127
  23. package/dist/es5/lib/batches/table-batch-builder.js.map +1 -1
  24. package/dist/es5/lib/schema/impl/enum.js +1 -1
  25. package/dist/es5/lib/schema/impl/field.js +17 -30
  26. package/dist/es5/lib/schema/impl/field.js.map +1 -1
  27. package/dist/es5/lib/schema/impl/schema.js +55 -105
  28. package/dist/es5/lib/schema/impl/schema.js.map +1 -1
  29. package/dist/es5/lib/schema/impl/type.js +375 -675
  30. package/dist/es5/lib/schema/impl/type.js.map +1 -1
  31. package/dist/es5/lib/schema/schema.js +37 -37
  32. package/dist/es5/lib/utils/async-queue.js +72 -138
  33. package/dist/es5/lib/utils/async-queue.js.map +1 -1
  34. package/dist/es5/lib/utils/row-utils.js +4 -4
  35. package/dist/es5/lib/utils/row-utils.js.map +1 -1
  36. package/package.json +2 -2
@@ -5,14 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
- var DEFAULT_ROW_COUNT = 100;
13
- var ColumnarTableBatchAggregator = function () {
14
- function ColumnarTableBatchAggregator(schema, options) {
15
- (0, _classCallCheck2.default)(this, ColumnarTableBatchAggregator);
9
+ const DEFAULT_ROW_COUNT = 100;
10
+ class ColumnarTableBatchAggregator {
11
+ constructor(schema, options) {
16
12
  (0, _defineProperty2.default)(this, "schema", void 0);
17
13
  (0, _defineProperty2.default)(this, "length", 0);
18
14
  (0, _defineProperty2.default)(this, "allocated", 0);
@@ -20,87 +16,70 @@ var ColumnarTableBatchAggregator = function () {
20
16
  this.schema = schema;
21
17
  this._reallocateColumns();
22
18
  }
23
- (0, _createClass2.default)(ColumnarTableBatchAggregator, [{
24
- key: "rowCount",
25
- value: function rowCount() {
26
- return this.length;
19
+ rowCount() {
20
+ return this.length;
21
+ }
22
+ addArrayRow(row) {
23
+ this._reallocateColumns();
24
+ let i = 0;
25
+ for (const fieldName in this.columns) {
26
+ this.columns[fieldName][this.length] = row[i++];
27
27
  }
28
- }, {
29
- key: "addArrayRow",
30
- value: function addArrayRow(row) {
31
- this._reallocateColumns();
32
- var i = 0;
33
- for (var fieldName in this.columns) {
34
- this.columns[fieldName][this.length] = row[i++];
35
- }
36
- this.length++;
28
+ this.length++;
29
+ }
30
+ addObjectRow(row) {
31
+ this._reallocateColumns();
32
+ for (const fieldName in row) {
33
+ this.columns[fieldName][this.length] = row[fieldName];
37
34
  }
38
- }, {
39
- key: "addObjectRow",
40
- value: function addObjectRow(row) {
41
- this._reallocateColumns();
42
- for (var fieldName in row) {
43
- this.columns[fieldName][this.length] = row[fieldName];
35
+ this.length++;
36
+ }
37
+ getBatch() {
38
+ this._pruneColumns();
39
+ const columns = Array.isArray(this.schema) ? this.columns : {};
40
+ if (!Array.isArray(this.schema)) {
41
+ for (const fieldName in this.schema) {
42
+ const field = this.schema[fieldName];
43
+ columns[field.name] = this.columns[field.index];
44
44
  }
45
- this.length++;
46
45
  }
47
- }, {
48
- key: "getBatch",
49
- value: function getBatch() {
50
- this._pruneColumns();
51
- var columns = Array.isArray(this.schema) ? this.columns : {};
52
- if (!Array.isArray(this.schema)) {
53
- for (var fieldName in this.schema) {
54
- var field = this.schema[fieldName];
55
- columns[field.name] = this.columns[field.index];
56
- }
57
- }
58
- this.columns = {};
59
- var batch = {
60
- shape: 'columnar-table',
61
- batchType: 'data',
62
- data: columns,
63
- schema: this.schema,
64
- length: this.length
65
- };
66
- return batch;
46
+ this.columns = {};
47
+ const batch = {
48
+ shape: 'columnar-table',
49
+ batchType: 'data',
50
+ data: columns,
51
+ schema: this.schema,
52
+ length: this.length
53
+ };
54
+ return batch;
55
+ }
56
+ _reallocateColumns() {
57
+ if (this.length < this.allocated) {
58
+ return;
67
59
  }
68
- }, {
69
- key: "_reallocateColumns",
70
- value: function _reallocateColumns() {
71
- if (this.length < this.allocated) {
72
- return;
73
- }
74
- this.allocated = this.allocated > 0 ? this.allocated *= 2 : DEFAULT_ROW_COUNT;
75
- this.columns = {};
76
- for (var fieldName in this.schema) {
77
- var field = this.schema[fieldName];
78
- var ArrayType = field.type || Float32Array;
79
- var oldColumn = this.columns[field.index];
80
- if (oldColumn && ArrayBuffer.isView(oldColumn)) {
81
- var typedArray = new ArrayType(this.allocated);
82
- typedArray.set(oldColumn);
83
- this.columns[field.index] = typedArray;
84
- } else if (oldColumn) {
85
- oldColumn.length = this.allocated;
86
- this.columns[field.index] = oldColumn;
87
- } else {
88
- this.columns[field.index] = new ArrayType(this.allocated);
89
- }
60
+ this.allocated = this.allocated > 0 ? this.allocated *= 2 : DEFAULT_ROW_COUNT;
61
+ this.columns = {};
62
+ for (const fieldName in this.schema) {
63
+ const field = this.schema[fieldName];
64
+ const ArrayType = field.type || Float32Array;
65
+ const oldColumn = this.columns[field.index];
66
+ if (oldColumn && ArrayBuffer.isView(oldColumn)) {
67
+ const typedArray = new ArrayType(this.allocated);
68
+ typedArray.set(oldColumn);
69
+ this.columns[field.index] = typedArray;
70
+ } else if (oldColumn) {
71
+ oldColumn.length = this.allocated;
72
+ this.columns[field.index] = oldColumn;
73
+ } else {
74
+ this.columns[field.index] = new ArrayType(this.allocated);
90
75
  }
91
76
  }
92
- }, {
93
- key: "_pruneColumns",
94
- value: function _pruneColumns() {
95
- for (var _i = 0, _Object$entries = Object.entries(this.columns); _i < _Object$entries.length; _i++) {
96
- var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
97
- _columnName = _Object$entries$_i[0],
98
- column = _Object$entries$_i[1];
99
- this.columns[_columnName] = column.slice(0, this.length);
100
- }
77
+ }
78
+ _pruneColumns() {
79
+ for (const [columnName, column] of Object.entries(this.columns)) {
80
+ this.columns[columnName] = column.slice(0, this.length);
101
81
  }
102
- }]);
103
- return ColumnarTableBatchAggregator;
104
- }();
82
+ }
83
+ }
105
84
  exports.default = ColumnarTableBatchAggregator;
106
85
  //# sourceMappingURL=columnar-table-batch-aggregator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"columnar-table-batch-aggregator.js","names":["DEFAULT_ROW_COUNT","ColumnarTableBatchAggregator","schema","options","_classCallCheck2","default","_defineProperty2","_reallocateColumns","_createClass2","key","value","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","_i","_Object$entries","Object","entries","_Object$entries$_i","_slicedToArray2","columnName","column","slice","exports"],"sources":["../../../../src/lib/batches/columnar-table-batch-aggregator.ts"],"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"],"mappings":"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"}
1
+ {"version":3,"file":"columnar-table-batch-aggregator.js","names":["DEFAULT_ROW_COUNT","ColumnarTableBatchAggregator","constructor","schema","options","_defineProperty2","default","_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","exports"],"sources":["../../../../src/lib/batches/columnar-table-batch-aggregator.ts"],"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"],"mappings":";;;;;;;;AAMA,MAAMA,iBAAiB,GAAG,GAAG;AAEd,MAAMC,4BAA4B,CAAiC;EAMhFC,WAAWA,CAACC,MAAc,EAAEC,OAAkC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAJ/C,CAAC;IAAA,IAAAD,gBAAA,CAAAC,OAAA,qBACE,CAAC;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mBACoB,CAAC,CAAC;IAGzC,IAAI,CAACH,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACI,kBAAkB,CAAC,CAAC;EAC3B;EAEAC,QAAQA,CAAA,EAAW;IACjB,OAAO,IAAI,CAACC,MAAM;EACpB;EAEAC,WAAWA,CAACC,GAAU,EAAE;IAEtB,IAAI,CAACJ,kBAAkB,CAAC,CAAC;IACzB,IAAIK,CAAC,GAAG,CAAC;IAET,KAAK,MAAMC,SAAS,IAAI,IAAI,CAACC,OAAO,EAAE;MACpC,IAAI,CAACA,OAAO,CAACD,SAAS,CAAC,CAAC,IAAI,CAACJ,MAAM,CAAC,GAAGE,GAAG,CAACC,CAAC,EAAE,CAAC;IACjD;IACA,IAAI,CAACH,MAAM,EAAE;EACf;EAEAM,YAAYA,CAACJ,GAAgC,EAAQ;IAEnD,IAAI,CAACJ,kBAAkB,CAAC,CAAC;IACzB,KAAK,MAAMM,SAAS,IAAIF,GAAG,EAAE;MAC3B,IAAI,CAACG,OAAO,CAACD,SAAS,CAAC,CAAC,IAAI,CAACJ,MAAM,CAAC,GAAGE,GAAG,CAACE,SAAS,CAAC;IACvD;IACA,IAAI,CAACJ,MAAM,EAAE;EACf;EAEAO,QAAQA,CAAA,EAAgD;IACtD,IAAI,CAACC,aAAa,CAAC,CAAC;IACpB,MAAMH,OAAO,GAAGI,KAAK,CAACC,OAAO,CAAC,IAAI,CAAChB,MAAM,CAAC,GAAG,IAAI,CAACW,OAAO,GAAG,CAAC,CAAC;IAK9D,IAAI,CAACI,KAAK,CAACC,OAAO,CAAC,IAAI,CAAChB,MAAM,CAAC,EAAE;MAC/B,KAAK,MAAMU,SAAS,IAAI,IAAI,CAACV,MAAM,EAAE;QACnC,MAAMiB,KAAK,GAAG,IAAI,CAACjB,MAAM,CAACU,SAAS,CAAC;QACpCC,OAAO,CAACM,KAAK,CAACC,IAAI,CAAC,GAAG,IAAI,CAACP,OAAO,CAACM,KAAK,CAACE,KAAK,CAAC;MACjD;IACF;IAEA,IAAI,CAACR,OAAO,GAAG,CAAC,CAAC;IAEjB,MAAMS,KAAyB,GAAG;MAChCC,KAAK,EAAE,gBAAgB;MACvBC,SAAS,EAAE,MAAM;MACjBC,IAAI,EAAEZ,OAAO;MACbX,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBM,MAAM,EAAE,IAAI,CAACA;IACf,CAAC;IAED,OAAOc,KAAK;EACd;EAIAhB,kBAAkBA,CAAA,EAAG;IACnB,IAAI,IAAI,CAACE,MAAM,GAAG,IAAI,CAACkB,SAAS,EAAE;MAChC;IACF;IAGA,IAAI,CAACA,SAAS,GAAG,IAAI,CAACA,SAAS,GAAG,CAAC,GAAI,IAAI,CAACA,SAAS,IAAI,CAAC,GAAI3B,iBAAiB;IAC/E,IAAI,CAACc,OAAO,GAAG,CAAC,CAAC;IAEjB,KAAK,MAAMD,SAAS,IAAI,IAAI,CAACV,MAAM,EAAE;MACnC,MAAMiB,KAAK,GAAG,IAAI,CAACjB,MAAM,CAACU,SAAS,CAAC;MACpC,MAAMe,SAAS,GAAGR,KAAK,CAACS,IAAI,IAAIC,YAAY;MAC5C,MAAMC,SAAS,GAAG,IAAI,CAACjB,OAAO,CAACM,KAAK,CAACE,KAAK,CAAC;MAE3C,IAAIS,SAAS,IAAIC,WAAW,CAACC,MAAM,CAACF,SAAS,CAAC,EAAE;QAE9C,MAAMG,UAAU,GAAG,IAAIN,SAAS,CAAC,IAAI,CAACD,SAAS,CAAC;QAChDO,UAAU,CAACC,GAAG,CAACJ,SAAS,CAAC;QACzB,IAAI,CAACjB,OAAO,CAACM,KAAK,CAACE,KAAK,CAAC,GAAGY,UAAU;MACxC,CAAC,MAAM,IAAIH,SAAS,EAAE;QAEpBA,SAAS,CAACtB,MAAM,GAAG,IAAI,CAACkB,SAAS;QACjC,IAAI,CAACb,OAAO,CAACM,KAAK,CAACE,KAAK,CAAC,GAAGS,SAAS;MACvC,CAAC,MAAM;QAEL,IAAI,CAACjB,OAAO,CAACM,KAAK,CAACE,KAAK,CAAC,GAAG,IAAIM,SAAS,CAAC,IAAI,CAACD,SAAS,CAAC;MAC3D;IACF;EACF;EAEAV,aAAaA,CAAA,EAAG;IACd,KAAK,MAAM,CAACmB,UAAU,EAAEC,MAAM,CAAC,IAAIC,MAAM,CAACC,OAAO,CAAC,IAAI,CAACzB,OAAO,CAAC,EAAE;MAC/D,IAAI,CAACA,OAAO,CAACsB,UAAU,CAAC,GAAGC,MAAM,CAACG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC/B,MAAM,CAAC;IACzD;EACF;AACF;AAACgC,OAAA,CAAAnC,OAAA,GAAAL,4BAAA"}
@@ -5,14 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
9
  var _rowUtils = require("../utils/row-utils");
12
- var DEFAULT_ROW_COUNT = 100;
13
- var RowTableBatchAggregator = function () {
14
- function RowTableBatchAggregator(schema, options) {
15
- (0, _classCallCheck2.default)(this, RowTableBatchAggregator);
10
+ const DEFAULT_ROW_COUNT = 100;
11
+ class RowTableBatchAggregator {
12
+ constructor(schema, options) {
16
13
  (0, _defineProperty2.default)(this, "schema", void 0);
17
14
  (0, _defineProperty2.default)(this, "options", void 0);
18
15
  (0, _defineProperty2.default)(this, "length", 0);
@@ -24,73 +21,63 @@ var RowTableBatchAggregator = function () {
24
21
  this.schema = schema;
25
22
  if (!Array.isArray(schema)) {
26
23
  this._headers = [];
27
- for (var key in schema) {
24
+ for (const key in schema) {
28
25
  this._headers[schema[key].index] = schema[key].name;
29
26
  }
30
27
  }
31
28
  }
32
- (0, _createClass2.default)(RowTableBatchAggregator, [{
33
- key: "rowCount",
34
- value: function rowCount() {
35
- return this.length;
29
+ rowCount() {
30
+ return this.length;
31
+ }
32
+ addArrayRow(row, cursor) {
33
+ if (Number.isFinite(cursor)) {
34
+ this.cursor = cursor;
36
35
  }
37
- }, {
38
- key: "addArrayRow",
39
- value: function addArrayRow(row, cursor) {
40
- if (Number.isFinite(cursor)) {
41
- this.cursor = cursor;
42
- }
43
- switch (this.options.shape) {
44
- case 'object-row-table':
45
- var rowObject = (0, _rowUtils.convertToObjectRow)(row, this._headers);
46
- this.addObjectRow(rowObject, cursor);
47
- break;
48
- case 'array-row-table':
49
- this.arrayRows = this.arrayRows || new Array(DEFAULT_ROW_COUNT);
50
- this.arrayRows[this.length] = row;
51
- this.length++;
52
- break;
53
- }
36
+ switch (this.options.shape) {
37
+ case 'object-row-table':
38
+ const rowObject = (0, _rowUtils.convertToObjectRow)(row, this._headers);
39
+ this.addObjectRow(rowObject, cursor);
40
+ break;
41
+ case 'array-row-table':
42
+ this.arrayRows = this.arrayRows || new Array(DEFAULT_ROW_COUNT);
43
+ this.arrayRows[this.length] = row;
44
+ this.length++;
45
+ break;
54
46
  }
55
- }, {
56
- key: "addObjectRow",
57
- value: function addObjectRow(row, cursor) {
58
- if (Number.isFinite(cursor)) {
59
- this.cursor = cursor;
60
- }
61
- switch (this.options.shape) {
62
- case 'array-row-table':
63
- var rowArray = (0, _rowUtils.convertToArrayRow)(row, this._headers);
64
- this.addArrayRow(rowArray, cursor);
65
- break;
66
- case 'object-row-table':
67
- this.objectRows = this.objectRows || new Array(DEFAULT_ROW_COUNT);
68
- this.objectRows[this.length] = row;
69
- this.length++;
70
- break;
71
- }
47
+ }
48
+ addObjectRow(row, cursor) {
49
+ if (Number.isFinite(cursor)) {
50
+ this.cursor = cursor;
72
51
  }
73
- }, {
74
- key: "getBatch",
75
- value: function getBatch() {
76
- var rows = this.arrayRows || this.objectRows;
77
- if (!rows) {
78
- return null;
79
- }
80
- rows = rows.slice(0, this.length);
81
- this.arrayRows = null;
82
- this.objectRows = null;
83
- return {
84
- shape: this.options.shape,
85
- batchType: 'data',
86
- data: rows,
87
- length: this.length,
88
- schema: this.schema,
89
- cursor: this.cursor
90
- };
52
+ switch (this.options.shape) {
53
+ case 'array-row-table':
54
+ const rowArray = (0, _rowUtils.convertToArrayRow)(row, this._headers);
55
+ this.addArrayRow(rowArray, cursor);
56
+ break;
57
+ case 'object-row-table':
58
+ this.objectRows = this.objectRows || new Array(DEFAULT_ROW_COUNT);
59
+ this.objectRows[this.length] = row;
60
+ this.length++;
61
+ break;
91
62
  }
92
- }]);
93
- return RowTableBatchAggregator;
94
- }();
63
+ }
64
+ getBatch() {
65
+ let rows = this.arrayRows || this.objectRows;
66
+ if (!rows) {
67
+ return null;
68
+ }
69
+ rows = rows.slice(0, this.length);
70
+ this.arrayRows = null;
71
+ this.objectRows = null;
72
+ return {
73
+ shape: this.options.shape,
74
+ batchType: 'data',
75
+ data: rows,
76
+ length: this.length,
77
+ schema: this.schema,
78
+ cursor: this.cursor
79
+ };
80
+ }
81
+ }
95
82
  exports.default = RowTableBatchAggregator;
96
83
  //# sourceMappingURL=row-table-batch-aggregator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"row-table-batch-aggregator.js","names":["_rowUtils","require","DEFAULT_ROW_COUNT","RowTableBatchAggregator","schema","options","_classCallCheck2","default","_defineProperty2","Array","isArray","_headers","key","index","name","_createClass2","value","rowCount","length","addArrayRow","row","cursor","Number","isFinite","shape","rowObject","convertToObjectRow","addObjectRow","arrayRows","rowArray","convertToArrayRow","objectRows","getBatch","rows","slice","batchType","data","exports"],"sources":["../../../../src/lib/batches/row-table-batch-aggregator.ts"],"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"],"mappings":"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"}
1
+ {"version":3,"file":"row-table-batch-aggregator.js","names":["_rowUtils","require","DEFAULT_ROW_COUNT","RowTableBatchAggregator","constructor","schema","options","_defineProperty2","default","Array","isArray","_headers","key","index","name","rowCount","length","addArrayRow","row","cursor","Number","isFinite","shape","rowObject","convertToObjectRow","addObjectRow","arrayRows","rowArray","convertToArrayRow","objectRows","getBatch","rows","slice","batchType","data","exports"],"sources":["../../../../src/lib/batches/row-table-batch-aggregator.ts"],"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"],"mappings":"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"}