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.
- package/dist/cjs/index.cjs +96 -36
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/index.mjs +96 -36
- package/dist/esm/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/esm/index.mjs
CHANGED
|
@@ -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;
|