@loaders.gl/schema 3.0.13 → 3.0.14
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.
- package/dist/es5/bundle.js +2 -2
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/category/mesh/mesh-utils.js +16 -16
- package/dist/es5/category/mesh/mesh-utils.js.map +1 -1
- package/dist/es5/index.js +46 -46
- package/dist/es5/lib/schema/impl/enum.js +1 -1
- package/dist/es5/lib/schema/impl/field.js +32 -19
- package/dist/es5/lib/schema/impl/field.js.map +1 -1
- package/dist/es5/lib/schema/impl/schema.js +119 -54
- package/dist/es5/lib/schema/impl/schema.js.map +1 -1
- package/dist/es5/lib/schema/impl/type.js +693 -375
- package/dist/es5/lib/schema/impl/type.js.map +1 -1
- package/dist/es5/lib/schema/index.js +36 -36
- package/dist/es5/lib/schema-utils/deduce-table-schema.js +9 -9
- package/dist/es5/lib/schema-utils/deduce-table-schema.js.map +1 -1
- package/dist/es5/lib/schema-utils/get-type-info.js +3 -3
- package/dist/es5/lib/schema-utils/get-type-info.js.map +1 -1
- package/dist/es5/lib/table/base-table-batch-aggregator.js +53 -42
- package/dist/es5/lib/table/base-table-batch-aggregator.js.map +1 -1
- package/dist/es5/lib/table/columnar-table-batch-aggregator.js +90 -71
- package/dist/es5/lib/table/columnar-table-batch-aggregator.js.map +1 -1
- package/dist/es5/lib/table/row-table-batch-aggregator.js +70 -59
- package/dist/es5/lib/table/row-table-batch-aggregator.js.map +1 -1
- package/dist/es5/lib/table/table-batch-builder.js +133 -113
- package/dist/es5/lib/table/table-batch-builder.js.map +1 -1
- package/dist/es5/lib/utils/async-queue.js +164 -81
- package/dist/es5/lib/utils/async-queue.js.map +1 -1
- package/dist/es5/lib/utils/row-utils.js +4 -4
- package/dist/es5/lib/utils/row-utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -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
|
-
|
|
18
|
+
var DEFAULT_ROW_COUNT = 100;
|
|
13
19
|
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
26
|
-
|
|
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
|
-
|
|
39
|
-
}
|
|
42
|
+
var i = 0;
|
|
40
43
|
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
for (var fieldName in this.columns) {
|
|
45
|
+
this.columns[fieldName][this.length] = row[i++];
|
|
46
|
+
}
|
|
43
47
|
|
|
44
|
-
|
|
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
|
-
|
|
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
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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/table/columnar-table-batch-aggregator.ts"],"names":["DEFAULT_ROW_COUNT","ColumnarTableBatchAggregator","
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/table/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';\nimport type {ColumnarTableBatch, ArrowTableBatch} from '../../category/table';\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
|
-
|
|
18
|
+
var DEFAULT_ROW_COUNT = 100;
|
|
15
19
|
|
|
16
|
-
|
|
17
|
-
|
|
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 (
|
|
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
|
-
|
|
38
|
-
|
|
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
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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
|
-
|
|
80
|
-
|
|
92
|
+
if (!rows) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
81
95
|
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
|
|
87
|
-
|
|
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/table/row-table-batch-aggregator.ts"],"names":["DEFAULT_ROW_COUNT","RowTableBatchAggregator","
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/table/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';\nimport type {TableBatch} from '../../category/table';\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"}
|