@loaders.gl/schema 3.1.0-alpha.4 → 3.1.0-alpha.5

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 (73) hide show
  1. package/dist/bundle.d.ts +1 -0
  2. package/dist/category/common.d.ts +18 -0
  3. package/dist/category/gis.d.ts +50 -0
  4. package/dist/category/mesh/convert-mesh.d.ts +14 -0
  5. package/dist/category/mesh/deduce-mesh-schema.d.ts +23 -0
  6. package/dist/category/mesh/mesh-to-arrow-table.d.ts +10 -0
  7. package/dist/category/mesh/mesh-types.d.ts +49 -0
  8. package/dist/category/mesh/mesh-utils.d.ts +22 -0
  9. package/dist/category/table/deduce-table-schema.d.ts +8 -0
  10. package/dist/category/table/table-types.d.ts +75 -0
  11. package/dist/dist.min.js.map +1 -1
  12. package/dist/es5/bundle.js +1 -1
  13. package/dist/es5/bundle.js.map +1 -1
  14. package/dist/es5/category/mesh/convert-mesh.js +2 -10
  15. package/dist/es5/category/mesh/convert-mesh.js.map +1 -1
  16. package/dist/es5/category/mesh/deduce-mesh-schema.js +8 -8
  17. package/dist/es5/category/mesh/deduce-mesh-schema.js.map +1 -1
  18. package/dist/es5/category/mesh/mesh-to-arrow-table.js +18 -17
  19. package/dist/es5/category/mesh/mesh-to-arrow-table.js.map +1 -1
  20. package/dist/es5/category/mesh/mesh-utils.js +16 -16
  21. package/dist/es5/category/mesh/mesh-utils.js.map +1 -1
  22. package/dist/es5/category/table/deduce-table-schema.js +9 -9
  23. package/dist/es5/category/table/deduce-table-schema.js.map +1 -1
  24. package/dist/es5/index.js +52 -52
  25. package/dist/es5/lib/arrow/get-type-info.js +3 -3
  26. package/dist/es5/lib/arrow/get-type-info.js.map +1 -1
  27. package/dist/es5/lib/batches/base-table-batch-aggregator.js +42 -53
  28. package/dist/es5/lib/batches/base-table-batch-aggregator.js.map +1 -1
  29. package/dist/es5/lib/batches/columnar-table-batch-aggregator.js +71 -90
  30. package/dist/es5/lib/batches/columnar-table-batch-aggregator.js.map +1 -1
  31. package/dist/es5/lib/batches/row-table-batch-aggregator.js +59 -70
  32. package/dist/es5/lib/batches/row-table-batch-aggregator.js.map +1 -1
  33. package/dist/es5/lib/batches/table-batch-builder.js +113 -133
  34. package/dist/es5/lib/batches/table-batch-builder.js.map +1 -1
  35. package/dist/es5/lib/schema/impl/enum.js +1 -1
  36. package/dist/es5/lib/schema/impl/field.js +19 -32
  37. package/dist/es5/lib/schema/impl/field.js.map +1 -1
  38. package/dist/es5/lib/schema/impl/schema.js +54 -119
  39. package/dist/es5/lib/schema/impl/schema.js.map +1 -1
  40. package/dist/es5/lib/schema/impl/type.js +395 -728
  41. package/dist/es5/lib/schema/impl/type.js.map +1 -1
  42. package/dist/es5/lib/schema/index.js +37 -37
  43. package/dist/es5/lib/utils/async-queue.js +81 -164
  44. package/dist/es5/lib/utils/async-queue.js.map +1 -1
  45. package/dist/es5/lib/utils/row-utils.js +4 -4
  46. package/dist/es5/lib/utils/row-utils.js.map +1 -1
  47. package/dist/esm/category/mesh/convert-mesh.js +1 -1
  48. package/dist/esm/category/mesh/convert-mesh.js.map +1 -1
  49. package/dist/esm/lib/schema/impl/field.js +1 -1
  50. package/dist/esm/lib/schema/impl/field.js.map +1 -1
  51. package/dist/esm/lib/schema/impl/type.js +8 -8
  52. package/dist/esm/lib/schema/impl/type.js.map +1 -1
  53. package/dist/index.d.ts +22 -0
  54. package/dist/lib/arrow/arrow-like-type-utils.d.ts +3 -0
  55. package/dist/lib/arrow/arrow-type-utils.d.ts +5 -0
  56. package/dist/lib/arrow/get-type-info.d.ts +13 -0
  57. package/dist/lib/batches/base-table-batch-aggregator.d.ts +18 -0
  58. package/dist/lib/batches/columnar-table-batch-aggregator.d.ts +22 -0
  59. package/dist/lib/batches/row-table-batch-aggregator.d.ts +21 -0
  60. package/dist/lib/batches/table-batch-aggregator.d.ts +24 -0
  61. package/dist/lib/batches/table-batch-builder.d.ts +52 -0
  62. package/dist/lib/schema/impl/enum.d.ts +91 -0
  63. package/dist/lib/schema/impl/field.d.ts +18 -0
  64. package/dist/lib/schema/impl/schema.d.ts +15 -0
  65. package/dist/lib/schema/impl/type.d.ts +175 -0
  66. package/dist/lib/schema/index.d.ts +4 -0
  67. package/dist/lib/schema-utils/deduce-column-type.d.ts +2 -0
  68. package/dist/lib/utils/assert.d.ts +1 -0
  69. package/dist/lib/utils/async-queue.d.ts +17 -0
  70. package/dist/lib/utils/row-utils.d.ts +8 -0
  71. package/dist/types.d.ts +7 -0
  72. package/package.json +5 -5
  73. package/src/category/gis.ts +1 -0
@@ -7,10 +7,6 @@ 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
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
11
 
16
12
  var _baseTableBatchAggregator = _interopRequireDefault(require("./base-table-batch-aggregator"));
