orange-orm 4.5.0-beta.0 → 4.5.0-beta.2
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/README.md +6 -1
- package/docs/changelog.md +4 -0
- package/package.json +10 -6
- package/src/applyPatch.js +5 -2
- package/src/client/index.js +3 -2
- package/src/client/index.mjs +13552 -6381
- package/src/client/rollup.config.js +24 -4
- package/src/client/stringify.js +2 -9
- package/src/createDomain.js +7 -28
- package/src/d1/newDatabase.js +23 -37
- package/src/d1/newPool.js +6 -6
- package/src/d1/newTransaction.js +1 -0
- package/src/d1/pool/newGenericPool.js +2 -14
- package/src/emitEvent.js +6 -4
- package/src/emptyFilter.js +12 -12
- package/src/format.js +9 -0
- package/src/generic-pool.js +274 -313
- package/src/getManyDto/newQuery.js +5 -5
- package/src/getManyDto/query/newSingleQuery.js +5 -5
- package/src/getManyDto.js +73 -41
- package/src/hostExpress/cycle.ts +211 -0
- package/src/hostExpress/executePath.js +361 -357
- package/src/hostExpress.js +2 -7
- package/src/hostLocal.js +9 -9
- package/src/index.js +13 -17
- package/src/indexBrowser.js +39 -0
- package/src/mssql/newDatabase.js +19 -31
- package/src/mssql/newPool.js +2 -2
- package/src/mssql/newTransaction.js +4 -3
- package/src/mssql/pool/newGenericPool.js +1 -13
- package/src/mySql/deleteFromSql.js +5 -5
- package/src/mySql/insert.js +5 -5
- package/src/mySql/insertSql.js +2 -3
- package/src/mySql/lastInsertedSql.js +3 -4
- package/src/mySql/newDatabase.js +20 -34
- package/src/mySql/newPool.js +10 -10
- package/src/mySql/newTransaction.js +2 -2
- package/src/mySql/pool/newGenericPool.js +2 -15
- package/src/mySql/quote.js +1 -0
- package/src/newId.js +2 -1
- package/src/newImmutable.js +1 -2
- package/src/oracle/deleteFromSql.js +5 -5
- package/src/oracle/formatDateOut.js +1 -1
- package/src/oracle/insert.js +6 -6
- package/src/oracle/insertSql.js +6 -14
- package/src/oracle/lastInsertedSql.js +3 -3
- package/src/oracle/mergeSql.js +3 -6
- package/src/oracle/newDatabase.js +18 -33
- package/src/oracle/newInsertCommandCore.js +5 -5
- package/src/oracle/newPool.js +10 -10
- package/src/oracle/newTransaction.js +2 -1
- package/src/oracle/pool/newGenericPool.js +2 -14
- package/src/oracle/quote.js +1 -0
- package/src/oracle/wrapQuery.js +0 -3
- package/src/package.json +5 -0
- package/src/patchRow.js +2 -2
- package/src/patchTable.js +6 -5
- package/src/pg/deleteFromSql.js +5 -5
- package/src/pg/formatDateOut.js +1 -2
- package/src/pg/insert.js +3 -3
- package/src/pg/insertSql.js +2 -7
- package/src/pg/lastInsertedSql.js +1 -2
- package/src/pg/newDatabase.js +20 -37
- package/src/pg/newPool.js +10 -10
- package/src/pg/newTransaction.js +2 -1
- package/src/pg/pool/newPgPool.js +23 -16
- package/src/pg/pool/parseSearchPathParam.js +10 -0
- package/src/pg/quote.js +2 -0
- package/src/pg/schema.js +2 -2
- package/src/{mySql/pool/defaults.js → poolDefaults.js} +0 -2
- package/src/promisify.js +24 -0
- package/src/query.js +2 -2
- package/src/sap/deleteFromSql.js +3 -3
- package/src/sap/formatDateOut.js +1 -1
- package/src/sap/insert.js +5 -5
- package/src/sap/insertSql.js +4 -5
- package/src/sap/lastInsertedSql.js +3 -3
- package/src/sap/mergeSql.js +1 -2
- package/src/sap/newDatabase.js +23 -34
- package/src/sap/newPool.js +2 -2
- package/src/sap/newTransaction.js +2 -1
- package/src/sap/quote.js +1 -0
- package/src/sqlite/deleteFromSql.js +5 -5
- package/src/sqlite/insert.js +5 -5
- package/src/sqlite/insertSql.js +2 -2
- package/src/sqlite/lastInsertedSql.js +2 -2
- package/src/sqlite/newDatabase.js +16 -32
- package/src/sqlite/newPool.js +10 -10
- package/src/sqlite/newTransaction.js +2 -1
- package/src/sqlite/pool/newGenericPool.js +1 -13
- package/src/sqlite/quote.js +1 -0
- package/src/table/aggregate.js +1 -1
- package/src/table/begin.js +5 -5
- package/src/table/cascadeDelete.js +2 -2
- package/src/table/column/binary/newDecode.js +2 -2
- package/src/table/column/binary/newEncode.js +3 -4
- package/src/table/column/boolean/newDecode.js +1 -1
- package/src/table/column/boolean/newEncode.js +6 -6
- package/src/table/column/date/formatOut.js +3 -5
- package/src/table/column/date/newDecode.js +2 -2
- package/src/table/column/date/newEncode.js +8 -8
- package/src/table/column/date/tryParseISO.js +6 -8
- package/src/table/column/date.js +1 -1
- package/src/table/column/dateWithTimeZone/newEncode.js +3 -4
- package/src/table/column/dateWithTimeZone.js +1 -1
- package/src/table/column/encodeFilterArg.js +3 -3
- package/src/table/column/equal.js +3 -3
- package/src/table/column/extractAlias.js +0 -2
- package/src/table/column/greaterThan.js +3 -3
- package/src/table/column/greaterThanOrEqual.js +3 -3
- package/src/table/column/guid/newDecode.js +1 -1
- package/src/table/column/guid/newEncode.js +3 -3
- package/src/table/column/in.js +3 -3
- package/src/table/column/json/formatOut.js +3 -3
- package/src/table/column/json/newDecode.js +3 -3
- package/src/table/column/json/newEncode.js +6 -6
- package/src/table/column/json.js +2 -1
- package/src/table/column/lessThan.js +3 -3
- package/src/table/column/lessThanOrEqual.js +4 -4
- package/src/table/column/negotiateRawSqlFilter.js +1 -72
- package/src/table/column/newBoolean.js +2 -53
- package/src/table/column/newColumn.js +21 -21
- package/src/table/column/newDecodeCore.js +1 -1
- package/src/table/column/notEqual.js +3 -3
- package/src/table/column/numeric/newDecode.js +2 -2
- package/src/table/column/numeric/newEncode.js +3 -3
- package/src/table/column/string/contains.js +2 -1
- package/src/table/column/string/containsCore.js +5 -5
- package/src/table/column/string/endsWith.js +1 -1
- package/src/table/column/string/endsWithCore.js +4 -4
- package/src/table/column/string/iContains.js +2 -1
- package/src/table/column/string/iEndsWith.js +1 -1
- package/src/table/column/string/iEqual.js +3 -3
- package/src/table/column/string/iStartsWith.js +1 -1
- package/src/table/column/string/newEncode.js +3 -3
- package/src/table/column/string/startsWith.js +1 -1
- package/src/table/column/string/startsWithCore.js +4 -4
- package/src/table/column/string.js +14 -14
- package/src/table/column/utils.js +113 -0
- package/src/table/column.js +6 -2
- package/src/table/commands/beginCommand.js +2 -2
- package/src/table/commands/compressChanges.js +2 -2
- package/src/table/commands/delete/newSingleCommand.js +5 -5
- package/src/table/commands/delete/singleCommand/joinSql.js +12 -12
- package/src/table/commands/delete/singleCommand/newSingleCommandCore.js +2 -2
- package/src/table/commands/delete/singleCommand/selectSql.js +6 -6
- package/src/table/commands/delete/singleCommand/subFilter.js +11 -11
- package/src/table/commands/delete/singleCommand/whereSql.js +2 -2
- package/src/table/commands/getChangeSet.js +2 -2
- package/src/table/commands/insert/getSqlTemplate.js +16 -16
- package/src/table/commands/lastCommandMatches.js +2 -2
- package/src/table/commands/newDeleteCommand.js +5 -10
- package/src/table/commands/newGetLastInsertedCommand.js +4 -4
- package/src/table/commands/newGetLastInsertedCommandCore.js +5 -5
- package/src/table/commands/newInsertCommand.js +5 -3
- package/src/table/commands/newInsertCommandCore.js +12 -12
- package/src/table/commands/newRow.js +4 -4
- package/src/table/commands/newUpdateCommand.js +4 -4
- package/src/table/commands/newUpdateCommandCore.js +4 -4
- package/src/table/commands/pushCommand.js +2 -2
- package/src/table/commit.js +13 -11
- package/src/table/count.js +8 -8
- package/src/table/delete.js +4 -4
- package/src/table/deleteSessionContext.js +2 -14
- package/src/table/executeQueries/executeChanges.js +3 -3
- package/src/table/executeQueries/executeQueriesCore.js +2 -2
- package/src/table/executeQueries/executeQuery.js +2 -2
- package/src/table/executeQueries/resolveExecuteQuery.js +3 -10
- package/src/table/executeQueries.js +4 -4
- package/src/table/getFromDbById.js +1 -1
- package/src/table/getMany.js +7 -7
- package/src/table/getManyDto.js +3 -4
- package/src/table/getSessionContext.js +4 -4
- package/src/table/getSessionSingleton.js +3 -2
- package/src/table/groupBy/newQuery.js +4 -4
- package/src/table/groupBy.js +9 -9
- package/src/table/insert.js +10 -13
- package/src/table/joinRelation/getRelatives.js +6 -6
- package/src/table/newCascadeDeleteStrategy.js +1 -7
- package/src/table/newGetRelated.js +3 -3
- package/src/table/newManyRelation.js +9 -9
- package/src/table/newOneRelation.js +9 -9
- package/src/table/newPrimaryKeyFilter.js +6 -6
- package/src/table/newQuery.js +5 -5
- package/src/table/newRelatedTable.js +6 -12
- package/src/table/newRowCache.js +17 -17
- package/src/table/newThrow.js +2 -2
- package/src/table/oneRelation/getRelatives.js +5 -5
- package/src/table/popChanges.js +3 -3
- package/src/table/promise.js +2 -8
- package/src/table/query/extractLimit.js +2 -2
- package/src/table/query/extractOffset.js +2 -2
- package/src/table/query/extractOrderBy.js +2 -2
- package/src/table/query/newParameterized.js +8 -11
- package/src/table/query/newSingleQuery.js +7 -7
- package/src/table/query/singleQuery/columnSql/joinLegToColumnSql.js +2 -15
- package/src/table/query/singleQuery/columnSql/newJoinedColumnSql.js +2 -25
- package/src/table/query/singleQuery/columnSql/newShallowColumnSql.js +4 -4
- package/src/table/query/singleQuery/columnSql/sharedJoinUtils.js +37 -0
- package/src/table/query/singleQuery/joinSql/joinLegToJoinSql.js +2 -7
- package/src/table/query/singleQuery/joinSql/joinLegToShallowJoinSql.js +2 -2
- package/src/table/query/singleQuery/joinSql/newDiscriminatorSql.js +2 -2
- package/src/table/query/singleQuery/joinSql/newShallowJoinSql.js +5 -5
- package/src/table/query/singleQuery/joinSql/newShallowJoinSqlCore.js +6 -5
- package/src/table/query/singleQuery/joinSql/oneLegToJoinSql.js +2 -8
- package/src/table/query/singleQuery/joinSql/oneLegToShallowJoinSql.js +2 -2
- package/src/table/query/singleQuery/negotiateExclusive.js +2 -2
- package/src/table/query/singleQuery/newColumnSql.js +3 -3
- package/src/table/query/singleQuery/newDiscriminatorSql.js +2 -2
- package/src/table/query/singleQuery/newJoinSql.js +7 -7
- package/src/table/query/singleQuery/newWhereSql.js +3 -3
- package/src/table/quote.js +4 -4
- package/src/table/relatedTable/aggregate.js +2 -8
- package/src/table/relatedTable/all.js +6 -12
- package/src/table/relatedTable/any.js +4 -11
- package/src/table/relatedTable/childColumn.js +12 -12
- package/src/table/relatedTable/columnAggregate.js +3 -3
- package/src/table/relatedTable/columnAggregateGroup.js +11 -11
- package/src/table/relatedTable/joinSql.js +5 -5
- package/src/table/relatedTable/joinSqlArray.js +3 -3
- package/src/table/relatedTable/none.js +4 -10
- package/src/table/relatedTable/relatedColumn.js +13 -13
- package/src/table/relatedTable/selectSql.js +2 -2
- package/src/table/relatedTable/subFilter.js +4 -4
- package/src/table/relatedTable/where.js +3 -9
- package/src/table/relatedTable/whereSql.js +2 -2
- package/src/table/relation/manyCache/synchronizeAdded.js +2 -2
- package/src/table/relation/manyCache/synchronizeChanged.js +3 -3
- package/src/table/relation/manyCache/synchronizeRemoved.js +2 -2
- package/src/table/relation/newForeignKeyFilter.js +2 -2
- package/src/table/relation/newManyCache.js +25 -17
- package/src/table/relation/newOneCache.js +6 -6
- package/src/table/releaseDbClient.js +4 -4
- package/src/table/resultToPromise.js +1 -3
- package/src/table/resultToRows/dbRowToRow.js +6 -13
- package/src/table/resultToRows/dbRowsToRows.js +2 -2
- package/src/table/resultToRows/decodeDbRow.js +2 -2
- package/src/table/resultToRows/delete/removeFromCache.js +4 -11
- package/src/table/resultToRows/delete.js +6 -6
- package/src/table/resultToRows/newDecodeDbRow.js +19 -25
- package/src/table/resultToRows/toDto/extractStrategy.js +1 -7
- package/src/table/resultToRows/toDto.js +3 -3
- package/src/table/resultToRows.js +3 -3
- package/src/table/rollback.js +21 -11
- package/src/table/rowArray/negotiateNextTick.js +1 -2
- package/src/table/setSessionSingleton.js +6 -3
- package/src/table/tryGetFirstFromDb.js +4 -4
- package/src/table/tryGetFromCacheById.js +3 -3
- package/src/table/tryGetFromDbById/extractStrategy.js +2 -2
- package/src/table/tryGetFromDbById.js +8 -6
- package/src/table/tryGetSessionContext.js +3 -13
- package/src/table/tryReleaseDbClient.js +2 -2
- package/src/table/updateField.js +4 -4
- package/src/table/where.js +2 -2
- package/src/table.js +56 -53
- package/src/tedious/deleteFromSql.js +5 -5
- package/src/tedious/formatDateOut.js +1 -1
- package/src/tedious/getManyDto/newQueryCore.js +5 -5
- package/src/tedious/getManyDto/query/newSingleQuery.js +5 -5
- package/src/tedious/getManyDto/query/newSubQueries/joinLegToQuery.js +4 -5
- package/src/tedious/getManyDto/query/newSubQueries/manyLegToQuery.js +4 -5
- package/src/tedious/getManyDto/query/newSubQueries/oneLegToQuery.js +13 -14
- package/src/tedious/getManyDto/query/newSubQueries.js +9 -26
- package/src/tedious/getManyDto/query/singleQuery/newShallowColumnSql.js +5 -6
- package/src/tedious/getManyDto.js +6 -6
- package/src/tedious/insert.js +3 -3
- package/src/tedious/insertSql.js +3 -3
- package/src/tedious/newDatabase.js +17 -30
- package/src/tedious/newPool.js +10 -10
- package/src/tedious/newTransaction.js +3 -4
- package/src/tedious/pool/newGenericPool.js +1 -13
- package/src/tedious/quote.js +1 -0
- package/src/validateDeleteConflict.js +4 -2
- package/src/createDomain/negotiateForwardProperty.js +0 -23
- package/src/d1/pool/defaults.js +0 -45
- package/src/mssql/pool/defaults.js +0 -45
- package/src/oracle/pool/defaults.js +0 -45
- package/src/pg/pool/defaults.js +0 -45
- package/src/sqlite/pool/defaults.js +0 -45
- package/src/table/createJSONReadStream.js +0 -7
- package/src/table/createJSONReadStreamDefault.js +0 -33
- package/src/table/createJSONReadStreamNative.js +0 -31
- package/src/table/createReadStream.js +0 -24
- package/src/table/createReadStreamCoreNative.js +0 -40
- package/src/table/createReadStreamDefault.js +0 -102
- package/src/table/createReadStreamNative.js +0 -17
- package/src/table/readStream/extractLimit.js +0 -7
- package/src/table/readStream/extractOrderBy.js +0 -59
- package/src/table/readStream/mySql/newQuery.js +0 -16
- package/src/table/readStream/mySql/query/newSingleQuery.js +0 -21
- package/src/table/readStream/mySql/query/newSubQueries/joinLegToQuery.js +0 -20
- package/src/table/readStream/mySql/query/newSubQueries/manyLegToQuery.js +0 -22
- package/src/table/readStream/mySql/query/newSubQueries/newQueryCore.js +0 -9
- package/src/table/readStream/mySql/query/newSubQueries/newSingleQueryCore.js +0 -18
- package/src/table/readStream/mySql/query/newSubQueries/oneLegToQuery.js +0 -22
- package/src/table/readStream/mySql/query/newSubQueries.js +0 -47
- package/src/table/readStream/mySql/query/singleQuery/newShallowColumnSql.js +0 -18
- package/src/table/readStream/newQuery.js +0 -32
- package/src/table/readStream/newQueryStream.js +0 -8
- package/src/table/readStream/pg/newQuery.js +0 -8
- package/src/table/readStream/pg/newQueryCore.js +0 -17
- package/src/table/readStream/pg/query/newSingleQuery.js +0 -19
- package/src/table/readStream/pg/query/newSubQueries/joinLegToQuery.js +0 -19
- package/src/table/readStream/pg/query/newSubQueries/manyLegToQuery.js +0 -22
- package/src/table/readStream/pg/query/newSubQueries/oneLegToQuery.js +0 -19
- package/src/table/readStream/pg/query/newSubQueries.js +0 -47
- package/src/table/readStream/pg/query/singleQuery/newShallowColumnSql.js +0 -20
- package/src/table/readStreamDefault/createBatchFilter.js +0 -39
- package/src/tedious/pool/defaults.js +0 -45
- package/src/useHook.js +0 -9
package/src/tedious/insert.js
CHANGED
|
@@ -2,11 +2,11 @@ let newInsertCommand = require('../table/commands/newInsertCommand');
|
|
|
2
2
|
let newInsertCommandCore = require('../table/commands/newInsertCommandCore');
|
|
3
3
|
let executeQueries = require('../table/executeQueries');
|
|
4
4
|
|
|
5
|
-
async function insertDefault(table, row, options) {
|
|
6
|
-
let insertCmd = newInsertCommand(newInsertCommandCore, table, row, options);
|
|
5
|
+
async function insertDefault(context, table, row, options) {
|
|
6
|
+
let insertCmd = newInsertCommand(newInsertCommandCore.bind(null, context), table, row, options);
|
|
7
7
|
insertCmd.disallowCompress = true;
|
|
8
8
|
|
|
9
|
-
return executeQueries([insertCmd]).then((result) => result[result.length - 1]);
|
|
9
|
+
return executeQueries(context, [insertCmd]).then((result) => result[result.length - 1]);
|
|
10
10
|
|
|
11
11
|
}
|
|
12
12
|
|
package/src/tedious/insertSql.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
let outputInsertedSql = require('./outputInsertedSql');
|
|
2
2
|
let mergeSql = require('./mergeSql');
|
|
3
3
|
|
|
4
|
-
function getSqlTemplate(_table, _row, options) {
|
|
4
|
+
function getSqlTemplate(_context, _table, _row, options) {
|
|
5
5
|
if (hasConcurrency(_table, options) && hasColumns())
|
|
6
|
-
return mergeSql.apply(null, arguments);
|
|
6
|
+
return mergeSql.apply(null, [...arguments].slice(1));
|
|
7
7
|
else
|
|
8
|
-
return insertSql.apply(null, arguments);
|
|
8
|
+
return insertSql.apply(null, [...arguments].slice(1));
|
|
9
9
|
|
|
10
10
|
function hasColumns() {
|
|
11
11
|
for(let p in _row) {
|
|
@@ -4,10 +4,6 @@ let _begin = require('../table/begin');
|
|
|
4
4
|
let commit = require('../table/commit');
|
|
5
5
|
let rollback = require('../table/rollback');
|
|
6
6
|
let newPool = require('./newPool');
|
|
7
|
-
let useHook = require('../useHook');
|
|
8
|
-
let promise = require('promise/domains');
|
|
9
|
-
let versionArray = process.version.replace('v', '').split('.');
|
|
10
|
-
let major = parseInt(versionArray[0]);
|
|
11
7
|
let express = require('../hostExpress');
|
|
12
8
|
let hostLocal = require('../hostLocal');
|
|
13
9
|
let doQuery = require('../query');
|
|
@@ -34,15 +30,11 @@ function newDatabase(connectionString, poolOptions) {
|
|
|
34
30
|
|
|
35
31
|
if (fn)
|
|
36
32
|
return domain.run(runInTransaction);
|
|
37
|
-
else if ((major >= 12) && useHook()) {
|
|
38
|
-
domain.exitContext = true;
|
|
39
|
-
return domain.start().then(run);
|
|
40
|
-
}
|
|
41
33
|
else
|
|
42
34
|
return domain.run(run);
|
|
43
35
|
|
|
44
36
|
function begin() {
|
|
45
|
-
return _begin(options
|
|
37
|
+
return _begin(domain, options);
|
|
46
38
|
}
|
|
47
39
|
|
|
48
40
|
async function runInTransaction() {
|
|
@@ -50,10 +42,10 @@ function newDatabase(connectionString, poolOptions) {
|
|
|
50
42
|
let transaction = newTransaction(domain, pool, options);
|
|
51
43
|
await new Promise(transaction)
|
|
52
44
|
.then(begin)
|
|
53
|
-
.then(fn)
|
|
45
|
+
.then(() => fn(domain))
|
|
54
46
|
.then((res) => result = res)
|
|
55
|
-
.then(c.commit)
|
|
56
|
-
.then(null, c.rollback);
|
|
47
|
+
.then(() => c.commit(domain))
|
|
48
|
+
.then(null, (e) => c.rollback(domain,e));
|
|
57
49
|
return result;
|
|
58
50
|
}
|
|
59
51
|
|
|
@@ -61,53 +53,48 @@ function newDatabase(connectionString, poolOptions) {
|
|
|
61
53
|
function run() {
|
|
62
54
|
let p;
|
|
63
55
|
let transaction = newTransaction(domain, pool, options);
|
|
64
|
-
|
|
65
|
-
p = new Promise(transaction);
|
|
66
|
-
else
|
|
67
|
-
p = new promise(transaction);
|
|
56
|
+
p = new Promise(transaction);
|
|
68
57
|
|
|
69
58
|
return p.then(begin);
|
|
70
59
|
}
|
|
71
60
|
|
|
72
61
|
};
|
|
73
62
|
|
|
74
|
-
c.createTransaction = function() {
|
|
63
|
+
c.createTransaction = function(options) {
|
|
75
64
|
let domain = createDomain();
|
|
76
65
|
let transaction = newTransaction(domain, pool);
|
|
77
|
-
let p = domain.run(() => new Promise(transaction).then(
|
|
66
|
+
let p = domain.run(() => new Promise(transaction).then(begin));
|
|
78
67
|
|
|
79
68
|
function run(fn) {
|
|
80
69
|
return p.then(domain.run.bind(domain, fn));
|
|
81
70
|
}
|
|
71
|
+
|
|
72
|
+
run.rollback = rollback.bind(null, domain);
|
|
73
|
+
run.commit = commit.bind(null, domain);
|
|
82
74
|
return run;
|
|
83
|
-
};
|
|
84
75
|
|
|
85
|
-
c.bindTransaction = function() {
|
|
86
|
-
// @ts-ignore
|
|
87
|
-
var domain = process.domain;
|
|
88
|
-
let p = domain.run(() => true);
|
|
89
76
|
|
|
90
|
-
function
|
|
91
|
-
return
|
|
77
|
+
function begin() {
|
|
78
|
+
return _begin(domain, options);
|
|
92
79
|
}
|
|
93
|
-
|
|
80
|
+
|
|
94
81
|
};
|
|
95
82
|
|
|
96
83
|
c.query = function(query) {
|
|
97
84
|
let domain = createDomain();
|
|
98
85
|
let transaction = newTransaction(domain, pool);
|
|
99
86
|
let p = domain.run(() => new Promise(transaction)
|
|
100
|
-
.then(() => setSessionSingleton('changes', []))
|
|
101
|
-
.then(() => doQuery(query).then(onResult, onError)));
|
|
87
|
+
.then(() => setSessionSingleton(domain, 'changes', []))
|
|
88
|
+
.then(() => doQuery(domain, query).then(onResult, onError)));
|
|
102
89
|
return p;
|
|
103
90
|
|
|
104
91
|
function onResult(result) {
|
|
105
|
-
releaseDbClient();
|
|
92
|
+
releaseDbClient(domain);
|
|
106
93
|
return result;
|
|
107
94
|
}
|
|
108
95
|
|
|
109
96
|
function onError(e) {
|
|
110
|
-
releaseDbClient();
|
|
97
|
+
releaseDbClient(domain);
|
|
111
98
|
throw e;
|
|
112
99
|
}
|
|
113
100
|
};
|
package/src/tedious/newPool.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
const promisify = require('../promisify');
|
|
2
|
+
const pools = require('../pools');
|
|
3
|
+
const end = require('./pool/end');
|
|
4
|
+
const newGenericPool = require('./pool/newGenericPool');
|
|
5
|
+
const newId = require('../newId');
|
|
6
6
|
|
|
7
7
|
function newPool(connectionString, poolOptions) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
let pool = newGenericPool(connectionString, poolOptions);
|
|
9
|
+
let id = newId();
|
|
10
|
+
let boundEnd = end.bind(null, pool, id);
|
|
11
|
+
let c = {};
|
|
12
12
|
|
|
13
13
|
c.connect = pool.connect;
|
|
14
|
-
c.end =
|
|
14
|
+
c.end = promisify(boundEnd);
|
|
15
15
|
pools[id] = c;
|
|
16
16
|
return c;
|
|
17
17
|
}
|
|
@@ -2,13 +2,13 @@ var wrapQuery = require('./wrapQuery');
|
|
|
2
2
|
var encodeBoolean = require('./encodeBoolean');
|
|
3
3
|
var deleteFromSql = require('./deleteFromSql');
|
|
4
4
|
var selectForUpdateSql = require('./selectForUpdateSql');
|
|
5
|
-
var outputInsertedSql = require('./outputInsertedSql');
|
|
6
5
|
const limitAndOffset = require('./limitAndOffset');
|
|
6
|
+
const insertSql = require('./insertSql');
|
|
7
7
|
const getManyDto = require('./getManyDto');
|
|
8
8
|
const formatDateOut = require('./formatDateOut');
|
|
9
9
|
const formatJSONOut = require('./formatJSONOut');
|
|
10
|
-
const insertSql = require('./insertSql');
|
|
11
10
|
const insert = require('./insert');
|
|
11
|
+
const quote = require('./quote');
|
|
12
12
|
|
|
13
13
|
function newResolveTransaction(domain, pool, { readonly = false } = {}) {
|
|
14
14
|
var rdb = {poolFactory: pool};
|
|
@@ -23,7 +23,6 @@ function newResolveTransaction(domain, pool, { readonly = false } = {}) {
|
|
|
23
23
|
rdb.encodeJSON = JSON.stringify;
|
|
24
24
|
rdb.deleteFromSql = deleteFromSql;
|
|
25
25
|
rdb.selectForUpdateSql = selectForUpdateSql;
|
|
26
|
-
rdb.outputInsertedSql = outputInsertedSql;
|
|
27
26
|
rdb.lastInsertedIsSeparate = false;
|
|
28
27
|
rdb.insertSql = insertSql;
|
|
29
28
|
rdb.insert = insert;
|
|
@@ -44,7 +43,7 @@ function newResolveTransaction(domain, pool, { readonly = false } = {}) {
|
|
|
44
43
|
caller.visitSqlite();
|
|
45
44
|
};
|
|
46
45
|
rdb.aggregateCount = 0;
|
|
47
|
-
rdb.quote =
|
|
46
|
+
rdb.quote = quote;
|
|
48
47
|
|
|
49
48
|
if (readonly) {
|
|
50
49
|
rdb.dbClient = {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
2
|
/* eslint-disable no-prototype-builtins */
|
|
3
|
-
var EventEmitter = require('events').EventEmitter;
|
|
4
3
|
|
|
5
|
-
var defaults = require('
|
|
4
|
+
var defaults = require('../../poolDefaults');
|
|
6
5
|
var genericPool = require('../../generic-pool');
|
|
7
6
|
var tedious = require('tedious');
|
|
8
7
|
var parseConnectionString = require('./parseConnectionString');
|
|
@@ -40,20 +39,9 @@ function newGenericPool(connectionString, poolOptions) {
|
|
|
40
39
|
client.close();
|
|
41
40
|
}
|
|
42
41
|
});
|
|
43
|
-
//mixin EventEmitter to pool
|
|
44
|
-
EventEmitter.call(pool);
|
|
45
|
-
for (var key in EventEmitter.prototype) {
|
|
46
|
-
if (EventEmitter.prototype.hasOwnProperty(key)) {
|
|
47
|
-
pool[key] = EventEmitter.prototype[key];
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
42
|
//monkey-patch with connect method
|
|
51
43
|
pool.connect = function(cb) {
|
|
52
|
-
var domain = process.domain;
|
|
53
44
|
pool.acquire(function(err, client) {
|
|
54
|
-
if (domain) {
|
|
55
|
-
cb = domain.bind(cb);
|
|
56
|
-
}
|
|
57
45
|
if (err) return cb(err, null, function() {/*NOOP*/ });
|
|
58
46
|
client.poolCount++;
|
|
59
47
|
cb(null, client, function(err) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = (name) => `[${name}]`;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
2
|
/* eslint-disable */
|
|
3
|
-
let { inspect } = require('util');
|
|
4
3
|
let assert = require('assert');
|
|
5
4
|
const toCompareObject = require('./toCompareObject');
|
|
6
5
|
|
|
@@ -19,7 +18,7 @@ async function validateDeleteConflict({ row, oldValue, options, table }) {
|
|
|
19
18
|
assert.deepEqual(oldValue[p], toCompareObject(row[p]));
|
|
20
19
|
}
|
|
21
20
|
catch (e) {
|
|
22
|
-
throw new Error(`The field ${p} was changed by another user. Expected ${inspect(oldValue[p]
|
|
21
|
+
throw new Error(`The field ${p} was changed by another user. Expected ${inspect(oldValue[p])}, but was ${inspect(row[p])}.`);
|
|
23
22
|
}
|
|
24
23
|
}
|
|
25
24
|
}
|
|
@@ -88,5 +87,8 @@ function assertDatesEqual(date1, date2) {
|
|
|
88
87
|
assert.deepEqual(date1, date2);
|
|
89
88
|
}
|
|
90
89
|
|
|
90
|
+
function inspect(obj) {
|
|
91
|
+
return JSON.stringify(obj, null, 2);
|
|
92
|
+
}
|
|
91
93
|
|
|
92
94
|
module.exports = validateDeleteConflict;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
function negotiateForwardProperty(oldDomain, newDomain, propertyName) {
|
|
2
|
-
if(newDomain[propertyName]) return;
|
|
3
|
-
if (propertyName === 'rdb') return;
|
|
4
|
-
Object.defineProperty(newDomain, propertyName, {
|
|
5
|
-
enumerable: true,
|
|
6
|
-
get: createGetter(oldDomain, propertyName),
|
|
7
|
-
set: createSetter(oldDomain, propertyName)
|
|
8
|
-
});
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function createGetter(oldDomain, propName) {
|
|
12
|
-
return function() {
|
|
13
|
-
return oldDomain[propName];
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
function createSetter(oldDomain, propName) {
|
|
18
|
-
return function(value) {
|
|
19
|
-
oldDomain[propName] = value;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
module.exports = negotiateForwardProperty;
|
package/src/d1/pool/defaults.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
// database host defaults to localhost
|
|
3
|
-
host: 'localhost',
|
|
4
|
-
|
|
5
|
-
//database user's name
|
|
6
|
-
user: process.platform === 'win32' ? process.env.USERNAME : process.env.USER,
|
|
7
|
-
|
|
8
|
-
//name of database to connect
|
|
9
|
-
database: process.platform === 'win32' ? process.env.USERNAME : process.env.USER,
|
|
10
|
-
|
|
11
|
-
//database user's password
|
|
12
|
-
password: null,
|
|
13
|
-
|
|
14
|
-
//database port
|
|
15
|
-
port: 5432,
|
|
16
|
-
|
|
17
|
-
//number of rows to return at a time from a prepared statement's
|
|
18
|
-
//portal. 0 will return all rows at once
|
|
19
|
-
rows: 0,
|
|
20
|
-
|
|
21
|
-
// binary result mode
|
|
22
|
-
binary: false,
|
|
23
|
-
|
|
24
|
-
//Connection pool options - see https://github.com/coopernurse/node-pool
|
|
25
|
-
//number of connections to use in connection pool
|
|
26
|
-
//0 will disable connection pooling
|
|
27
|
-
poolSize: 0,
|
|
28
|
-
|
|
29
|
-
//max milliseconds a client can go unused before it is removed
|
|
30
|
-
//from the pool and destroyed
|
|
31
|
-
poolIdleTimeout: 30000,
|
|
32
|
-
|
|
33
|
-
//frequeny to check for idle clients within the client pool
|
|
34
|
-
reapIntervalMillis: 1000,
|
|
35
|
-
|
|
36
|
-
//pool log function / boolean
|
|
37
|
-
poolLog: false,
|
|
38
|
-
|
|
39
|
-
client_encoding: '',
|
|
40
|
-
|
|
41
|
-
ssl: false,
|
|
42
|
-
|
|
43
|
-
application_name : undefined,
|
|
44
|
-
fallback_application_name: undefined
|
|
45
|
-
};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
// database host defaults to localhost
|
|
3
|
-
host: 'localhost',
|
|
4
|
-
|
|
5
|
-
//database user's name
|
|
6
|
-
user: process.platform === 'win32' ? process.env.USERNAME : process.env.USER,
|
|
7
|
-
|
|
8
|
-
//name of database to connect
|
|
9
|
-
database: process.platform === 'win32' ? process.env.USERNAME : process.env.USER,
|
|
10
|
-
|
|
11
|
-
//database user's password
|
|
12
|
-
password: null,
|
|
13
|
-
|
|
14
|
-
//database port
|
|
15
|
-
port: 5432,
|
|
16
|
-
|
|
17
|
-
//number of rows to return at a time from a prepared statement's
|
|
18
|
-
//portal. 0 will return all rows at once
|
|
19
|
-
rows: 0,
|
|
20
|
-
|
|
21
|
-
// binary result mode
|
|
22
|
-
binary: false,
|
|
23
|
-
|
|
24
|
-
//Connection pool options - see https://github.com/coopernurse/node-pool
|
|
25
|
-
//number of connections to use in connection pool
|
|
26
|
-
//0 will disable connection pooling
|
|
27
|
-
poolSize: 0,
|
|
28
|
-
|
|
29
|
-
//max milliseconds a client can go unused before it is removed
|
|
30
|
-
//from the pool and destroyed
|
|
31
|
-
poolIdleTimeout: 30000,
|
|
32
|
-
|
|
33
|
-
//frequeny to check for idle clients within the client pool
|
|
34
|
-
reapIntervalMillis: 1000,
|
|
35
|
-
|
|
36
|
-
//pool log function / boolean
|
|
37
|
-
poolLog: false,
|
|
38
|
-
|
|
39
|
-
client_encoding: '',
|
|
40
|
-
|
|
41
|
-
ssl: false,
|
|
42
|
-
|
|
43
|
-
application_name : undefined,
|
|
44
|
-
fallback_application_name: undefined
|
|
45
|
-
};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
// database host defaults to localhost
|
|
3
|
-
host: 'localhost',
|
|
4
|
-
|
|
5
|
-
//database user's name
|
|
6
|
-
user: process.platform === 'win32' ? process.env.USERNAME : process.env.USER,
|
|
7
|
-
|
|
8
|
-
//name of database to connect
|
|
9
|
-
database: process.platform === 'win32' ? process.env.USERNAME : process.env.USER,
|
|
10
|
-
|
|
11
|
-
//database user's password
|
|
12
|
-
password: null,
|
|
13
|
-
|
|
14
|
-
//database port
|
|
15
|
-
port: 5432,
|
|
16
|
-
|
|
17
|
-
//number of rows to return at a time from a prepared statement's
|
|
18
|
-
//portal. 0 will return all rows at once
|
|
19
|
-
rows: 0,
|
|
20
|
-
|
|
21
|
-
// binary result mode
|
|
22
|
-
binary: false,
|
|
23
|
-
|
|
24
|
-
//Connection pool options - see https://github.com/coopernurse/node-pool
|
|
25
|
-
//number of connections to use in connection pool
|
|
26
|
-
//0 will disable connection pooling
|
|
27
|
-
poolSize: 0,
|
|
28
|
-
|
|
29
|
-
//max milliseconds a client can go unused before it is removed
|
|
30
|
-
//from the pool and destroyed
|
|
31
|
-
poolIdleTimeout: 30000,
|
|
32
|
-
|
|
33
|
-
//frequeny to check for idle clients within the client pool
|
|
34
|
-
reapIntervalMillis: 1000,
|
|
35
|
-
|
|
36
|
-
//pool log function / boolean
|
|
37
|
-
poolLog: false,
|
|
38
|
-
|
|
39
|
-
client_encoding: '',
|
|
40
|
-
|
|
41
|
-
ssl: false,
|
|
42
|
-
|
|
43
|
-
application_name : undefined,
|
|
44
|
-
fallback_application_name: undefined
|
|
45
|
-
};
|
package/src/pg/pool/defaults.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
// database host defaults to localhost
|
|
3
|
-
host: 'localhost',
|
|
4
|
-
|
|
5
|
-
//database user's name
|
|
6
|
-
user: process.platform === 'win32' ? process.env.USERNAME : process.env.USER,
|
|
7
|
-
|
|
8
|
-
//name of database to connect
|
|
9
|
-
database: process.platform === 'win32' ? process.env.USERNAME : process.env.USER,
|
|
10
|
-
|
|
11
|
-
//database user's password
|
|
12
|
-
password: null,
|
|
13
|
-
|
|
14
|
-
//database port
|
|
15
|
-
port: 5432,
|
|
16
|
-
|
|
17
|
-
//number of rows to return at a time from a prepared statement's
|
|
18
|
-
//portal. 0 will return all rows at once
|
|
19
|
-
rows: 0,
|
|
20
|
-
|
|
21
|
-
// binary result mode
|
|
22
|
-
binary: false,
|
|
23
|
-
|
|
24
|
-
//Connection pool options - see https://github.com/coopernurse/node-pool
|
|
25
|
-
//number of connections to use in connection pool
|
|
26
|
-
//0 will disable connection pooling
|
|
27
|
-
poolSize: 0,
|
|
28
|
-
|
|
29
|
-
//max milliseconds a client can go unused before it is removed
|
|
30
|
-
//from the pool and destroyed
|
|
31
|
-
poolIdleTimeout: 30000,
|
|
32
|
-
|
|
33
|
-
//frequeny to check for idle clients within the client pool
|
|
34
|
-
reapIntervalMillis: 1000,
|
|
35
|
-
|
|
36
|
-
//pool log function / boolean
|
|
37
|
-
poolLog: false,
|
|
38
|
-
|
|
39
|
-
client_encoding: '',
|
|
40
|
-
|
|
41
|
-
ssl: false,
|
|
42
|
-
|
|
43
|
-
application_name : undefined,
|
|
44
|
-
fallback_application_name: undefined
|
|
45
|
-
};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
// database host defaults to localhost
|
|
3
|
-
host: 'localhost',
|
|
4
|
-
|
|
5
|
-
//database user's name
|
|
6
|
-
user: process.platform === 'win32' ? process.env.USERNAME : process.env.USER,
|
|
7
|
-
|
|
8
|
-
//name of database to connect
|
|
9
|
-
database: process.platform === 'win32' ? process.env.USERNAME : process.env.USER,
|
|
10
|
-
|
|
11
|
-
//database user's password
|
|
12
|
-
password: null,
|
|
13
|
-
|
|
14
|
-
//database port
|
|
15
|
-
port: 5432,
|
|
16
|
-
|
|
17
|
-
//number of rows to return at a time from a prepared statement's
|
|
18
|
-
//portal. 0 will return all rows at once
|
|
19
|
-
rows: 0,
|
|
20
|
-
|
|
21
|
-
// binary result mode
|
|
22
|
-
binary: false,
|
|
23
|
-
|
|
24
|
-
//Connection pool options - see https://github.com/coopernurse/node-pool
|
|
25
|
-
//number of connections to use in connection pool
|
|
26
|
-
//0 will disable connection pooling
|
|
27
|
-
poolSize: 0,
|
|
28
|
-
|
|
29
|
-
//max milliseconds a client can go unused before it is removed
|
|
30
|
-
//from the pool and destroyed
|
|
31
|
-
poolIdleTimeout: 30000,
|
|
32
|
-
|
|
33
|
-
//frequeny to check for idle clients within the client pool
|
|
34
|
-
reapIntervalMillis: 1000,
|
|
35
|
-
|
|
36
|
-
//pool log function / boolean
|
|
37
|
-
poolLog: false,
|
|
38
|
-
|
|
39
|
-
client_encoding: '',
|
|
40
|
-
|
|
41
|
-
ssl: false,
|
|
42
|
-
|
|
43
|
-
application_name : undefined,
|
|
44
|
-
fallback_application_name: undefined
|
|
45
|
-
};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
var createJSONReadStreamDefault = require('./createJSONReadStreamDefault');
|
|
2
|
-
|
|
3
|
-
function createJSONReadStream(table, db, filter, strategy, streamOptions) {
|
|
4
|
-
return createJSONReadStreamDefault(table, db, filter, strategy, streamOptions);
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
module.exports = createJSONReadStream;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
var createReadStreamCore = require('./createReadStreamDefault');
|
|
2
|
-
var Stream = require('stream');
|
|
3
|
-
|
|
4
|
-
function createJSONReadStream(table, db, filter, strategy, streamOptions) {
|
|
5
|
-
var transformer = Stream.Transform({ objectMode: true });
|
|
6
|
-
var started;
|
|
7
|
-
transformer._transform = function(obj, enc, cb) {
|
|
8
|
-
var data = JSON.stringify(obj);
|
|
9
|
-
if (started)
|
|
10
|
-
transformer.push(',' + data);
|
|
11
|
-
else {
|
|
12
|
-
transformer.push('[');
|
|
13
|
-
transformer.push(data);
|
|
14
|
-
started = true;
|
|
15
|
-
}
|
|
16
|
-
cb();
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
transformer._flush = function(cb) {
|
|
20
|
-
transformer.push(']');
|
|
21
|
-
cb();
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
var objectStream = createReadStreamCore(table, db, filter, strategy, streamOptions);
|
|
25
|
-
objectStream.on('error', onError);
|
|
26
|
-
return objectStream.pipe(transformer);
|
|
27
|
-
|
|
28
|
-
function onError(e) {
|
|
29
|
-
transformer.emit('error', e);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
module.exports = createJSONReadStream;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
var createReadStreamCore = require('./createReadStreamCoreNative');
|
|
2
|
-
var Stream = require('stream');
|
|
3
|
-
|
|
4
|
-
function createJSONReadStream(table, db, filter, strategy, streamOptions) {
|
|
5
|
-
var transformer = Stream.Transform({
|
|
6
|
-
objectMode: true
|
|
7
|
-
});
|
|
8
|
-
var started;
|
|
9
|
-
transformer._transform = function(chunk, enc, cb) {
|
|
10
|
-
if (started)
|
|
11
|
-
transformer.push(',' + chunk.result);
|
|
12
|
-
else {
|
|
13
|
-
transformer.push('[');
|
|
14
|
-
let result = chunk.result;
|
|
15
|
-
if (typeof result === 'object')
|
|
16
|
-
result = JSON.stringify(result);
|
|
17
|
-
transformer.push(result);
|
|
18
|
-
started = true;
|
|
19
|
-
}
|
|
20
|
-
cb();
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
transformer._flush = function(cb) {
|
|
24
|
-
transformer.push(']');
|
|
25
|
-
cb();
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
return createReadStreamCore(table, db, filter, strategy, transformer, streamOptions);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
module.exports = createJSONReadStream;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
var createReadStreamNative = require('./createReadStreamNative');
|
|
2
|
-
var createReadStreamDefault = require('./createReadStreamDefault');
|
|
3
|
-
|
|
4
|
-
function createReadStream(table, db, filter, strategy, streamOptions) {
|
|
5
|
-
var create;
|
|
6
|
-
var c = {};
|
|
7
|
-
|
|
8
|
-
c.visitPg = function() {
|
|
9
|
-
create = createReadStreamNative;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
c.visitMySql = c.visitPg;
|
|
13
|
-
|
|
14
|
-
c.visitSqlite = function() {
|
|
15
|
-
create = createReadStreamDefault;
|
|
16
|
-
};
|
|
17
|
-
c.visitSap = c.visitSqlite;
|
|
18
|
-
|
|
19
|
-
db.accept(c);
|
|
20
|
-
|
|
21
|
-
return create(table, db, filter, strategy, streamOptions);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
module.exports = createReadStream;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
var newQuery = require('./readStream/newQuery');
|
|
2
|
-
var strategyToSpan = require('./strategyToSpan');
|
|
3
|
-
var negotiateRawSqlFilter = require('./column/negotiateRawSqlFilter');
|
|
4
|
-
var newQueryStream = require('./readStream/newQueryStream');
|
|
5
|
-
|
|
6
|
-
function createReadStreamCoreNative(table, db, filter, strategy, transformer, streamOptions) {
|
|
7
|
-
var alias = table._dbName;
|
|
8
|
-
filter = negotiateRawSqlFilter(filter, table);
|
|
9
|
-
var span = strategyToSpan(table, strategy);
|
|
10
|
-
|
|
11
|
-
if (process.domain)
|
|
12
|
-
process.domain.add(transformer);
|
|
13
|
-
|
|
14
|
-
db.transaction(async () => {
|
|
15
|
-
await start();
|
|
16
|
-
}).then(null, onError);
|
|
17
|
-
|
|
18
|
-
function start() {
|
|
19
|
-
return new Promise((resolve, reject) => {
|
|
20
|
-
var query = newQuery(db, table, filter, span, alias);
|
|
21
|
-
var queryStream = newQueryStream(query, streamOptions);
|
|
22
|
-
queryStream.on('end', resolve);
|
|
23
|
-
queryStream.on('error', onStreamError);
|
|
24
|
-
queryStream.pipe(transformer);
|
|
25
|
-
|
|
26
|
-
function onStreamError(e) {
|
|
27
|
-
reject(e);
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function onError(e) {
|
|
34
|
-
transformer.emit('error', e);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return transformer;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
module.exports = createReadStreamCoreNative;
|