sqlite-executor 4.0.9 → 4.0.10

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.
@@ -173,6 +173,43 @@ function createRowStreamParser(onRow) {
173
173
  index++;
174
174
  continue;
175
175
  }
176
+ if (-1 !== elementEnd) {
177
+ if (isWhitespaceCode(code)) {
178
+ index++;
179
+ continue;
180
+ }
181
+ if (code === CHAR_COMMA || code === CHAR_CLOSE_BRACKET) {
182
+ onRow(buffer.slice(elementStart, elementEnd));
183
+ consumed = index + 1;
184
+ elementStart = -1;
185
+ elementEnd = -1;
186
+ nesting = 0;
187
+ if (code === CHAR_CLOSE_BRACKET) {
188
+ this.finished = true;
189
+ this.buffer = "";
190
+ this.started = false;
191
+ this.inString = false;
192
+ this.escaped = false;
193
+ this.elementStart = -1;
194
+ this.elementEnd = -1;
195
+ this.nesting = 0;
196
+ this._consumed = 0;
197
+ this.readPos = 0;
198
+ return buffer.slice(consumed);
199
+ }
200
+ index = consumed;
201
+ if (consumed > 65536) {
202
+ buffer = buffer.slice(consumed);
203
+ this.buffer = buffer;
204
+ this._consumed = 0;
205
+ index = 0;
206
+ consumed = 0;
207
+ }
208
+ continue;
209
+ }
210
+ index++;
211
+ continue;
212
+ }
176
213
  if (code === CHAR_QUOTE) {
177
214
  inString = true;
178
215
  index++;
@@ -187,42 +224,6 @@ function createRowStreamParser(onRow) {
187
224
  nesting--;
188
225
  if (0 === nesting) elementEnd = index + 1;
189
226
  }
190
- if (-1 !== elementEnd) {
191
- var lookAhead = index + 1;
192
- while(lookAhead < buffer.length && isWhitespaceCode(buffer.charCodeAt(lookAhead)))lookAhead++;
193
- if (lookAhead < buffer.length) {
194
- var delimiter = buffer.charCodeAt(lookAhead);
195
- if (delimiter === CHAR_COMMA || delimiter === CHAR_CLOSE_BRACKET) {
196
- onRow(buffer.slice(elementStart, elementEnd));
197
- consumed = lookAhead + 1;
198
- elementStart = -1;
199
- elementEnd = -1;
200
- nesting = 0;
201
- if (delimiter === CHAR_CLOSE_BRACKET) {
202
- this.finished = true;
203
- this.buffer = "";
204
- this.started = false;
205
- this.inString = false;
206
- this.escaped = false;
207
- this.elementStart = -1;
208
- this.elementEnd = -1;
209
- this.nesting = 0;
210
- this._consumed = 0;
211
- this.readPos = 0;
212
- return buffer.slice(consumed);
213
- }
214
- index = consumed;
215
- if (consumed > 65536) {
216
- buffer = buffer.slice(consumed);
217
- this.buffer = buffer;
218
- this._consumed = 0;
219
- index = 0;
220
- consumed = 0;
221
- }
222
- continue;
223
- }
224
- }
225
- }
226
227
  index++;
227
228
  }
228
229
  this.started = started;
@@ -2242,6 +2243,7 @@ function createFinalizeScheduler(param) {
2242
2243
  var scheduled = false;
2243
2244
  var immediate = null;
2244
2245
  var cancelled = false;
2246
+ var delayedZeroRowQueries = new WeakSet();
2245
2247
  var cancel = function() {
2246
2248
  cancelled = true;
2247
2249
  if (immediate) {
@@ -2257,8 +2259,66 @@ function createFinalizeScheduler(param) {
2257
2259
  immediate = setImmediate(function() {
2258
2260
  immediate = null;
2259
2261
  if (cancelled) return;
2262
+ var delayedTasks = [];
2263
+ var hasQueryRows = Array.from(pendingFinalizeTasks).some(function(task) {
2264
+ return "query" === task.kind && task.rows.length > 0;
2265
+ });
2266
+ if (!(null == pendingStderr ? void 0 : pendingStderr.length) && hasQueryRows) {
2267
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
2268
+ try {
2269
+ for(var _iterator = pendingFinalizeTasks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2270
+ var task = _step.value;
2271
+ if ("query" === task.kind && 0 === task.rows.length && !task.stderrText && !task.consumerError && !delayedZeroRowQueries.has(task)) {
2272
+ delayedZeroRowQueries.add(task);
2273
+ delayedTasks.push(task);
2274
+ }
2275
+ }
2276
+ } catch (err) {
2277
+ _didIteratorError = true;
2278
+ _iteratorError = err;
2279
+ } finally{
2280
+ try {
2281
+ if (!_iteratorNormalCompletion && null != _iterator["return"]) _iterator["return"]();
2282
+ } finally{
2283
+ if (_didIteratorError) throw _iteratorError;
2284
+ }
2285
+ }
2286
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
2287
+ try {
2288
+ for(var _iterator1 = delayedTasks[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
2289
+ var task1 = _step1.value;
2290
+ pendingFinalizeTasks["delete"](task1);
2291
+ }
2292
+ } catch (err) {
2293
+ _didIteratorError1 = true;
2294
+ _iteratorError1 = err;
2295
+ } finally{
2296
+ try {
2297
+ if (!_iteratorNormalCompletion1 && null != _iterator1["return"]) _iterator1["return"]();
2298
+ } finally{
2299
+ if (_didIteratorError1) throw _iteratorError1;
2300
+ }
2301
+ }
2302
+ }
2260
2303
  finalizePendingTasks(pendingFinalizeTasks, settle, pumpQueue, pendingStderr, inflight);
2304
+ var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
2305
+ try {
2306
+ for(var _iterator2 = delayedTasks[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
2307
+ var task2 = _step2.value;
2308
+ pendingFinalizeTasks.add(task2);
2309
+ }
2310
+ } catch (err) {
2311
+ _didIteratorError2 = true;
2312
+ _iteratorError2 = err;
2313
+ } finally{
2314
+ try {
2315
+ if (!_iteratorNormalCompletion2 && null != _iterator2["return"]) _iterator2["return"]();
2316
+ } finally{
2317
+ if (_didIteratorError2) throw _iteratorError2;
2318
+ }
2319
+ }
2261
2320
  scheduled = false;
2321
+ if (delayedTasks.length > 0) check();
2262
2322
  });
2263
2323
  };
2264
2324
  check.cancel = cancel;