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
|
@@ -6,6 +6,7 @@ const lastInsertedSql = require('./lastInsertedSql');
|
|
|
6
6
|
const limitAndOffset = require('./limitAndOffset');
|
|
7
7
|
const insertSql = require('./insertSql');
|
|
8
8
|
const insert = require('./insert');
|
|
9
|
+
const quote = require('./quote');
|
|
9
10
|
|
|
10
11
|
function newResolveTransaction(domain, pool, { readonly = false } = {}) {
|
|
11
12
|
var rdb = {poolFactory: pool};
|
|
@@ -29,7 +30,7 @@ function newResolveTransaction(domain, pool, { readonly = false } = {}) {
|
|
|
29
30
|
caller.visitSqlite();
|
|
30
31
|
};
|
|
31
32
|
rdb.aggregateCount = 0;
|
|
32
|
-
rdb.quote =
|
|
33
|
+
rdb.quote = quote;
|
|
33
34
|
|
|
34
35
|
if (readonly) {
|
|
35
36
|
rdb.dbClient = {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/* eslint-disable no-prototype-builtins */
|
|
2
|
-
var
|
|
2
|
+
var defaults = require('../../poolDefaults');
|
|
3
3
|
|
|
4
|
-
var defaults = require('./defaults');
|
|
5
4
|
var genericPool = require('../../generic-pool');
|
|
6
5
|
var sqlite = require('sqlite3');
|
|
7
6
|
|
|
@@ -28,20 +27,9 @@ function newGenericPool(connectionString, poolOptions) {
|
|
|
28
27
|
client.close();
|
|
29
28
|
}
|
|
30
29
|
});
|
|
31
|
-
//mixin EventEmitter to pool
|
|
32
|
-
EventEmitter.call(pool);
|
|
33
|
-
for(var key in EventEmitter.prototype) {
|
|
34
|
-
if(EventEmitter.prototype.hasOwnProperty(key)) {
|
|
35
|
-
pool[key] = EventEmitter.prototype[key];
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
30
|
//monkey-patch with connect method
|
|
39
31
|
pool.connect = function(cb) {
|
|
40
|
-
var domain = process.domain;
|
|
41
32
|
pool.acquire(function(err, client) {
|
|
42
|
-
if(domain) {
|
|
43
|
-
cb = domain.bind(cb);
|
|
44
|
-
}
|
|
45
33
|
if(err) return cb(err, null, function() {/*NOOP*/});
|
|
46
34
|
client.poolCount++;
|
|
47
35
|
cb(null, client, function(err) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = (name) => `"${name}"`;
|
package/src/table/aggregate.js
CHANGED
package/src/table/begin.js
CHANGED
|
@@ -2,13 +2,13 @@ let beginCommand = require('./commands/beginCommand');
|
|
|
2
2
|
let executeQuery = require('./executeQueries/executeQuery');
|
|
3
3
|
let setSessionSingleton = require('./setSessionSingleton');
|
|
4
4
|
|
|
5
|
-
function begin(
|
|
6
|
-
setSessionSingleton('changes', []);
|
|
7
|
-
if (
|
|
8
|
-
setSessionSingleton('transactionLess', true);
|
|
5
|
+
function begin(context, transactionLess) {
|
|
6
|
+
setSessionSingleton(context, 'changes', []);
|
|
7
|
+
if (transactionLess) {
|
|
8
|
+
setSessionSingleton(context, 'transactionLess', true);
|
|
9
9
|
return Promise.resolve();
|
|
10
10
|
}
|
|
11
|
-
return executeQuery(beginCommand());
|
|
11
|
+
return executeQuery(context, beginCommand(context));
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
module.exports = begin;
|
|
@@ -2,10 +2,10 @@ var _delete = require('./delete');
|
|
|
2
2
|
var newObject = require('../newObject');
|
|
3
3
|
var newCascadeDeleteStrategy = require('./newCascadeDeleteStrategy');
|
|
4
4
|
|
|
5
|
-
function cascadeDelete(table, filter) {
|
|
5
|
+
function cascadeDelete(context, table, filter) {
|
|
6
6
|
var empty = newObject();
|
|
7
7
|
var strategy = newCascadeDeleteStrategy(empty, table);
|
|
8
|
-
return _delete(table, filter, strategy);
|
|
8
|
+
return _delete(context, table, filter, strategy);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
module.exports = cascadeDelete;
|
|
@@ -3,8 +3,8 @@ var newDecodeCore = require('../newDecodeCore');
|
|
|
3
3
|
function _new(column) {
|
|
4
4
|
var decodeCore = newDecodeCore(column);
|
|
5
5
|
|
|
6
|
-
return function(value) {
|
|
7
|
-
value = decodeCore(value);
|
|
6
|
+
return function(context, value) {
|
|
7
|
+
value = decodeCore(context, value);
|
|
8
8
|
if (value === null)
|
|
9
9
|
return value;
|
|
10
10
|
else
|
|
@@ -3,21 +3,20 @@ var newParam = require('../../query/newParameterized');
|
|
|
3
3
|
|
|
4
4
|
function _new(_column) {
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
function encode(value) {
|
|
6
|
+
function encode(_context, value) {
|
|
8
7
|
value = purify(value);
|
|
9
8
|
if (value === null)
|
|
10
9
|
return newParam('null');
|
|
11
10
|
return newParam('?', [Buffer.from(value, 'base64')]);
|
|
12
11
|
}
|
|
13
|
-
encode.unsafe = function(value) {
|
|
12
|
+
encode.unsafe = function(_context, value) {
|
|
14
13
|
value = purify(value);
|
|
15
14
|
if (value === null)
|
|
16
15
|
return 'null';
|
|
17
16
|
return Buffer.from(value, 'base64');
|
|
18
17
|
};
|
|
19
18
|
|
|
20
|
-
encode.direct = function(value) {
|
|
19
|
+
encode.direct = function(_context, value) {
|
|
21
20
|
return Buffer.from(value, 'base64');
|
|
22
21
|
};
|
|
23
22
|
|
|
@@ -4,34 +4,34 @@ var getSessionSingleton = require('../../getSessionSingleton');
|
|
|
4
4
|
|
|
5
5
|
function _new(column) {
|
|
6
6
|
|
|
7
|
-
function encode(value) {
|
|
7
|
+
function encode(context, value) {
|
|
8
8
|
value = purify(value);
|
|
9
9
|
if (value === null) {
|
|
10
10
|
if (column.dbNull === null)
|
|
11
11
|
return newParam('null');
|
|
12
12
|
return newParam('\'' + column.dbNull + '\'');
|
|
13
13
|
}
|
|
14
|
-
var encodeCore = getSessionSingleton('encodeBoolean');
|
|
14
|
+
var encodeCore = getSessionSingleton(context, 'encodeBoolean');
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
return newParam('?', [encodeCore(value)]);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
encode.unsafe = function(value) {
|
|
20
|
+
encode.unsafe = function(context, value) {
|
|
21
21
|
value = purify(value);
|
|
22
22
|
if (value === null) {
|
|
23
23
|
if (column.dbNull === null)
|
|
24
24
|
return 'null';
|
|
25
25
|
return '\'' + column.dbNull + '\'';
|
|
26
26
|
}
|
|
27
|
-
var encodeCore = getSessionSingleton('encodeBoolean');
|
|
27
|
+
var encodeCore = getSessionSingleton(context, 'encodeBoolean');
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
return encodeCore(value);
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
encode.direct = function(value) {
|
|
34
|
-
var encodeCore = getSessionSingleton('encodeBoolean');
|
|
33
|
+
encode.direct = function(context, value) {
|
|
34
|
+
var encodeCore = getSessionSingleton(context, 'encodeBoolean');
|
|
35
35
|
|
|
36
36
|
return encodeCore(value);
|
|
37
37
|
};
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
var getSessionSingleton = require('../../getSessionSingleton');
|
|
2
2
|
const quote = require('../../quote');
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
function formatOut(column, alias) {
|
|
7
|
-
var formatColumn = getSessionSingleton('formatDateOut');
|
|
4
|
+
function formatOut(context, column, alias) {
|
|
5
|
+
var formatColumn = getSessionSingleton(context, 'formatDateOut');
|
|
8
6
|
if (formatColumn)
|
|
9
7
|
return formatColumn(column, alias);
|
|
10
8
|
else
|
|
11
|
-
return `${alias}.${quote(column._dbName)}`;
|
|
9
|
+
return `${alias}.${quote(context, column._dbName)}`;
|
|
12
10
|
}
|
|
13
11
|
|
|
14
12
|
module.exports = formatOut;
|
|
@@ -4,8 +4,8 @@ var dateToISOString = require('../../../dateToISOString');
|
|
|
4
4
|
function _new(column) {
|
|
5
5
|
var decodeCore = newDecodeCore(column);
|
|
6
6
|
|
|
7
|
-
return function(value) {
|
|
8
|
-
value = decodeCore(value);
|
|
7
|
+
return function(context, value) {
|
|
8
|
+
value = decodeCore(context, value);
|
|
9
9
|
if (value === null)
|
|
10
10
|
return value;
|
|
11
11
|
else if (typeof value === 'string')
|
|
@@ -4,32 +4,32 @@ var getSessionContext = require('../../getSessionContext');
|
|
|
4
4
|
var getSessionSingleton = require('../../getSessionSingleton');
|
|
5
5
|
|
|
6
6
|
function _new(column) {
|
|
7
|
-
var encode = function(value) {
|
|
7
|
+
var encode = function(context, value) {
|
|
8
8
|
value = purify(value);
|
|
9
9
|
if (value == null) {
|
|
10
10
|
if (column.dbNull === null)
|
|
11
11
|
return newPara('null');
|
|
12
12
|
return newPara('\'' + column.dbNull + '\'');
|
|
13
13
|
}
|
|
14
|
-
var
|
|
15
|
-
var encodeCore =
|
|
16
|
-
var formatIn =
|
|
14
|
+
var ctx = getSessionContext(context);
|
|
15
|
+
var encodeCore = ctx.encodeDate || encodeDate;
|
|
16
|
+
var formatIn = ctx.formatDateIn;
|
|
17
17
|
return newPara(formatIn ? formatIn('?') : '?', [encodeCore(value)]);
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
encode.unsafe = function(value) {
|
|
20
|
+
encode.unsafe = function(context, value) {
|
|
21
21
|
value = purify(value);
|
|
22
22
|
if (value == null) {
|
|
23
23
|
if (column.dbNull === null)
|
|
24
24
|
'null';
|
|
25
25
|
return '\'' + column.dbNull + '\'';
|
|
26
26
|
}
|
|
27
|
-
var encodeCore = getSessionSingleton('encodeDate') || encodeDate;
|
|
27
|
+
var encodeCore = getSessionSingleton(context, 'encodeDate') || encodeDate;
|
|
28
28
|
return encodeCore(value);
|
|
29
29
|
};
|
|
30
30
|
|
|
31
|
-
encode.direct = function(value) {
|
|
32
|
-
var encodeCore = getSessionSingleton('encodeDate') || encodeDate;
|
|
31
|
+
encode.direct = function(context, value) {
|
|
32
|
+
var encodeCore = getSessionSingleton(context, 'encodeDate') || encodeDate;
|
|
33
33
|
return encodeCore(value);
|
|
34
34
|
};
|
|
35
35
|
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
var
|
|
1
|
+
var patternWithTime = /(\d{4}-[01]\d-[0-3]\d(T| )[0-2]\d:[0-5]\d:[0-5]\d\.\d+)|(\d{4}-[01]\d-[0-3]\d(T| )[0-2]\d:[0-5]\d:[0-5]\d)|(\d{4}-[01]\d-[0-3]\d(T| )[0-2]\d:[0-5]\d)/;
|
|
2
|
+
var patternDateOnly = /^\d{4}-[01]\d-[0-3]\d$/;
|
|
2
3
|
|
|
3
4
|
function tryParseISO(iso) {
|
|
4
|
-
if (
|
|
5
|
+
if (patternWithTime.test(iso) || patternDateOnly.test(iso)) {
|
|
5
6
|
return iso;
|
|
6
|
-
else
|
|
7
|
-
throw new TypeError(iso +
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
} else {
|
|
8
|
+
throw new TypeError(iso + ' is not a valid Date');
|
|
9
|
+
}
|
|
12
10
|
}
|
|
13
11
|
|
|
14
12
|
module.exports = tryParseISO;
|
package/src/table/column/date.js
CHANGED
|
@@ -8,7 +8,7 @@ function _new(column) {
|
|
|
8
8
|
column.purify = purify;
|
|
9
9
|
column.encode = newEncode(column);
|
|
10
10
|
column.decode = newDecode(column);
|
|
11
|
-
column.formatOut = formatOut.
|
|
11
|
+
column.formatOut = (context, ...rest) => formatOut.apply(null, [context, column, ...rest]);
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
module.exports = _new;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
var newPara = require('../../query/newParameterized');
|
|
2
2
|
var purify = require('../date/purify');
|
|
3
|
-
// var getSessionSingleton = require('../../getSessionSingleton');
|
|
4
3
|
|
|
5
4
|
function _new(column) {
|
|
6
|
-
var encode = function(value) {
|
|
5
|
+
var encode = function(_context, value) {
|
|
7
6
|
value = purify(value);
|
|
8
7
|
if (value == null) {
|
|
9
8
|
if (column.dbNull === null)
|
|
@@ -13,7 +12,7 @@ function _new(column) {
|
|
|
13
12
|
return newPara('?', [encodeDate(value)]);
|
|
14
13
|
};
|
|
15
14
|
|
|
16
|
-
encode.unsafe = function(value) {
|
|
15
|
+
encode.unsafe = function(_context, value) {
|
|
17
16
|
value = purify(value);
|
|
18
17
|
if (value == null) {
|
|
19
18
|
if (column.dbNull === null)
|
|
@@ -23,7 +22,7 @@ function _new(column) {
|
|
|
23
22
|
return encodeDate(value);
|
|
24
23
|
};
|
|
25
24
|
|
|
26
|
-
encode.direct = function(value) {
|
|
25
|
+
encode.direct = function(_context, value) {
|
|
27
26
|
return encodeDate(value);
|
|
28
27
|
};
|
|
29
28
|
|
|
@@ -8,7 +8,7 @@ function _new(column) {
|
|
|
8
8
|
column.purify = purify;
|
|
9
9
|
column.encode = newEncode(column);
|
|
10
10
|
column.decode = newDecode(column);
|
|
11
|
-
column.formatOut = formatOut.
|
|
11
|
+
column.formatOut = (context, ...rest) => formatOut.apply(null, [context, column, ...rest]);
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
module.exports = _new;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
function encodeFilterArg(column, arg) {
|
|
1
|
+
function encodeFilterArg(context, column, arg) {
|
|
2
2
|
if (column.encode.safe)
|
|
3
|
-
return column.encode.safe(arg);
|
|
3
|
+
return column.encode.safe(context, arg);
|
|
4
4
|
else
|
|
5
|
-
return column.encode(arg);
|
|
5
|
+
return column.encode(context, arg);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
module.exports = encodeFilterArg;
|
|
@@ -3,12 +3,12 @@ var nullOperator = ' is ';
|
|
|
3
3
|
var encodeFilterArg = require('./encodeFilterArg');
|
|
4
4
|
var quote = require('../quote');
|
|
5
5
|
|
|
6
|
-
function equal(column,arg,alias) {
|
|
6
|
+
function equal(context, column,arg,alias) {
|
|
7
7
|
var operator = '=';
|
|
8
|
-
var encoded = encodeFilterArg(column, arg);
|
|
8
|
+
var encoded = encodeFilterArg(context, column, arg);
|
|
9
9
|
if (encoded.sql() == 'null')
|
|
10
10
|
operator = nullOperator;
|
|
11
|
-
var firstPart = quote(alias) + '.' + quote(column._dbName) + operator;
|
|
11
|
+
var firstPart = quote(context, alias) + '.' + quote(context, column._dbName) + operator;
|
|
12
12
|
var filter = encoded.prepend(firstPart);
|
|
13
13
|
return newBoolean(filter);
|
|
14
14
|
}
|
|
@@ -2,10 +2,10 @@ var newBoolean = require('./newBoolean');
|
|
|
2
2
|
var encodeFilterArg = require('./encodeFilterArg');
|
|
3
3
|
var quote = require('../quote');
|
|
4
4
|
|
|
5
|
-
function greaterThan(column,arg,alias) {
|
|
5
|
+
function greaterThan(context, column,arg,alias) {
|
|
6
6
|
var operator = '>';
|
|
7
|
-
var encoded = encodeFilterArg(column, arg);
|
|
8
|
-
var firstPart = quote(alias) + '.' + quote(column._dbName) + operator;
|
|
7
|
+
var encoded = encodeFilterArg(context, column, arg);
|
|
8
|
+
var firstPart = quote(context, alias) + '.' + quote(context, column._dbName) + operator;
|
|
9
9
|
var filter = encoded.prepend(firstPart);
|
|
10
10
|
return newBoolean(filter);
|
|
11
11
|
}
|
|
@@ -2,10 +2,10 @@ var newBoolean = require('./newBoolean');
|
|
|
2
2
|
var encodeFilterArg = require('./encodeFilterArg');
|
|
3
3
|
var quote = require('../quote');
|
|
4
4
|
|
|
5
|
-
function greaterThanOrEqual(column,arg,alias) {
|
|
5
|
+
function greaterThanOrEqual(context, column,arg,alias) {
|
|
6
6
|
var operator = '>=';
|
|
7
|
-
var encoded = encodeFilterArg(column, arg);
|
|
8
|
-
var firstPart = quote(alias) + '.' + quote(column._dbName) + operator;
|
|
7
|
+
var encoded = encodeFilterArg(context, column, arg);
|
|
8
|
+
var firstPart = quote(context, alias) + '.' + quote(context, column._dbName) + operator;
|
|
9
9
|
var filter = encoded.prepend(firstPart);
|
|
10
10
|
return newBoolean(filter);
|
|
11
11
|
}
|
|
@@ -3,7 +3,7 @@ var purify = require('./purify');
|
|
|
3
3
|
|
|
4
4
|
function _new(column) {
|
|
5
5
|
|
|
6
|
-
const encode = function(candidate) {
|
|
6
|
+
const encode = function(_context, candidate) {
|
|
7
7
|
var value = purify(candidate);
|
|
8
8
|
if (value == null) {
|
|
9
9
|
if (column.dbNull === null)
|
|
@@ -13,7 +13,7 @@ function _new(column) {
|
|
|
13
13
|
return newPara('\'' + value + '\'');
|
|
14
14
|
};
|
|
15
15
|
|
|
16
|
-
encode.unsafe = function(candidate) {
|
|
16
|
+
encode.unsafe = function(_context, candidate) {
|
|
17
17
|
var value = purify(candidate);
|
|
18
18
|
if (value == null) {
|
|
19
19
|
if (column.dbNull === null)
|
|
@@ -23,7 +23,7 @@ function _new(column) {
|
|
|
23
23
|
return '\'' + value + '\'';
|
|
24
24
|
};
|
|
25
25
|
|
|
26
|
-
encode.direct = function(value) {
|
|
26
|
+
encode.direct = function(_context, value) {
|
|
27
27
|
return value ;
|
|
28
28
|
};
|
|
29
29
|
|
package/src/table/column/in.js
CHANGED
|
@@ -2,18 +2,18 @@ const newParameterized = require('../query/newParameterized');
|
|
|
2
2
|
const newBoolean = require('./newBoolean');
|
|
3
3
|
const quote = require('../quote');
|
|
4
4
|
|
|
5
|
-
function _in(column,values,alias) {
|
|
5
|
+
function _in(context, column,values,alias) {
|
|
6
6
|
let filter;
|
|
7
7
|
if (values.length === 0) {
|
|
8
8
|
filter = newParameterized('1=2');
|
|
9
9
|
return newBoolean(filter);
|
|
10
10
|
}
|
|
11
|
-
const firstPart = `${quote(alias)}.${quote(column._dbName)} in (`;
|
|
11
|
+
const firstPart = `${quote(context, alias)}.${quote(context, column._dbName)} in (`;
|
|
12
12
|
|
|
13
13
|
const encode = column.encode.direct;
|
|
14
14
|
const params = new Array(values.length);
|
|
15
15
|
for (let i = 0; i < values.length; i++) {
|
|
16
|
-
params[i] = encode(values[i]);
|
|
16
|
+
params[i] = encode(context, values[i]);
|
|
17
17
|
}
|
|
18
18
|
const sql = `${firstPart + new Array(values.length).fill('?').join(',')})`;
|
|
19
19
|
return newBoolean(newParameterized(sql, params));
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
var getSessionSingleton = require('../../getSessionSingleton');
|
|
2
2
|
const quote = require('../../quote');
|
|
3
3
|
|
|
4
|
-
function formatOut(column, alias) {
|
|
5
|
-
var formatColumn = getSessionSingleton('formatJSONOut');
|
|
4
|
+
function formatOut(context, column, alias) {
|
|
5
|
+
var formatColumn = getSessionSingleton(context, 'formatJSONOut');
|
|
6
6
|
if (formatColumn)
|
|
7
7
|
return formatColumn(column, alias);
|
|
8
8
|
else
|
|
9
|
-
return `${alias}.${quote(column._dbName)}`;
|
|
9
|
+
return `${alias}.${quote(context, column._dbName)}`;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
module.exports = formatOut;
|
|
@@ -4,12 +4,12 @@ let getSessionContext = require('../../getSessionContext');
|
|
|
4
4
|
function _new(column) {
|
|
5
5
|
let decodeCore = newDecodeCore(column);
|
|
6
6
|
|
|
7
|
-
return function(value) {
|
|
8
|
-
value = decodeCore(value);
|
|
7
|
+
return function(context, value) {
|
|
8
|
+
value = decodeCore(context, value);
|
|
9
9
|
if (value === null)
|
|
10
10
|
return value;
|
|
11
11
|
if (typeof value !== 'object') {
|
|
12
|
-
let decode = getSessionContext().decodeJSON;
|
|
12
|
+
let decode = getSessionContext(context).decodeJSON;
|
|
13
13
|
if (decode)
|
|
14
14
|
return decode(value);
|
|
15
15
|
return value;
|
|
@@ -4,14 +4,14 @@ var getSessionSingleton = require('../../getSessionSingleton');
|
|
|
4
4
|
|
|
5
5
|
function _new(column) {
|
|
6
6
|
|
|
7
|
-
const encode = function(candidate) {
|
|
7
|
+
const encode = function(context, candidate) {
|
|
8
8
|
var value = purify(candidate);
|
|
9
9
|
if (value == null) {
|
|
10
10
|
if(column.dbNull === null)
|
|
11
11
|
return newPara('null');
|
|
12
12
|
return newPara('\'' + column.dbNull + '\'');
|
|
13
13
|
}
|
|
14
|
-
var encodeCore = getSessionSingleton('encodeJSON');
|
|
14
|
+
var encodeCore = getSessionSingleton(context, 'encodeJSON');
|
|
15
15
|
|
|
16
16
|
if (encodeCore) {
|
|
17
17
|
value = encodeCore(value);
|
|
@@ -20,14 +20,14 @@ function _new(column) {
|
|
|
20
20
|
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
encode.unsafe = function(candidate) {
|
|
23
|
+
encode.unsafe = function(context, candidate) {
|
|
24
24
|
var value = purify(candidate);
|
|
25
25
|
if (value == null) {
|
|
26
26
|
if(column.dbNull === null)
|
|
27
27
|
return 'null';
|
|
28
28
|
return '\'' + column.dbNull + '\'';
|
|
29
29
|
}
|
|
30
|
-
var encodeCore = getSessionSingleton('encodeJSON');
|
|
30
|
+
var encodeCore = getSessionSingleton(context, 'encodeJSON');
|
|
31
31
|
|
|
32
32
|
if (encodeCore) {
|
|
33
33
|
value = encodeCore(value);
|
|
@@ -35,8 +35,8 @@ function _new(column) {
|
|
|
35
35
|
return value;
|
|
36
36
|
};
|
|
37
37
|
|
|
38
|
-
encode.direct = function(value) {
|
|
39
|
-
var encodeCore = getSessionSingleton('encodeJSON');
|
|
38
|
+
encode.direct = function(context, value) {
|
|
39
|
+
var encodeCore = getSessionSingleton(context, 'encodeJSON');
|
|
40
40
|
|
|
41
41
|
if (encodeCore) {
|
|
42
42
|
value = encodeCore(value);
|
package/src/table/column/json.js
CHANGED
|
@@ -10,7 +10,8 @@ function _new(column) {
|
|
|
10
10
|
column.purify = purify;
|
|
11
11
|
column.encode = newEncode(column);
|
|
12
12
|
column.decode = newDecode(column);
|
|
13
|
-
column.formatOut = formatOut.
|
|
13
|
+
column.formatOut = (context, ...rest) => formatOut.apply(null, [context, column, ...rest]);
|
|
14
|
+
|
|
14
15
|
column.onChange = onChange;
|
|
15
16
|
column.toDto = toDto;
|
|
16
17
|
}
|
|
@@ -2,10 +2,10 @@ var newBoolean = require('./newBoolean');
|
|
|
2
2
|
var encodeFilterArg = require('./encodeFilterArg');
|
|
3
3
|
var quote = require('../quote');
|
|
4
4
|
|
|
5
|
-
function lessThanOrEqual(column,arg,alias) {
|
|
5
|
+
function lessThanOrEqual(context, column,arg,alias) {
|
|
6
6
|
var operator = '<';
|
|
7
|
-
var encoded = encodeFilterArg(column, arg);
|
|
8
|
-
var firstPart = quote(alias) + '.' + quote(column._dbName) + operator;
|
|
7
|
+
var encoded = encodeFilterArg(context, column, arg);
|
|
8
|
+
var firstPart = quote(context, alias) + '.' + quote(context, column._dbName) + operator;
|
|
9
9
|
var filter = encoded.prepend(firstPart);
|
|
10
10
|
return newBoolean(filter);
|
|
11
11
|
}
|
|
@@ -2,11 +2,11 @@ var newBoolean = require('./newBoolean');
|
|
|
2
2
|
var encodeFilterArg = require('./encodeFilterArg');
|
|
3
3
|
const getSessionSingleton = require('../getSessionSingleton');
|
|
4
4
|
|
|
5
|
-
function lessThanOrEqual(column,arg,alias) {
|
|
6
|
-
const quote = getSessionSingleton('quote');
|
|
5
|
+
function lessThanOrEqual(context, column,arg,alias) {
|
|
6
|
+
const quote = getSessionSingleton(context, 'quote');
|
|
7
7
|
var operator = '<=';
|
|
8
|
-
var encoded = encodeFilterArg(column, arg);
|
|
9
|
-
var firstPart = quote(alias) + '.' + quote(column._dbName) + operator;
|
|
8
|
+
var encoded = encodeFilterArg(context, column, arg);
|
|
9
|
+
var firstPart = quote(context, alias) + '.' + quote(context, column._dbName) + operator;
|
|
10
10
|
var filter = encoded.prepend(firstPart);
|
|
11
11
|
return newBoolean(filter);
|
|
12
12
|
}
|
|
@@ -1,74 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
newParameterized = require('../query/newParameterized');
|
|
3
|
-
return newParameterized.apply(null, arguments);
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
let newBoolean = function() {
|
|
7
|
-
newBoolean = require('./newBoolean');
|
|
8
|
-
return newBoolean.apply(null, arguments);
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
function negotiateRawSqlFilter(filter, optionalTable, emptyArrayMeansFalse) {
|
|
12
|
-
if (Array.isArray(filter) && filter.length === 0) {
|
|
13
|
-
const sql = emptyArrayMeansFalse ? '1 = 2' : '1 = 1';
|
|
14
|
-
return newBoolean(newParameterized(sql));
|
|
15
|
-
}
|
|
16
|
-
else if (Array.isArray(filter)) {
|
|
17
|
-
let curFilter;
|
|
18
|
-
let curObjectFilter;
|
|
19
|
-
for (let i = 0; i < filter.length; i++) {
|
|
20
|
-
let nextFilter = negotiateRawSqlFilter(filter[i], optionalTable);
|
|
21
|
-
if (nextFilter.isObjectFilter)
|
|
22
|
-
curObjectFilter = curObjectFilter ? curObjectFilter.or(nextFilter) : nextFilter;
|
|
23
|
-
else
|
|
24
|
-
curFilter = curFilter ? curFilter.and(nextFilter) : nextFilter;
|
|
25
|
-
}
|
|
26
|
-
if (curFilter && curObjectFilter)
|
|
27
|
-
return curFilter.and(curObjectFilter);
|
|
28
|
-
else if (curFilter)
|
|
29
|
-
return curFilter;
|
|
30
|
-
else
|
|
31
|
-
return curObjectFilter;
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
let params = [];
|
|
35
|
-
if (filter) {
|
|
36
|
-
if (filter.and)
|
|
37
|
-
return filter;
|
|
38
|
-
if (filter.sql) {
|
|
39
|
-
let sql = filter.sql;
|
|
40
|
-
if (typeof filter.sql === 'function') {
|
|
41
|
-
sql = filter.sql();
|
|
42
|
-
}
|
|
43
|
-
params.push(sql, filter.parameters);
|
|
44
|
-
}
|
|
45
|
-
else if (isObjectFilter(filter, optionalTable))
|
|
46
|
-
return newObjectFilter(filter, optionalTable);
|
|
47
|
-
else
|
|
48
|
-
params = [filter];
|
|
49
|
-
} else {
|
|
50
|
-
params = [filter];
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
let parameterized = newParameterized.apply(null, params);
|
|
54
|
-
return newBoolean(parameterized);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function isObjectFilter(object, optionalTable) {
|
|
59
|
-
return optionalTable && object;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function newObjectFilter(object, table) {
|
|
63
|
-
let primaryColumns = table._primaryColumns;
|
|
64
|
-
let filter;
|
|
65
|
-
for (let i = 0; i < primaryColumns.length; i++) {
|
|
66
|
-
let column = primaryColumns[i];
|
|
67
|
-
let colFilter = column.equal(object[column.alias]);
|
|
68
|
-
filter = filter ? filter.and(colFilter) : colFilter ;
|
|
69
|
-
}
|
|
70
|
-
filter.isObjectFilter = true;
|
|
71
|
-
return filter;
|
|
72
|
-
}
|
|
1
|
+
const { negotiateRawSqlFilter } = require('./utils');
|
|
73
2
|
|
|
74
3
|
module.exports = negotiateRawSqlFilter;
|