@@ -19,22 +15,17 @@ var _rowTableBatchAggregator = _interopRequireDefault(require("./row-table-batch
19
15
 
20
16
  var _columnarTableBatchAggregator = _interopRequireDefault(require("./columnar-table-batch-aggregator"));
21
17
 
22
- 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; }
23
-
24
- 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; }
25
-
26
- var DEFAULT_OPTIONS = {
18
+ const DEFAULT_OPTIONS = {
27
19
  shape: 'array-row-table',
28
20
  batchSize: 'auto',
29
21
  batchDebounceMs: 0,
30
22
  limit: 0,
31
23
  _limitMB: 0
32
24
  };
33
- var ERR_MESSAGE = 'TableBatchBuilder';
25
+ const ERR_MESSAGE = 'TableBatchBuilder';
34
26
 
35
- var TableBatchBuilder = function () {
36
- function TableBatchBuilder(schema, options) {
37
- (0, _classCallCheck2.default)(this, TableBatchBuilder);
27
+ class TableBatchBuilder {
28
+ constructor(schema, options) {
38
29
  (0, _defineProperty2.default)(this, "schema", void 0);
39
30
  (0, _defineProperty2.default)(this, "options", void 0);
40
31
  (0, _defineProperty2.default)(this, "aggregator", null);
@@ -46,161 +37,150 @@ var TableBatchBuilder = function () {
46
37
  (0, _defineProperty2.default)(this, "totalBytes", 0);
47
38
  (0, _defineProperty2.default)(this, "rowBytes", 0);
48
39
  this.schema = schema;
49
- this.options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);
40
+ this.options = { ...DEFAULT_OPTIONS,
41
+ ...options
42
+ };
50
43
  }
51
44
 
52
- (0, _createClass2.default)(TableBatchBuilder, [{
53
- key: "limitReached",
54
- value: function limitReached() {
55
- var _this$options, _this$options2;
45
+ limitReached() {
46
+ var _this$options, _this$options2;
56
47
 
57
- if (Boolean((_this$options = this.options) === null || _this$options === void 0 ? void 0 : _this$options.limit) && this.totalLength >= this.options.limit) {
58
- return true;
59
- }
60
-
61
- if (Boolean((_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2._limitMB) && this.totalBytes / 1e6 >= this.options._limitMB) {
62
- return true;
63
- }
48
+ if (Boolean((_this$options = this.options) === null || _this$options === void 0 ? void 0 : _this$options.limit) && this.totalLength >= this.options.limit) {
49
+ return true;
50
+ }
64
51
 
65
- return false;
52
+ if (Boolean((_this$options2 = this.options) === null || _this$options2 === void 0 ? void 0 : _this$options2._limitMB) && this.totalBytes / 1e6 >= this.options._limitMB) {
53
+ return true;
66
54
  }
67
- }, {
68
- key: "addRow",
69
- value: function addRow(row) {
70
- if (this.limitReached()) {
71
- return;
72
- }
73
55
 
74
- this.totalLength++;
75
- this.rowBytes = this.rowBytes || this._estimateRowMB(row);
76
- this.totalBytes += this.rowBytes;
56
+ return false;
57
+ }
77
58
 
78
- if (Array.isArray(row)) {
79
- this.addArrayRow(row);
80
- } else {
81
- this.addObjectRow(row);
82
- }
59
+ addRow(row) {
60
+ if (this.limitReached()) {
61
+ return;
83
62
  }
84
- }, {
85
- key: "addArrayRow",
86
- value: function addArrayRow(row) {
87
- if (!this.aggregator) {
88
- var TableBatchType = this._getTableBatchType();
89
63
 
90
- this.aggregator = new TableBatchType(this.schema, this.options);
91
- }
64
+ this.totalLength++;
65
+ this.rowBytes = this.rowBytes || this._estimateRowMB(row);
66
+ this.totalBytes += this.rowBytes;
92
67
 
93
- this.aggregator.addArrayRow(row);
68
+ if (Array.isArray(row)) {
69
+ this.addArrayRow(row);
70
+ } else {
71
+ this.addObjectRow(row);
94
72
  }
95
- }, {
96
- key: "addObjectRow",
97
- value: function addObjectRow(row) {
98
- if (!this.aggregator) {
99
- var TableBatchType = this._getTableBatchType();
73
+ }
100
74
 
101
- this.aggregator = new TableBatchType(this.schema, this.options);
102
- }
75
+ addArrayRow(row) {
76
+ if (!this.aggregator) {
77
+ const TableBatchType = this._getTableBatchType();
103
78
 
104
- this.aggregator.addObjectRow(row);
79
+ this.aggregator = new TableBatchType(this.schema, this.options);
105
80
  }
106
- }, {
107
- key: "chunkComplete",
108
- value: function chunkComplete(chunk) {
109
- if (chunk instanceof ArrayBuffer) {
110
- this.bytesUsed += chunk.byteLength;
111
- }
112
81
 
113
- if (typeof chunk === 'string') {
114
- this.bytesUsed += chunk.length;
115
- }
82
+ this.aggregator.addArrayRow(row);
83
+ }
116
84
 
117
- this.isChunkComplete = true;
118
- }
119
- }, {
120
- key: "getFullBatch",
121
- value: function getFullBatch(options) {
122
- return this._isFull() ? this._getBatch(options) : null;
85
+ addObjectRow(row) {
86
+ if (!this.aggregator) {
87
+ const TableBatchType = this._getTableBatchType();
88
+
89
+ this.aggregator = new TableBatchType(this.schema, this.options);
123
90
  }
124
- }, {
125
- key: "getFinalBatch",
126
- value: function getFinalBatch(options) {
127
- return this._getBatch(options);
91
+
92
+ this.aggregator.addObjectRow(row);
93
+ }
94
+
95
+ chunkComplete(chunk) {
96
+ if (chunk instanceof ArrayBuffer) {
97
+ this.bytesUsed += chunk.byteLength;
128
98
  }
129
- }, {
130
- key: "_estimateRowMB",
131
- value: function _estimateRowMB(row) {
132
- return Array.isArray(row) ? row.length * 8 : Object.keys(row).length * 8;
99
+
100
+ if (typeof chunk === 'string') {
101
+ this.bytesUsed += chunk.length;
133
102
  }
134
- }, {
135
- key: "_isFull",
136
- value: function _isFull() {
137
- if (!this.aggregator || this.aggregator.rowCount() === 0) {
138
- return false;
139
- }
140
103
 
141
- if (this.options.batchSize === 'auto') {
142
- if (!this.isChunkComplete) {
143
- return false;
144
- }
145
- } else if (this.options.batchSize > this.aggregator.rowCount()) {
146
- return false;
147
- }
104
+ this.isChunkComplete = true;
105
+ }
106
+
107
+ getFullBatch(options) {
108
+ return this._isFull() ? this._getBatch(options) : null;
109
+ }
110
+
111
+ getFinalBatch(options) {
112
+ return this._getBatch(options);
113
+ }
148
114
 
149
- if (this.options.batchDebounceMs > Date.now() - this.lastBatchEmittedMs) {
115
+ _estimateRowMB(row) {
116
+ return Array.isArray(row) ? row.length * 8 : Object.keys(row).length * 8;
117
+ }
118
+
119
+ _isFull() {
120
+ if (!this.aggregator || this.aggregator.rowCount() === 0) {
121
+ return false;
122
+ }
123
+
124
+ if (this.options.batchSize === 'auto') {
125
+ if (!this.isChunkComplete) {
150
126
  return false;
151
127
  }
128
+ } else if (this.options.batchSize > this.aggregator.rowCount()) {
129
+ return false;
130
+ }
152
131
 
153
- this.isChunkComplete = false;
154
- this.lastBatchEmittedMs = Date.now();
155
- return true;
132
+ if (this.options.batchDebounceMs > Date.now() - this.lastBatchEmittedMs) {
133
+ return false;
156
134
  }
157
- }, {
158
- key: "_getBatch",
159
- value: function _getBatch(options) {
160
- if (!this.aggregator) {
161
- return null;
162
- }
163
135
 
164
- if (options !== null && options !== void 0 && options.bytesUsed) {
165
- this.bytesUsed = options.bytesUsed;
166
- }
136
+ this.isChunkComplete = false;
137
+ this.lastBatchEmittedMs = Date.now();
138
+ return true;
139
+ }
140
+
141
+ _getBatch(options) {
142
+ if (!this.aggregator) {
143
+ return null;
144
+ }
167
145
 
168
- var normalizedBatch = this.aggregator.getBatch();
169
- normalizedBatch.count = this.batchCount;
170
- normalizedBatch.bytesUsed = this.bytesUsed;
171
- Object.assign(normalizedBatch, options);
172
- this.batchCount++;
173
- this.aggregator = null;
174
- return normalizedBatch;
146
+ if (options !== null && options !== void 0 && options.bytesUsed) {
147
+ this.bytesUsed = options.bytesUsed;
175
148
  }
176
- }, {
177
- key: "_getTableBatchType",
178
- value: function _getTableBatchType() {
179
- switch (this.options.shape) {
180
- case 'row-table':
181
- return _baseTableBatchAggregator.default;
182
149
 
183
- case 'array-row-table':
184
- case 'object-row-table':
185
- return _rowTableBatchAggregator.default;
150
+ const normalizedBatch = this.aggregator.getBatch();
151
+ normalizedBatch.count = this.batchCount;
152
+ normalizedBatch.bytesUsed = this.bytesUsed;
153
+ Object.assign(normalizedBatch, options);
154
+ this.batchCount++;
155
+ this.aggregator = null;
156
+ return normalizedBatch;
157
+ }
186
158
 
187
- case 'columnar-table':
188
- return _columnarTableBatchAggregator.default;
159
+ _getTableBatchType() {
160
+ switch (this.options.shape) {
161
+ case 'row-table':
162
+ return _baseTableBatchAggregator.default;
189
163
 
190
- case 'arrow-table':
191
- if (!TableBatchBuilder.ArrowBatch) {
192
- throw new Error(ERR_MESSAGE);
193
- }
164
+ case 'array-row-table':
165
+ case 'object-row-table':
166
+ return _rowTableBatchAggregator.default;
194
167
 
195
- return TableBatchBuilder.ArrowBatch;
168
+ case 'columnar-table':
169
+ return _columnarTableBatchAggregator.default;
196
170
 
197
- default:
171
+ case 'arrow-table':
172
+ if (!TableBatchBuilder.ArrowBatch) {
198
173
  throw new Error(ERR_MESSAGE);
199
- }
174
+ }
175
+
176
+ return TableBatchBuilder.ArrowBatch;
177
+
178
+ default:
179
+ throw new Error(ERR_MESSAGE);
200
180
  }
201
- }]);
202
- return TableBatchBuilder;
203
- }();
181
+ }
182
+
183
+ }
204
184
 
205
185
  exports.default = TableBatchBuilder;
206
186
  (0, _defineProperty2.default)(TableBatchBuilder, "ArrowBatch", void 0);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/batches/table-batch-builder.ts"],"names":["DEFAULT_OPTIONS","shape","batchSize","batchDebounceMs","limit","_limitMB","ERR_MESSAGE","TableBatchBuilder","schema","options","Date","now","Boolean","totalLength","totalBytes","row","limitReached","rowBytes","_estimateRowMB","Array","isArray","addArrayRow","addObjectRow","aggregator","TableBatchType","_getTableBatchType","chunk","ArrayBuffer","bytesUsed","byteLength","length","isChunkComplete","_isFull","_getBatch","Object","keys","rowCount","lastBatchEmittedMs","normalizedBatch","getBatch","count","batchCount","assign","BaseTableBatchAggregator","RowTableBatchAggregator","ColumnarTableBatchAggregator","ArrowBatch","Error"],"mappings":";;;;;;;;;;;;;;;AAGA;;AACA;;AACA;;;;;;AAgBA,IAAMA,eAAmD,GAAG;AAC1DC,EAAAA,KAAK,EAAE,iBADmD;AAE1DC,EAAAA,SAAS,EAAE,MAF+C;AAG1DC,EAAAA,eAAe,EAAE,CAHyC;AAI1DC,EAAAA,KAAK,EAAE,CAJmD;AAK1DC,EAAAA,QAAQ,EAAE;AALgD,CAA5D;AAQA,IAAMC,WAAW,GAAG,mBAApB;;IAGqBC,iB;AAenB,6BAAYC,MAAZ,EAA4BC,OAA5B,EAAgE;AAAA;AAAA;AAAA;AAAA,sDAXd,IAWc;AAAA,sDAVnC,CAUmC;AAAA,qDATpC,CASoC;AAAA,2DAR7B,KAQ6B;AAAA,8DAP3BC,IAAI,CAACC,GAAL,EAO2B;AAAA,uDANlC,CAMkC;AAAA,sDALnC,CAKmC;AAAA,oDAJrC,CAIqC;AAC9D,SAAKH,MAAL,GAAcA,MAAd;AACA,SAAKC,OAAL,mCAAmBT,eAAnB,GAAuCS,OAAvC;AACD;;;;WAED,wBAAwB;AAAA;;AACtB,UAAIG,OAAO,kBAAC,KAAKH,OAAN,kDAAC,cAAcL,KAAf,CAAP,IAAgC,KAAKS,WAAL,IAAoB,KAAKJ,OAAL,CAAaL,KAArE,EAA4E;AAC1E,eAAO,IAAP;AACD;;AACD,UAAIQ,OAAO,mBAAC,KAAKH,OAAN,mDAAC,eAAcJ,QAAf,CAAP,IAAmC,KAAKS,UAAL,GAAkB,GAAlB,IAAyB,KAAKL,OAAL,CAAaJ,QAA7E,EAAuF;AACrF,eAAO,IAAP;AACD;;AACD,aAAO,KAAP;AACD;;;WAGD,gBAAOU,GAAP,EAAuD;AACrD,UAAI,KAAKC,YAAL,EAAJ,EAAyB;AACvB;AACD;;AACD,WAAKH,WAAL;AACA,WAAKI,QAAL,GAAgB,KAAKA,QAAL,IAAiB,KAAKC,cAAL,CAAoBH,GAApB,CAAjC;AACA,WAAKD,UAAL,IAAmB,KAAKG,QAAxB;;AACA,UAAIE,KAAK,CAACC,OAAN,CAAcL,GAAd,CAAJ,EAAwB;AACtB,aAAKM,WAAL,CAAiBN,GAAjB;AACD,OAFD,MAEO;AACL,aAAKO,YAAL,CAAkBP,GAAlB;AACD;AACF;;;WAGD,qBAAsBA,GAAtB,EAAkC;AAChC,UAAI,CAAC,KAAKQ,UAAV,EAAsB;AACpB,YAAMC,cAAc,GAAG,KAAKC,kBAAL,EAAvB;;AACA,aAAKF,UAAL,GAAkB,IAAIC,cAAJ,CAAmB,KAAKhB,MAAxB,EAAgC,KAAKC,OAArC,CAAlB;AACD;;AACD,WAAKc,UAAL,CAAgBF,WAAhB,CAA4BN,GAA5B;AACD;;;WAGD,sBAAuBA,GAAvB,EAA+D;AAC7D,UAAI,CAAC,KAAKQ,UAAV,EAAsB;AACpB,YAAMC,cAAc,GAAG,KAAKC,kBAAL,EAAvB;;AACA,aAAKF,UAAL,GAAkB,IAAIC,cAAJ,CAAmB,KAAKhB,MAAxB,EAAgC,KAAKC,OAArC,CAAlB;AACD;;AACD,WAAKc,UAAL,CAAgBD,YAAhB,CAA6BP,GAA7B;AACD;;;WAGD,uBAAcW,KAAd,EAAiD;AAC/C,UAAIA,KAAK,YAAYC,WAArB,EAAkC;AAChC,aAAKC,SAAL,IAAkBF,KAAK,CAACG,UAAxB;AACD;;AACD,UAAI,OAAOH,KAAP,KAAiB,QAArB,EAA+B;AAC7B,aAAKE,SAAL,IAAkBF,KAAK,CAACI,MAAxB;AACD;;AACD,WAAKC,eAAL,GAAuB,IAAvB;AACD;;;WAED,sBAAatB,OAAb,EAA2D;AACzD,aAAO,KAAKuB,OAAL,KAAiB,KAAKC,SAAL,CAAexB,OAAf,CAAjB,GAA2C,IAAlD;AACD;;;WAED,uBAAcA,OAAd,EAA4D;AAC1D,aAAO,KAAKwB,SAAL,CAAexB,OAAf,CAAP;AACD;;;WAID,wBAAeM,GAAf,EAAoB;AAClB,aAAOI,KAAK,CAACC,OAAN,CAAcL,GAAd,IAAqBA,GAAG,CAACe,MAAJ,GAAa,CAAlC,GAAsCI,MAAM,CAACC,IAAP,CAAYpB,GAAZ,EAAiBe,MAAjB,GAA0B,CAAvE;AACD;;;WAED,mBAA2B;AAEzB,UAAI,CAAC,KAAKP,UAAN,IAAoB,KAAKA,UAAL,CAAgBa,QAAhB,OAA+B,CAAvD,EAA0D;AACxD,eAAO,KAAP;AACD;;AAID,UAAI,KAAK3B,OAAL,CAAaP,SAAb,KAA2B,MAA/B,EAAuC;AACrC,YAAI,CAAC,KAAK6B,eAAV,EAA2B;AACzB,iBAAO,KAAP;AACD;AACF,OAJD,MAIO,IAAI,KAAKtB,OAAL,CAAaP,SAAb,GAAyB,KAAKqB,UAAL,CAAgBa,QAAhB,EAA7B,EAAyD;AAC9D,eAAO,KAAP;AACD;;AAGD,UAAI,KAAK3B,OAAL,CAAaN,eAAb,GAA+BO,IAAI,CAACC,GAAL,KAAa,KAAK0B,kBAArD,EAAyE;AACvE,eAAO,KAAP;AACD;;AAGD,WAAKN,eAAL,GAAuB,KAAvB;AACA,WAAKM,kBAAL,GAA0B3B,IAAI,CAACC,GAAL,EAA1B;AACA,aAAO,IAAP;AACD;;;WAKD,mBAAkBF,OAAlB,EAAgE;AAC9D,UAAI,CAAC,KAAKc,UAAV,EAAsB;AACpB,eAAO,IAAP;AACD;;AAGD,UAAId,OAAJ,aAAIA,OAAJ,eAAIA,OAAO,CAAEmB,SAAb,EAAwB;AACtB,aAAKA,SAAL,GAAiBnB,OAAO,CAACmB,SAAzB;AACD;;AACD,UAAMU,eAAe,GAAG,KAAKf,UAAL,CAAgBgB,QAAhB,EAAxB;AACAD,MAAAA,eAAe,CAACE,KAAhB,GAAwB,KAAKC,UAA7B;AACAH,MAAAA,eAAe,CAACV,SAAhB,GAA4B,KAAKA,SAAjC;AACAM,MAAAA,MAAM,CAACQ,MAAP,CAAcJ,eAAd,EAA+B7B,OAA/B;AAEA,WAAKgC,UAAL;AACA,WAAKlB,UAAL,GAAkB,IAAlB;AACA,aAAOe,eAAP;AACD;;;WAED,8BAAoD;AAClD,cAAQ,KAAK7B,OAAL,CAAaR,KAArB;AACE,aAAK,WAAL;AACE,iBAAO0C,iCAAP;;AACF,aAAK,iBAAL;AACA,aAAK,kBAAL;AACE,iBAAOC,gCAAP;;AACF,aAAK,gBAAL;AACE,iBAAOC,qCAAP;;AACF,aAAK,aAAL;AACE,cAAI,CAACtC,iBAAiB,CAACuC,UAAvB,EAAmC;AACjC,kBAAM,IAAIC,KAAJ,CAAUzC,WAAV,CAAN;AACD;;AACD,iBAAOC,iBAAiB,CAACuC,UAAzB;;AACF;AACE,gBAAM,IAAIC,KAAJ,CAAUzC,WAAV,CAAN;AAdJ;AAgBD;;;;;;8BA1JkBC,iB","sourcesContent":["import type {Schema} from '../schema';\nimport type {TableBatch} from '../../category/table/table-types';\nimport type {TableBatchAggregator, TableBatchConstructor} from './table-batch-aggregator';\nimport BaseTableBatchAggregator from './base-table-batch-aggregator';\nimport RowTableBatchAggregator from './row-table-batch-aggregator';\nimport ColumnarTableBatchAggregator from './columnar-table-batch-aggregator';\n\n// TODO define interface instead\ntype TableBatchBuilderOptions = {\n shape: 'row-table' | 'array-row-table' | 'object-row-table' | 'columnar-table' | 'arrow-table';\n batchSize?: number | 'auto';\n batchDebounceMs?: number;\n limit: number;\n _limitMB: number;\n};\n\ntype GetBatchOptions = {\n bytesUsed?: number;\n [key: string]: any;\n};\n\nconst DEFAULT_OPTIONS: Required<TableBatchBuilderOptions> = {\n shape: 'array-row-table',\n batchSize: 'auto',\n batchDebounceMs: 0,\n limit: 0,\n _limitMB: 0\n};\n\nconst ERR_MESSAGE = 'TableBatchBuilder';\n\n/** Incrementally builds batches from a stream of rows */\nexport default class TableBatchBuilder {\n schema: Schema;\n options: Required<TableBatchBuilderOptions>;\n\n private aggregator: TableBatchAggregator | null = null;\n private batchCount: number = 0;\n private bytesUsed: number = 0;\n private isChunkComplete: boolean = false;\n private lastBatchEmittedMs: number = Date.now();\n private totalLength: number = 0;\n private totalBytes: number = 0;\n private rowBytes: number = 0;\n\n static ArrowBatch?: TableBatchConstructor;\n\n constructor(schema: Schema, options?: TableBatchBuilderOptions) {\n this.schema = schema;\n this.options = {...DEFAULT_OPTIONS, ...options};\n }\n\n limitReached(): boolean {\n if (Boolean(this.options?.limit) && this.totalLength >= this.options.limit) {\n return true;\n }\n if (Boolean(this.options?._limitMB) && this.totalBytes / 1e6 >= this.options._limitMB) {\n return true;\n }\n return false;\n }\n\n /** @deprecated Use addArrayRow or addObjectRow */\n addRow(row: any[] | {[columnName: string]: any}): void {\n if (this.limitReached()) {\n return;\n }\n this.totalLength++;\n this.rowBytes = this.rowBytes || this._estimateRowMB(row);\n this.totalBytes += this.rowBytes;\n if (Array.isArray(row)) {\n this.addArrayRow(row);\n } else {\n this.addObjectRow(row);\n }\n }\n\n /** Add one row to the batch */\n protected addArrayRow(row: any[]) {\n if (!this.aggregator) {\n const TableBatchType = this._getTableBatchType();\n this.aggregator = new TableBatchType(this.schema, this.options);\n }\n this.aggregator.addArrayRow(row);\n }\n\n /** Add one row to the batch */\n protected addObjectRow(row: {[columnName: string]: any}): void {\n if (!this.aggregator) {\n const TableBatchType = this._getTableBatchType();\n this.aggregator = new TableBatchType(this.schema, this.options);\n }\n this.aggregator.addObjectRow(row);\n }\n\n /** Mark an incoming raw memory chunk has completed */\n chunkComplete(chunk: ArrayBuffer | string): void {\n if (chunk instanceof ArrayBuffer) {\n this.bytesUsed += chunk.byteLength;\n }\n if (typeof chunk === 'string') {\n this.bytesUsed += chunk.length;\n }\n this.isChunkComplete = true;\n }\n\n getFullBatch(options?: GetBatchOptions): TableBatch | null {\n return this._isFull() ? this._getBatch(options) : null;\n }\n\n getFinalBatch(options?: GetBatchOptions): TableBatch | null {\n return this._getBatch(options);\n }\n\n // INTERNAL\n\n _estimateRowMB(row) {\n return Array.isArray(row) ? row.length * 8 : Object.keys(row).length * 8;\n }\n\n private _isFull(): boolean {\n // No batch, not ready\n if (!this.aggregator || this.aggregator.rowCount() === 0) {\n return false;\n }\n\n // if batchSize === 'auto' we wait for chunk to complete\n // if batchSize === number, ensure we have enough rows\n if (this.options.batchSize === 'auto') {\n if (!this.isChunkComplete) {\n return false;\n }\n } else if (this.options.batchSize > this.aggregator.rowCount()) {\n return false;\n }\n\n // Debounce batches\n if (this.options.batchDebounceMs > Date.now() - this.lastBatchEmittedMs) {\n return false;\n }\n\n // Emit batch\n this.isChunkComplete = false;\n this.lastBatchEmittedMs = Date.now();\n return true;\n }\n\n /**\n * bytesUsed can be set via chunkComplete or via getBatch*\n */\n private _getBatch(options?: GetBatchOptions): TableBatch | null {\n if (!this.aggregator) {\n return null;\n }\n\n // TODO - this can overly increment bytes used?\n if (options?.bytesUsed) {\n this.bytesUsed = options.bytesUsed;\n }\n const normalizedBatch = this.aggregator.getBatch() as TableBatch;\n normalizedBatch.count = this.batchCount;\n normalizedBatch.bytesUsed = this.bytesUsed;\n Object.assign(normalizedBatch, options);\n\n this.batchCount++;\n this.aggregator = null;\n return normalizedBatch;\n }\n\n private _getTableBatchType(): TableBatchConstructor {\n switch (this.options.shape) {\n case 'row-table':\n return BaseTableBatchAggregator;\n case 'array-row-table':\n case 'object-row-table':\n return RowTableBatchAggregator;\n case 'columnar-table':\n return ColumnarTableBatchAggregator;\n case 'arrow-table':\n if (!TableBatchBuilder.ArrowBatch) {\n throw new Error(ERR_MESSAGE);\n }\n return TableBatchBuilder.ArrowBatch;\n default:\n throw new Error(ERR_MESSAGE);\n }\n }\n}\n"],"file":"table-batch-builder.js"}
1
+ {"version":3,"sources":["../../../../src/lib/batches/table-batch-builder.ts"],"names":["DEFAULT_OPTIONS","shape","batchSize","batchDebounceMs","limit","_limitMB","ERR_MESSAGE","TableBatchBuilder","constructor","schema","options","Date","now","limitReached","Boolean","totalLength","totalBytes","addRow","row","rowBytes","_estimateRowMB","Array","isArray","addArrayRow","addObjectRow","aggregator","TableBatchType","_getTableBatchType","chunkComplete","chunk","ArrayBuffer","bytesUsed","byteLength","length","isChunkComplete","getFullBatch","_isFull","_getBatch","getFinalBatch","Object","keys","rowCount","lastBatchEmittedMs","normalizedBatch","getBatch","count","batchCount","assign","BaseTableBatchAggregator","RowTableBatchAggregator","ColumnarTableBatchAggregator","ArrowBatch","Error"],"mappings":"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","sourcesContent":["import type {Schema} from '../schema';\nimport type {TableBatch} from '../../category/table/table-types';\nimport type {TableBatchAggregator, TableBatchConstructor} from './table-batch-aggregator';\nimport BaseTableBatchAggregator from './base-table-batch-aggregator';\nimport RowTableBatchAggregator from './row-table-batch-aggregator';\nimport ColumnarTableBatchAggregator from './columnar-table-batch-aggregator';\n\n// TODO define interface instead\ntype TableBatchBuilderOptions = {\n shape: 'row-table' | 'array-row-table' | 'object-row-table' | 'columnar-table' | 'arrow-table';\n batchSize?: number | 'auto';\n batchDebounceMs?: number;\n limit: number;\n _limitMB: number;\n};\n\ntype GetBatchOptions = {\n bytesUsed?: number;\n [key: string]: any;\n};\n\nconst DEFAULT_OPTIONS: Required<TableBatchBuilderOptions> = {\n shape: 'array-row-table',\n batchSize: 'auto',\n batchDebounceMs: 0,\n limit: 0,\n _limitMB: 0\n};\n\nconst ERR_MESSAGE = 'TableBatchBuilder';\n\n/** Incrementally builds batches from a stream of rows */\nexport default class TableBatchBuilder {\n schema: Schema;\n options: Required<TableBatchBuilderOptions>;\n\n private aggregator: TableBatchAggregator | null = null;\n private batchCount: number = 0;\n private bytesUsed: number = 0;\n private isChunkComplete: boolean = false;\n private lastBatchEmittedMs: number = Date.now();\n private totalLength: number = 0;\n private totalBytes: number = 0;\n private rowBytes: number = 0;\n\n static ArrowBatch?: TableBatchConstructor;\n\n constructor(schema: Schema, options?: TableBatchBuilderOptions) {\n this.schema = schema;\n this.options = {...DEFAULT_OPTIONS, ...options};\n }\n\n limitReached(): boolean {\n if (Boolean(this.options?.limit) && this.totalLength >= this.options.limit) {\n return true;\n }\n if (Boolean(this.options?._limitMB) && this.totalBytes / 1e6 >= this.options._limitMB) {\n return true;\n }\n return false;\n }\n\n /** @deprecated Use addArrayRow or addObjectRow */\n addRow(row: any[] | {[columnName: string]: any}): void {\n if (this.limitReached()) {\n return;\n }\n this.totalLength++;\n this.rowBytes = this.rowBytes || this._estimateRowMB(row);\n this.totalBytes += this.rowBytes;\n if (Array.isArray(row)) {\n this.addArrayRow(row);\n } else {\n this.addObjectRow(row);\n }\n }\n\n /** Add one row to the batch */\n protected addArrayRow(row: any[]) {\n if (!this.aggregator) {\n const TableBatchType = this._getTableBatchType();\n this.aggregator = new TableBatchType(this.schema, this.options);\n }\n this.aggregator.addArrayRow(row);\n }\n\n /** Add one row to the batch */\n protected addObjectRow(row: {[columnName: string]: any}): void {\n if (!this.aggregator) {\n const TableBatchType = this._getTableBatchType();\n this.aggregator = new TableBatchType(this.schema, this.options);\n }\n this.aggregator.addObjectRow(row);\n }\n\n /** Mark an incoming raw memory chunk has completed */\n chunkComplete(chunk: ArrayBuffer | string): void {\n if (chunk instanceof ArrayBuffer) {\n this.bytesUsed += chunk.byteLength;\n }\n if (typeof chunk === 'string') {\n this.bytesUsed += chunk.length;\n }\n this.isChunkComplete = true;\n }\n\n getFullBatch(options?: GetBatchOptions): TableBatch | null {\n return this._isFull() ? this._getBatch(options) : null;\n }\n\n getFinalBatch(options?: GetBatchOptions): TableBatch | null {\n return this._getBatch(options);\n }\n\n // INTERNAL\n\n _estimateRowMB(row) {\n return Array.isArray(row) ? row.length * 8 : Object.keys(row).length * 8;\n }\n\n private _isFull(): boolean {\n // No batch, not ready\n if (!this.aggregator || this.aggregator.rowCount() === 0) {\n return false;\n }\n\n // if batchSize === 'auto' we wait for chunk to complete\n // if batchSize === number, ensure we have enough rows\n if (this.options.batchSize === 'auto') {\n if (!this.isChunkComplete) {\n return false;\n }\n } else if (this.options.batchSize > this.aggregator.rowCount()) {\n return false;\n }\n\n // Debounce batches\n if (this.options.batchDebounceMs > Date.now() - this.lastBatchEmittedMs) {\n return false;\n }\n\n // Emit batch\n this.isChunkComplete = false;\n this.lastBatchEmittedMs = Date.now();\n return true;\n }\n\n /**\n * bytesUsed can be set via chunkComplete or via getBatch*\n */\n private _getBatch(options?: GetBatchOptions): TableBatch | null {\n if (!this.aggregator) {\n return null;\n }\n\n // TODO - this can overly increment bytes used?\n if (options?.bytesUsed) {\n this.bytesUsed = options.bytesUsed;\n }\n const normalizedBatch = this.aggregator.getBatch() as TableBatch;\n normalizedBatch.count = this.batchCount;\n normalizedBatch.bytesUsed = this.bytesUsed;\n Object.assign(normalizedBatch, options);\n\n this.batchCount++;\n this.aggregator = null;\n return normalizedBatch;\n }\n\n private _getTableBatchType(): TableBatchConstructor {\n switch (this.options.shape) {\n case 'row-table':\n return BaseTableBatchAggregator;\n case 'array-row-table':\n case 'object-row-table':\n return RowTableBatchAggregator;\n case 'columnar-table':\n return ColumnarTableBatchAggregator;\n case 'arrow-table':\n if (!TableBatchBuilder.ArrowBatch) {\n throw new Error(ERR_MESSAGE);\n }\n return TableBatchBuilder.ArrowBatch;\n default:\n throw new Error(ERR_MESSAGE);\n }\n }\n}\n"],"file":"table-batch-builder.js"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Type = void 0;
7
- var Type;
7
+ let Type;
8
8
  exports.Type = Type;
9
9
 
10
10
  (function (Type) {
@@ -7,17 +7,10 @@ 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
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
11
 
16
- var Field = function () {
17
- function Field(name, type) {
18
- var nullable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
19
- var metadata = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new Map();
20
- (0, _classCallCheck2.default)(this, Field);
12
+ class Field {
13
+ constructor(name, type, nullable = false, metadata = new Map()) {
21
14
  (0, _defineProperty2.default)(this, "name", void 0);
22
15
  (0, _defineProperty2.default)(this, "type", void 0);
23
16
  (0, _defineProperty2.default)(this, "nullable", void 0);
@@ -28,29 +21,23 @@ var Field = function () {
28
21
  this.metadata = metadata;
29
22
  }
30
23
 
31
- (0, _createClass2.default)(Field, [{
32
- key: "typeId",
33
- get: function get() {
34
- return this.type && this.type.typeId;
35
- }
36
- }, {
37
- key: "clone",
38
- value: function clone() {
39
- return new Field(this.name, this.type, this.nullable, this.metadata);
40
- }
41
- }, {
42
- key: "compareTo",
43
- value: function compareTo(other) {
44
- return this.name === other.name && this.type === other.type && this.nullable === other.nullable && this.metadata === other.metadata;
45
- }
46
- }, {
47
- key: "toString",
48
- value: function toString() {
49
- return "".concat(this.type).concat(this.nullable ? ', nullable' : '').concat(this.metadata ? ", metadata: ".concat(this.metadata) : '');
50
- }
51
- }]);
52
- return Field;
53
- }();
24
+ get typeId() {
25
+ return this.type && this.type.typeId;
26
+ }
27
+
28
+ clone() {
29
+ return new Field(this.name, this.type, this.nullable, this.metadata);
30
+ }
31
+
32
+ compareTo(other) {
33
+ return this.name === other.name && this.type === other.type && this.nullable === other.nullable && this.metadata === other.metadata;
34
+ }
35
+
36
+ toString() {
37
+ return "".concat(this.type).concat(this.nullable ? ', nullable' : '').concat(this.metadata ? ", metadata: ".concat(this.metadata) : '');
38
+ }
39
+
40
+ }
54
41
 
55
42
  exports.default = Field;
56
43
  //# sourceMappingURL=field.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/lib/schema/impl/field.ts"],"names":["Field","name","type","nullable","metadata","Map","typeId","other"],"mappings":";;;;;;;;;;;;;;;IAQqBA,K;AAMnB,iBACEC,IADF,EAEEC,IAFF,EAKE;AAAA,QAFAC,QAEA,uEAFW,KAEX;AAAA,QADAC,QACA,uEADgC,IAAIC,GAAJ,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,SAAKJ,IAAL,GAAYA,IAAZ;AACA,SAAKC,IAAL,GAAYA,IAAZ;AACA,SAAKC,QAAL,GAAgBA,QAAhB;AACA,SAAKC,QAAL,GAAgBA,QAAhB;AACD;;;;SAED,eAAqB;AACnB,aAAO,KAAKF,IAAL,IAAa,KAAKA,IAAL,CAAUI,MAA9B;AACD;;;WAED,iBAAe;AACb,aAAO,IAAIN,KAAJ,CAAU,KAAKC,IAAf,EAAqB,KAAKC,IAA1B,EAAgC,KAAKC,QAArC,EAA+C,KAAKC,QAApD,CAAP;AACD;;;WAED,mBAAUG,KAAV,EAAgC;AAC9B,aACE,KAAKN,IAAL,KAAcM,KAAK,CAACN,IAApB,IACA,KAAKC,IAAL,KAAcK,KAAK,CAACL,IADpB,IAEA,KAAKC,QAAL,KAAkBI,KAAK,CAACJ,QAFxB,IAGA,KAAKC,QAAL,KAAkBG,KAAK,CAACH,QAJ1B;AAMD;;;WAED,oBAAmB;AACjB,uBAAU,KAAKF,IAAf,SAAsB,KAAKC,QAAL,GAAgB,YAAhB,GAA+B,EAArD,SACE,KAAKC,QAAL,yBAA+B,KAAKA,QAApC,IAAiD,EADnD;AAGD","sourcesContent":["import {DataType} from './type';\n\n/**\n * ArrowJS `Field` API-compatible class for row-based tables\n * https://loaders.gl/arrowjs/docs/api-reference/field\n * A field holds name, nullable, and metadata information about a table \"column\"\n * A Schema is essentially a list of fields\n */\nexport default class Field {\n name: string;\n type: DataType;\n nullable: boolean;\n metadata: Map<string, string>;\n\n constructor(\n name: string,\n type: DataType,\n nullable = false,\n metadata: Map<string, string> = new Map()\n ) {\n this.name = name;\n this.type = type;\n this.nullable = nullable;\n this.metadata = metadata;\n }\n\n get typeId(): number {\n return this.type && this.type.typeId;\n }\n\n clone(): Field {\n return new Field(this.name, this.type, this.nullable, this.metadata);\n }\n\n compareTo(other: this): boolean {\n return (\n this.name === other.name &&\n this.type === other.type &&\n this.nullable === other.nullable &&\n this.metadata === other.metadata\n );\n }\n\n toString(): string {\n return `${this.type}${this.nullable ? ', nullable' : ''}${\n this.metadata ? `, metadata: ${this.metadata}` : ''\n }`;\n }\n}\n"],"file":"field.js"}
1
+ {"version":3,"sources":["../../../../../src/lib/schema/impl/field.ts"],"names":["Field","constructor","name","type","nullable","metadata","Map","typeId","clone","compareTo","other","toString"],"mappings":";;;;;;;;;;;AAQe,MAAMA,KAAN,CAAY;AAMzBC,EAAAA,WAAW,CACTC,IADS,EAETC,IAFS,EAGTC,QAAQ,GAAG,KAHF,EAITC,QAA6B,GAAG,IAAIC,GAAJ,EAJvB,EAKT;AAAA;AAAA;AAAA;AAAA;AACA,SAAKJ,IAAL,GAAYA,IAAZ;AACA,SAAKC,IAAL,GAAYA,IAAZ;AACA,SAAKC,QAAL,GAAgBA,QAAhB;AACA,SAAKC,QAAL,GAAgBA,QAAhB;AACD;;AAES,MAANE,MAAM,GAAW;AACnB,WAAO,KAAKJ,IAAL,IAAa,KAAKA,IAAL,CAAUI,MAA9B;AACD;;AAEDC,EAAAA,KAAK,GAAU;AACb,WAAO,IAAIR,KAAJ,CAAU,KAAKE,IAAf,EAAqB,KAAKC,IAA1B,EAAgC,KAAKC,QAArC,EAA+C,KAAKC,QAApD,CAAP;AACD;;AAEDI,EAAAA,SAAS,CAACC,KAAD,EAAuB;AAC9B,WACE,KAAKR,IAAL,KAAcQ,KAAK,CAACR,IAApB,IACA,KAAKC,IAAL,KAAcO,KAAK,CAACP,IADpB,IAEA,KAAKC,QAAL,KAAkBM,KAAK,CAACN,QAFxB,IAGA,KAAKC,QAAL,KAAkBK,KAAK,CAACL,QAJ1B;AAMD;;AAEDM,EAAAA,QAAQ,GAAW;AACjB,qBAAU,KAAKR,IAAf,SAAsB,KAAKC,QAAL,GAAgB,YAAhB,GAA+B,EAArD,SACE,KAAKC,QAAL,yBAA+B,KAAKA,QAApC,IAAiD,EADnD;AAGD;;AAvCwB","sourcesContent":["import {DataType} from './type';\n\n/**\n * ArrowJS `Field` API-compatible class for row-based tables\n * https://loaders.gl/arrowjs/docs/api-reference/field\n * A field holds name, nullable, and metadata information about a table \"column\"\n * A Schema is essentially a list of fields\n */\nexport default class Field {\n name: string;\n type: DataType;\n nullable: boolean;\n metadata: Map<string, string>;\n\n constructor(\n name: string,\n type: DataType,\n nullable = false,\n metadata: Map<string, string> = new Map()\n ) {\n this.name = name;\n this.type = type;\n this.nullable = nullable;\n this.metadata = metadata;\n }\n\n get typeId(): number {\n return this.type && this.type.typeId;\n }\n\n clone(): Field {\n return new Field(this.name, this.type, this.nullable, this.metadata);\n }\n\n compareTo(other: this): boolean {\n return (\n this.name === other.name &&\n this.type === other.type &&\n this.nullable === other.nullable &&\n this.metadata === other.metadata\n );\n }\n\n toString(): string {\n return `${this.type}${this.nullable ? ', nullable' : ''}${\n this.metadata ? `, metadata: ${this.metadata}` : ''\n }`;\n }\n}\n"],"file":"field.js"}