sqlite-executor 4.0.4 → 4.0.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.
package/dist/esm/index.mjs
CHANGED
|
@@ -287,10 +287,11 @@ function createJsonValueParser(onValue) {
|
|
|
287
287
|
}
|
|
288
288
|
if (consumeUntil > 0) {
|
|
289
289
|
this._consumed = consumeUntil;
|
|
290
|
-
this.readPos = this._consumed;
|
|
290
|
+
this.readPos = -1 !== this.start ? this.buffer.length : this._consumed;
|
|
291
291
|
if (this._consumed > 65536) {
|
|
292
|
+
if (-1 !== this.start) this.start -= this._consumed;
|
|
292
293
|
this.buffer = this.buffer.slice(this._consumed);
|
|
293
|
-
this.readPos =
|
|
294
|
+
this.readPos = this.buffer.length;
|
|
294
295
|
this._consumed = 0;
|
|
295
296
|
}
|
|
296
297
|
} else this.readPos = this.buffer.length;
|
|
@@ -1293,10 +1294,11 @@ function classifySingle(stmt) {
|
|
|
1293
1294
|
return READ_ONLY_KINDS.has(kind) ? "read" : "write";
|
|
1294
1295
|
}
|
|
1295
1296
|
function classifySQL(sql) {
|
|
1296
|
-
if ("string" != typeof sql
|
|
1297
|
+
if ("string" != typeof sql) return "write";
|
|
1297
1298
|
var cached = _classifyCache.get(sql);
|
|
1298
1299
|
if (void 0 !== cached) return cached;
|
|
1299
1300
|
var trimmed = sql.trim();
|
|
1301
|
+
if (0 === trimmed.length) return "write";
|
|
1300
1302
|
var result;
|
|
1301
1303
|
if (trimmed.includes(";")) {
|
|
1302
1304
|
var stmts = trimmed.split(";");
|
|
@@ -1720,7 +1722,7 @@ function buildPayload(sql, token) {
|
|
|
1720
1722
|
return "".concat(normalized).concat(suffix, "\nSELECT '").concat(token, "' AS ").concat(TOKEN_COLUMN, ";\n");
|
|
1721
1723
|
}
|
|
1722
1724
|
function isTransactionControl(sql) {
|
|
1723
|
-
var s = sql.
|
|
1725
|
+
var s = sql.toUpperCase();
|
|
1724
1726
|
return "BEGIN" === s || "BEGIN TRANSACTION" === s || "COMMIT" === s || "COMMIT TRANSACTION" === s || "ROLLBACK" === s || "ROLLBACK TRANSACTION" === s || s.startsWith("BEGIN ") || s.startsWith("COMMIT ") || s.startsWith("ROLLBACK ");
|
|
1725
1727
|
}
|
|
1726
1728
|
function buildBatchPayload(batch) {
|
|
@@ -1787,8 +1789,9 @@ function buildBatchPayload(batch) {
|
|
|
1787
1789
|
}
|
|
1788
1790
|
return parts1.join("");
|
|
1789
1791
|
}
|
|
1792
|
+
var TC_FIRST_CHAR = TOKEN_COLUMN.charCodeAt(0);
|
|
1790
1793
|
function isSentinelRaw(raw, token) {
|
|
1791
|
-
return raw === '[{"'.concat(TOKEN_COLUMN, '":"').concat(token, '"}]');
|
|
1794
|
+
return raw.charCodeAt(3) === TC_FIRST_CHAR && raw === '[{"'.concat(TOKEN_COLUMN, '":"').concat(token, '"}]');
|
|
1792
1795
|
}
|
|
1793
1796
|
function isSentinelRow(value, token) {
|
|
1794
1797
|
var _value_;
|
|
@@ -1854,7 +1857,6 @@ function settleTask(task, error, value, metrics) {
|
|
|
1854
1857
|
var _ref = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : {}, _ref_resetRowParser = _ref.resetRowParser, resetRowParser = void 0 === _ref_resetRowParser ? false : _ref_resetRowParser;
|
|
1855
1858
|
if (task.settled) return;
|
|
1856
1859
|
task.settled = true;
|
|
1857
|
-
clearTimeout(task.timer);
|
|
1858
1860
|
if (resetRowParser) {
|
|
1859
1861
|
var _task_rowParser_reset, _task_rowParser;
|
|
1860
1862
|
null == (_task_rowParser = task.rowParser) || null == (_task_rowParser_reset = _task_rowParser.reset) || _task_rowParser_reset.call(_task_rowParser);
|
|
@@ -1903,8 +1905,6 @@ function finalizePendingTasks(tasks, settle, pumpQueue) {
|
|
|
1903
1905
|
function prepareTaskTimeout(task, metrics) {
|
|
1904
1906
|
if (task.settled) return null;
|
|
1905
1907
|
task.timedout = true;
|
|
1906
|
-
clearTimeout(task.timer);
|
|
1907
|
-
task.timer = null;
|
|
1908
1908
|
null == metrics || metrics.incrementTasksTimeout();
|
|
1909
1909
|
return createTimeoutError(task.timeout, task.sql);
|
|
1910
1910
|
}
|
|
@@ -3033,16 +3033,17 @@ function pipelineEngine_unsupported_iterable_to_array(o, minLen) {
|
|
|
3033
3033
|
if ("Map" === n || "Set" === n) return Array.from(n);
|
|
3034
3034
|
if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return pipelineEngine_array_like_to_array(o, minLen);
|
|
3035
3035
|
}
|
|
3036
|
-
var _queue = /*#__PURE__*/ new WeakMap(), pipelineEngine_inflightTasks = /*#__PURE__*/ new WeakMap(), pipelineEngine_pendingFinalizeTasks = /*#__PURE__*/ new WeakMap(), pipelineEngine_scheduledFinalize = /*#__PURE__*/ new WeakMap(), _sharedValueParser = /*#__PURE__*/ new WeakMap(), pipelineEngine_processManager = /*#__PURE__*/ new WeakMap(), pipelineEngine_metrics = /*#__PURE__*/ new WeakMap(), pipelineEngine_statementTimeout = /*#__PURE__*/ new WeakMap(), pipelineEngine_logger = /*#__PURE__*/ new WeakMap(), pipelineEngine_batchSize = /*#__PURE__*/ new WeakMap(), pipelineEngine_maxInflight = /*#__PURE__*/ new WeakMap(), _onTaskTimeout = /*#__PURE__*/ new WeakMap(), _active = /*#__PURE__*/ new WeakMap(), core_pipelineEngine_pumpQueue = /*#__PURE__*/ new WeakSet(), pipelineEngine_handleParsedValue = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_scheduleFinalizeCheck = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_handleTaskTimeout = /*#__PURE__*/ new WeakSet(), pipelineEngine_settleTask = /*#__PURE__*/ new WeakSet();
|
|
3036
|
+
var _queue = /*#__PURE__*/ new WeakMap(), pipelineEngine_inflightTasks = /*#__PURE__*/ new WeakMap(), pipelineEngine_pendingFinalizeTasks = /*#__PURE__*/ new WeakMap(), pipelineEngine_scheduledFinalize = /*#__PURE__*/ new WeakMap(), _sharedValueParser = /*#__PURE__*/ new WeakMap(), pipelineEngine_processManager = /*#__PURE__*/ new WeakMap(), pipelineEngine_metrics = /*#__PURE__*/ new WeakMap(), pipelineEngine_statementTimeout = /*#__PURE__*/ new WeakMap(), pipelineEngine_logger = /*#__PURE__*/ new WeakMap(), pipelineEngine_batchSize = /*#__PURE__*/ new WeakMap(), pipelineEngine_maxInflight = /*#__PURE__*/ new WeakMap(), _onTaskTimeout = /*#__PURE__*/ new WeakMap(), _active = /*#__PURE__*/ new WeakMap(), _sweepTimer = /*#__PURE__*/ new WeakMap(), _sweepIntervalMs = /*#__PURE__*/ new WeakMap(), core_pipelineEngine_pumpQueue = /*#__PURE__*/ new WeakSet(), pipelineEngine_handleParsedValue = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_scheduleFinalizeCheck = /*#__PURE__*/ new WeakSet(), _scheduleSweep = /*#__PURE__*/ new WeakSet(), core_pipelineEngine_handleTaskTimeout = /*#__PURE__*/ new WeakSet(), pipelineEngine_settleTask = /*#__PURE__*/ new WeakSet();
|
|
3037
3037
|
var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
|
|
3038
3038
|
"use strict";
|
|
3039
3039
|
function PipelineEngine(processManager, param) {
|
|
3040
3040
|
var _this = this;
|
|
3041
|
-
var metrics = param.metrics, statementTimeout = param.statementTimeout, logger = param.logger, _param_batchSize = param.batchSize, batchSize = void 0 === _param_batchSize ? DEFAULT_BATCH_SIZE : _param_batchSize, _param_maxInflight = param.maxInflight, maxInflight = void 0 === _param_maxInflight ? DEFAULT_MAX_INFLIGHT : _param_maxInflight, onTaskTimeout = param.onTaskTimeout;
|
|
3041
|
+
var metrics = param.metrics, statementTimeout = param.statementTimeout, logger = param.logger, _param_batchSize = param.batchSize, batchSize = void 0 === _param_batchSize ? DEFAULT_BATCH_SIZE : _param_batchSize, _param_maxInflight = param.maxInflight, maxInflight = void 0 === _param_maxInflight ? DEFAULT_MAX_INFLIGHT : _param_maxInflight, onTaskTimeout = param.onTaskTimeout, _param_sweepInterval = param.sweepInterval, sweepInterval = void 0 === _param_sweepInterval ? 100 : _param_sweepInterval;
|
|
3042
3042
|
pipelineEngine_class_call_check(this, PipelineEngine);
|
|
3043
3043
|
pipelineEngine_class_private_method_init(this, core_pipelineEngine_pumpQueue);
|
|
3044
3044
|
pipelineEngine_class_private_method_init(this, pipelineEngine_handleParsedValue);
|
|
3045
3045
|
pipelineEngine_class_private_method_init(this, core_pipelineEngine_scheduleFinalizeCheck);
|
|
3046
|
+
pipelineEngine_class_private_method_init(this, _scheduleSweep);
|
|
3046
3047
|
pipelineEngine_class_private_method_init(this, core_pipelineEngine_handleTaskTimeout);
|
|
3047
3048
|
pipelineEngine_class_private_method_init(this, pipelineEngine_settleTask);
|
|
3048
3049
|
pipelineEngine_class_private_field_init(this, _queue, {
|
|
@@ -3097,6 +3098,14 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
|
|
|
3097
3098
|
writable: true,
|
|
3098
3099
|
value: false
|
|
3099
3100
|
});
|
|
3101
|
+
pipelineEngine_class_private_field_init(this, _sweepTimer, {
|
|
3102
|
+
writable: true,
|
|
3103
|
+
value: null
|
|
3104
|
+
});
|
|
3105
|
+
pipelineEngine_class_private_field_init(this, _sweepIntervalMs, {
|
|
3106
|
+
writable: true,
|
|
3107
|
+
value: void 0
|
|
3108
|
+
});
|
|
3100
3109
|
pipelineEngine_class_private_field_set(this, pipelineEngine_processManager, processManager);
|
|
3101
3110
|
pipelineEngine_class_private_field_set(this, pipelineEngine_metrics, metrics);
|
|
3102
3111
|
pipelineEngine_class_private_field_set(this, pipelineEngine_statementTimeout, statementTimeout);
|
|
@@ -3110,8 +3119,15 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
|
|
|
3110
3119
|
pipelineEngine_class_private_field_get(this, pipelineEngine_processManager).setOnDrainCallback(function() {
|
|
3111
3120
|
return pipelineEngine_class_private_method_get(_this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(_this);
|
|
3112
3121
|
});
|
|
3122
|
+
pipelineEngine_class_private_field_set(this, _sweepIntervalMs, sweepInterval);
|
|
3113
3123
|
}
|
|
3114
3124
|
pipelineEngine_create_class(PipelineEngine, [
|
|
3125
|
+
{
|
|
3126
|
+
key: "_sweepTimer",
|
|
3127
|
+
get: function() {
|
|
3128
|
+
return pipelineEngine_class_private_field_get(this, _sweepTimer);
|
|
3129
|
+
}
|
|
3130
|
+
},
|
|
3115
3131
|
{
|
|
3116
3132
|
key: "mainQueue",
|
|
3117
3133
|
get: function() {
|
|
@@ -3162,7 +3178,7 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
|
|
|
3162
3178
|
value: function(chunk) {
|
|
3163
3179
|
var task = pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks)[0];
|
|
3164
3180
|
if (!task) return;
|
|
3165
|
-
if ("stream" === task.kind && task.rowParser && !task.rowParser.finished) {
|
|
3181
|
+
if ("stream" === task.kind && task.rowParser && !task.rowParser.finished && !task.timedout) {
|
|
3166
3182
|
var leftover = task.rowParser.feed(chunk);
|
|
3167
3183
|
if (leftover) pipelineEngine_class_private_field_get(this, _sharedValueParser).feed(leftover);
|
|
3168
3184
|
return;
|
|
@@ -3186,6 +3202,7 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
|
|
|
3186
3202
|
{
|
|
3187
3203
|
key: "rejectAll",
|
|
3188
3204
|
value: function(error) {
|
|
3205
|
+
pipelineEngine_class_private_field_get(this, _sharedValueParser).reset();
|
|
3189
3206
|
var all = pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks);
|
|
3190
3207
|
pipelineEngine_class_private_field_set(this, pipelineEngine_inflightTasks, []);
|
|
3191
3208
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
@@ -3232,6 +3249,8 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
|
|
|
3232
3249
|
key: "kill",
|
|
3233
3250
|
value: function() {
|
|
3234
3251
|
pipelineEngine_class_private_field_set(this, _active, false);
|
|
3252
|
+
clearTimeout(pipelineEngine_class_private_field_get(this, _sweepTimer));
|
|
3253
|
+
pipelineEngine_class_private_field_set(this, _sweepTimer, null);
|
|
3235
3254
|
this.rejectAll(new Error("PipelineEngine is killed"));
|
|
3236
3255
|
}
|
|
3237
3256
|
}
|
|
@@ -3239,7 +3258,6 @@ var pipelineEngine_PipelineEngine = /*#__PURE__*/ function() {
|
|
|
3239
3258
|
return PipelineEngine;
|
|
3240
3259
|
}();
|
|
3241
3260
|
function pipelineEngine_pumpQueue() {
|
|
3242
|
-
var _this = this;
|
|
3243
3261
|
var _$_class_private_field_get;
|
|
3244
3262
|
if (!pipelineEngine_class_private_field_get(this, _active)) return;
|
|
3245
3263
|
if (pipelineEngine_class_private_field_get(this, pipelineEngine_processManager).draining) return;
|
|
@@ -3256,14 +3274,10 @@ function pipelineEngine_pumpQueue() {
|
|
|
3256
3274
|
var payload = buildBatchPayload(batch);
|
|
3257
3275
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
3258
3276
|
try {
|
|
3259
|
-
var
|
|
3260
|
-
var
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
return pipelineEngine_class_private_method_get(_this, core_pipelineEngine_handleTaskTimeout, pipelineEngine_handleTaskTimeout).call(_this, task);
|
|
3264
|
-
}, task.timeout);
|
|
3265
|
-
};
|
|
3266
|
-
for(var _iterator = batch[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
|
|
3277
|
+
for(var _iterator = batch[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
3278
|
+
var task1 = _step.value;
|
|
3279
|
+
task1.startTime = now;
|
|
3280
|
+
}
|
|
3267
3281
|
} catch (err) {
|
|
3268
3282
|
_didIteratorError = true;
|
|
3269
3283
|
_iteratorError = err;
|
|
@@ -3275,13 +3289,13 @@ function pipelineEngine_pumpQueue() {
|
|
|
3275
3289
|
}
|
|
3276
3290
|
}
|
|
3277
3291
|
(_$_class_private_field_get = pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks)).push.apply(_$_class_private_field_get, pipelineEngine_to_consumable_array(batch));
|
|
3292
|
+
pipelineEngine_class_private_method_get(this, _scheduleSweep, scheduleSweep).call(this);
|
|
3278
3293
|
pipelineEngine_class_private_field_get(this, pipelineEngine_processManager).write(payload);
|
|
3279
3294
|
}
|
|
3280
3295
|
function core_pipelineEngine_handleParsedValue(raw) {
|
|
3281
3296
|
var task = pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks)[0];
|
|
3282
3297
|
if (!task) return;
|
|
3283
3298
|
if (isSentinelRaw(raw, task.token)) {
|
|
3284
|
-
clearTimeout(task.timer);
|
|
3285
3299
|
pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks).shift();
|
|
3286
3300
|
if (task.timedout) return void pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
|
|
3287
3301
|
if (task.consumerError) {
|
|
@@ -3303,7 +3317,6 @@ function core_pipelineEngine_handleParsedValue(raw) {
|
|
|
3303
3317
|
return;
|
|
3304
3318
|
}
|
|
3305
3319
|
if (isSentinelRow(parsed, task.token)) {
|
|
3306
|
-
clearTimeout(task.timer);
|
|
3307
3320
|
pipelineEngine_class_private_field_get(this, pipelineEngine_inflightTasks).shift();
|
|
3308
3321
|
if (task.timedout) return void pipelineEngine_class_private_method_get(this, core_pipelineEngine_pumpQueue, pipelineEngine_pumpQueue).call(this);
|
|
3309
3322
|
if (task.consumerError) {
|
|
@@ -3333,6 +3346,20 @@ function pipelineEngine_scheduleFinalizeCheck() {
|
|
|
3333
3346
|
});
|
|
3334
3347
|
});
|
|
3335
3348
|
}
|
|
3349
|
+
function scheduleSweep() {
|
|
3350
|
+
var _this = this;
|
|
3351
|
+
if (pipelineEngine_class_private_field_get(this, _sweepTimer)) return;
|
|
3352
|
+
pipelineEngine_class_private_field_set(this, _sweepTimer, setTimeout(function() {
|
|
3353
|
+
pipelineEngine_class_private_field_set(_this, _sweepTimer, null);
|
|
3354
|
+
var inflight = pipelineEngine_class_private_field_get(_this, pipelineEngine_inflightTasks);
|
|
3355
|
+
var now = performance.now();
|
|
3356
|
+
for(var i = 0; i < inflight.length; i++){
|
|
3357
|
+
var task = inflight[i];
|
|
3358
|
+
if (now - task.startTime > task.timeout) pipelineEngine_class_private_method_get(_this, core_pipelineEngine_handleTaskTimeout, pipelineEngine_handleTaskTimeout).call(_this, task);
|
|
3359
|
+
}
|
|
3360
|
+
if (pipelineEngine_class_private_field_get(_this, pipelineEngine_inflightTasks).length > 0) pipelineEngine_class_private_method_get(_this, _scheduleSweep, scheduleSweep).call(_this);
|
|
3361
|
+
}, pipelineEngine_class_private_field_get(this, _sweepIntervalMs)).unref());
|
|
3362
|
+
}
|
|
3336
3363
|
function pipelineEngine_handleTaskTimeout(task) {
|
|
3337
3364
|
var _this, _this1;
|
|
3338
3365
|
var error = prepareTaskTimeout(task, pipelineEngine_class_private_field_get(this, pipelineEngine_metrics));
|
|
@@ -3972,9 +3999,9 @@ function enqueueWriter(kind, sql, timeout, token, onRow, scopeId) {
|
|
|
3972
3999
|
settled: false,
|
|
3973
4000
|
timer: null,
|
|
3974
4001
|
startTime: 0,
|
|
3975
|
-
rowParser: null
|
|
4002
|
+
rowParser: null,
|
|
4003
|
+
rows: "query" === kind ? [] : null
|
|
3976
4004
|
};
|
|
3977
|
-
if ("query" === kind) task.rows = [];
|
|
3978
4005
|
if ("stream" === kind) task.rowParser = setupStreamParser(task, executor_class_private_field_get(_this, _pipeline));
|
|
3979
4006
|
if (executor_class_private_field_get(_this, _txScope).isDeferred(scopeId)) executor_class_private_field_get(_this, _txScope).defer(task);
|
|
3980
4007
|
else executor_class_private_field_get(_this, _pipeline).enqueue(task);
|