orange-orm 4.5.0-beta.0 → 4.5.0-beta.1
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 +8 -5
- package/src/client/index.js +3 -2
- package/src/client/index.mjs +253 -137
- package/src/createDomain.js +11 -16
- package/src/d1/newDatabase.js +23 -37
- package/src/d1/newPool.js +6 -6
- package/src/d1/pool/newGenericPool.js +2 -1
- package/src/emitEvent.js +6 -4
- package/src/emptyFilter.js +12 -12
- package/src/getManyDto/newQuery.js +5 -5
- package/src/getManyDto/query/newSingleQuery.js +5 -5
- package/src/getManyDto.js +25 -24
- package/src/hostExpress/cycle.ts +211 -0
- package/src/hostExpress/executePath.js +360 -357
- package/src/hostLocal.js +8 -8
- package/src/index.js +11 -16
- 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 -1
- package/src/mySql/deleteFromSql.js +1 -1
- 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 -3
- package/src/mySql/quote.js +1 -0
- package/src/newImmutable.js +1 -2
- package/src/oracle/deleteFromSql.js +1 -1
- 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 +3 -3
- package/src/oracle/newPool.js +10 -10
- package/src/oracle/newTransaction.js +2 -1
- package/src/oracle/pool/newGenericPool.js +2 -2
- package/src/oracle/quote.js +1 -0
- package/src/oracle/wrapQuery.js +0 -3
- package/src/patchRow.js +2 -2
- package/src/patchTable.js +6 -5
- package/src/pg/deleteFromSql.js +1 -1
- 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 -4
- 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/query.js +2 -2
- package/src/sap/deleteFromSql.js +1 -1
- 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 +1 -1
- 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 +2 -1
- 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 +9 -9
- package/src/table/column/newBoolean.js +9 -9
- 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/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 -5
- package/src/table/commands/newGetLastInsertedCommand.js +4 -4
- package/src/table/commands/newGetLastInsertedCommandCore.js +5 -5
- package/src/table/commands/newInsertCommand.js +0 -1
- package/src/table/commands/newInsertCommandCore.js +3 -3
- 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 +4 -13
- 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 +4 -4
- 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/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 +2 -2
- 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/newSingleQuery.js +7 -7
- package/src/table/query/singleQuery/columnSql/joinLegToColumnSql.js +5 -5
- package/src/table/query/singleQuery/columnSql/newJoinedColumnSql.js +2 -2
- package/src/table/query/singleQuery/columnSql/newShallowColumnSql.js +4 -4
- package/src/table/query/singleQuery/joinSql/joinLegToJoinSql.js +2 -2
- 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 -2
- 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 +6 -6
- package/src/table/query/singleQuery/newWhereSql.js +3 -3
- package/src/table/quote.js +4 -4
- package/src/table/relatedTable/aggregate.js +2 -2
- package/src/table/relatedTable/all.js +5 -5
- package/src/table/relatedTable/any.js +3 -3
- 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 +3 -3
- 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 -3
- 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 +16 -16
- 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 +8 -8
- package/src/table/resultToRows/dbRowsToRows.js +2 -2
- package/src/table/resultToRows/decodeDbRow.js +2 -2
- package/src/table/resultToRows/delete/removeFromCache.js +6 -6
- package/src/table/resultToRows/delete.js +6 -6
- package/src/table/resultToRows/newDecodeDbRow.js +19 -18
- 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 +5 -10
- 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 +58 -51
- package/src/tedious/deleteFromSql.js +1 -1
- 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 +3 -3
- package/src/tedious/getManyDto/query/newSubQueries/manyLegToQuery.js +3 -3
- package/src/tedious/getManyDto/query/newSubQueries/oneLegToQuery.js +4 -4
- package/src/tedious/getManyDto/query/newSubQueries.js +8 -8
- 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 -1
- package/src/tedious/quote.js +1 -0
- 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/tedious/pool/defaults.js +0 -45
|
@@ -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
|
}
|
|
@@ -8,7 +8,7 @@ let newBoolean = function() {
|
|
|
8
8
|
return newBoolean.apply(null, arguments);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
-
function negotiateRawSqlFilter(filter, optionalTable, emptyArrayMeansFalse) {
|
|
11
|
+
function negotiateRawSqlFilter(context, filter, optionalTable, emptyArrayMeansFalse) {
|
|
12
12
|
if (Array.isArray(filter) && filter.length === 0) {
|
|
13
13
|
const sql = emptyArrayMeansFalse ? '1 = 2' : '1 = 1';
|
|
14
14
|
return newBoolean(newParameterized(sql));
|
|
@@ -17,14 +17,14 @@ function negotiateRawSqlFilter(filter, optionalTable, emptyArrayMeansFalse) {
|
|
|
17
17
|
let curFilter;
|
|
18
18
|
let curObjectFilter;
|
|
19
19
|
for (let i = 0; i < filter.length; i++) {
|
|
20
|
-
let nextFilter = negotiateRawSqlFilter(filter[i], optionalTable);
|
|
20
|
+
let nextFilter = negotiateRawSqlFilter(context,filter[i], optionalTable);
|
|
21
21
|
if (nextFilter.isObjectFilter)
|
|
22
|
-
curObjectFilter = curObjectFilter ? curObjectFilter.or(nextFilter) : nextFilter;
|
|
22
|
+
curObjectFilter = curObjectFilter ? curObjectFilter.or(context, nextFilter) : nextFilter;
|
|
23
23
|
else
|
|
24
|
-
curFilter = curFilter ? curFilter.and(nextFilter) : nextFilter;
|
|
24
|
+
curFilter = curFilter ? curFilter.and(context, nextFilter) : nextFilter;
|
|
25
25
|
}
|
|
26
26
|
if (curFilter && curObjectFilter)
|
|
27
|
-
return curFilter.and(curObjectFilter);
|
|
27
|
+
return curFilter.and(context, curObjectFilter);
|
|
28
28
|
else if (curFilter)
|
|
29
29
|
return curFilter;
|
|
30
30
|
else
|
|
@@ -43,7 +43,7 @@ function negotiateRawSqlFilter(filter, optionalTable, emptyArrayMeansFalse) {
|
|
|
43
43
|
params.push(sql, filter.parameters);
|
|
44
44
|
}
|
|
45
45
|
else if (isObjectFilter(filter, optionalTable))
|
|
46
|
-
return newObjectFilter(filter, optionalTable);
|
|
46
|
+
return newObjectFilter(context, filter, optionalTable);
|
|
47
47
|
else
|
|
48
48
|
params = [filter];
|
|
49
49
|
} else {
|
|
@@ -59,13 +59,13 @@ function isObjectFilter(object, optionalTable) {
|
|
|
59
59
|
return optionalTable && object;
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
function newObjectFilter(object, table) {
|
|
62
|
+
function newObjectFilter(context, object, table) {
|
|
63
63
|
let primaryColumns = table._primaryColumns;
|
|
64
64
|
let filter;
|
|
65
65
|
for (let i = 0; i < primaryColumns.length; i++) {
|
|
66
66
|
let column = primaryColumns[i];
|
|
67
|
-
let colFilter = column.equal(object[column.alias]);
|
|
68
|
-
filter = filter ? filter.and(colFilter) : colFilter ;
|
|
67
|
+
let colFilter = column.equal(context, object[column.alias]);
|
|
68
|
+
filter = filter ? filter.and(context, colFilter) : colFilter ;
|
|
69
69
|
}
|
|
70
70
|
filter.isObjectFilter = true;
|
|
71
71
|
return filter;
|
|
@@ -18,27 +18,27 @@ function newBoolean(filter) {
|
|
|
18
18
|
return nextNewBoolean(nextFilter);
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
c.and = function(other) {
|
|
22
|
-
other = negotiateRawSqlFilter(other);
|
|
21
|
+
c.and = function(context, other) {
|
|
22
|
+
other = negotiateRawSqlFilter(context, other);
|
|
23
23
|
var nextFilter = negotiateNextAndFilter(filter, other);
|
|
24
24
|
var next = nextNewBoolean(nextFilter);
|
|
25
|
-
for (var i =
|
|
26
|
-
next = next.and(arguments[i]);
|
|
25
|
+
for (var i = 2; i < arguments.length; i++) {
|
|
26
|
+
next = next.and(context, arguments[i]);
|
|
27
27
|
}
|
|
28
28
|
return next;
|
|
29
29
|
};
|
|
30
30
|
|
|
31
|
-
c.or = function(other) {
|
|
32
|
-
other = negotiateRawSqlFilter(other);
|
|
31
|
+
c.or = function(context, other) {
|
|
32
|
+
other = negotiateRawSqlFilter(context, other);
|
|
33
33
|
var nextFilter = negotiateNextOrFilter(filter, other);
|
|
34
34
|
var next = nextNewBoolean(nextFilter);
|
|
35
|
-
for (var i =
|
|
36
|
-
next = next.or(arguments[i]);
|
|
35
|
+
for (var i = 2; i < arguments.length; i++) {
|
|
36
|
+
next = next.or(context, arguments[i]);
|
|
37
37
|
}
|
|
38
38
|
return next;
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
-
c.not = function() {
|
|
41
|
+
c.not = function(_context) {
|
|
42
42
|
var nextFilter = filter.prepend('NOT (').append(')');
|
|
43
43
|
return nextNewBoolean(nextFilter);
|
|
44
44
|
};
|
|
@@ -19,46 +19,46 @@ module.exports = function(table, name) {
|
|
|
19
19
|
table._columns.push(c);
|
|
20
20
|
table[name] = c;
|
|
21
21
|
|
|
22
|
-
c.equal = function(arg, alias) {
|
|
22
|
+
c.equal = function(context, arg, alias) {
|
|
23
23
|
alias = extractAlias(alias);
|
|
24
|
-
return equal(c, arg, alias);
|
|
24
|
+
return equal(context, c, arg, alias);
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
c.notEqual = function(arg, alias) {
|
|
27
|
+
c.notEqual = function(context, arg, alias) {
|
|
28
28
|
alias = extractAlias(alias);
|
|
29
|
-
return notEqual(c, arg, alias);
|
|
29
|
+
return notEqual(context, c, arg, alias);
|
|
30
30
|
};
|
|
31
31
|
|
|
32
|
-
c.lessThan = function(arg, alias) {
|
|
32
|
+
c.lessThan = function(context, arg, alias) {
|
|
33
33
|
alias = extractAlias(alias);
|
|
34
|
-
return lessThan(c, arg, alias);
|
|
34
|
+
return lessThan(context, c, arg, alias);
|
|
35
35
|
};
|
|
36
36
|
|
|
37
|
-
c.lessThanOrEqual = function(arg, alias) {
|
|
37
|
+
c.lessThanOrEqual = function(context, arg, alias) {
|
|
38
38
|
alias = extractAlias(alias);
|
|
39
|
-
return lessThanOrEqual(c, arg, alias);
|
|
39
|
+
return lessThanOrEqual(context, c, arg, alias);
|
|
40
40
|
};
|
|
41
41
|
|
|
42
|
-
c.greaterThan = function(arg, alias) {
|
|
42
|
+
c.greaterThan = function(context, arg, alias) {
|
|
43
43
|
alias = extractAlias(alias);
|
|
44
|
-
return greaterThan(c, arg, alias);
|
|
44
|
+
return greaterThan(context, c, arg, alias);
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
c.greaterThanOrEqual = function(arg, alias) {
|
|
47
|
+
c.greaterThanOrEqual = function(context, arg, alias) {
|
|
48
48
|
alias = extractAlias(alias);
|
|
49
|
-
return greaterThanOrEqual(c, arg, alias);
|
|
49
|
+
return greaterThanOrEqual(context, c, arg, alias);
|
|
50
50
|
};
|
|
51
51
|
|
|
52
|
-
c.between = function(from, to, alias) {
|
|
52
|
+
c.between = function(context, from, to, alias) {
|
|
53
53
|
alias = extractAlias(alias);
|
|
54
|
-
from = c.greaterThanOrEqual(from, alias);
|
|
55
|
-
to = c.lessThanOrEqual(to, alias);
|
|
54
|
+
from = c.greaterThanOrEqual(context, from, alias);
|
|
55
|
+
to = c.lessThanOrEqual(context, to, alias);
|
|
56
56
|
return from.and(to);
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
-
c.in = function(arg, alias) {
|
|
59
|
+
c.in = function(context, arg, alias) {
|
|
60
60
|
alias = extractAlias(alias);
|
|
61
|
-
return _in(c, arg, alias);
|
|
61
|
+
return _in(context, c, arg, alias);
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
c.eq = c.equal;
|
|
@@ -76,12 +76,12 @@ module.exports = function(table, name) {
|
|
|
76
76
|
c.IN = c.in;
|
|
77
77
|
c.self = self;
|
|
78
78
|
|
|
79
|
-
function self() {
|
|
80
|
-
const tableAlias = quote(table._rootAlias || table._dbName);
|
|
81
|
-
const columnName = quote(c._dbName);
|
|
79
|
+
function self(context) {
|
|
80
|
+
const tableAlias = quote(context,table._rootAlias || table._dbName);
|
|
81
|
+
const columnName = quote(context, c._dbName);
|
|
82
82
|
|
|
83
83
|
return {
|
|
84
|
-
expression: (alias) => `${tableAlias}.${columnName} ${quote(alias)}`,
|
|
84
|
+
expression: (alias) => `${tableAlias}.${columnName} ${quote(context, alias)}`,
|
|
85
85
|
joins: [''],
|
|
86
86
|
column: c,
|
|
87
87
|
groupBy: `${tableAlias}.${columnName}`
|
|
@@ -3,12 +3,12 @@ var encodeFilterArg = require('./encodeFilterArg');
|
|
|
3
3
|
var nullOperator = ' is not ';
|
|
4
4
|
var quote = require('../quote');
|
|
5
5
|
|
|
6
|
-
function notEqual(column,arg,alias) {
|
|
6
|
+
function notEqual(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
|
}
|
|
@@ -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
|
if (typeof(value) !== 'number')
|
|
@@ -3,7 +3,7 @@ var newParam = require('../../query/newParameterized');
|
|
|
3
3
|
|
|
4
4
|
module.exports = function(column) {
|
|
5
5
|
|
|
6
|
-
function encode(value) {
|
|
6
|
+
function encode(_context, value) {
|
|
7
7
|
value = purify(value);
|
|
8
8
|
if (value == null) {
|
|
9
9
|
var dbNull = column.dbNull;
|
|
@@ -12,7 +12,7 @@ module.exports = function(column) {
|
|
|
12
12
|
return newParam('' + value);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
encode.unsafe = function(value) {
|
|
15
|
+
encode.unsafe = function(_context, value) {
|
|
16
16
|
value = purify(value);
|
|
17
17
|
if (value == null) {
|
|
18
18
|
var dbNull = column.dbNull;
|
|
@@ -21,7 +21,7 @@ module.exports = function(column) {
|
|
|
21
21
|
return '' + value;
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
encode.direct = function(value) {
|
|
24
|
+
encode.direct = function(_context, value) {
|
|
25
25
|
return value ;
|
|
26
26
|
};
|
|
27
27
|
|
|
@@ -2,15 +2,15 @@ const quote = require('../../quote');
|
|
|
2
2
|
var newBoolean = require('../newBoolean');
|
|
3
3
|
var nullOperator = ' is ';
|
|
4
4
|
|
|
5
|
-
function endsWithCore(operator, column,arg,alias) {
|
|
6
|
-
alias = quote(alias);
|
|
5
|
+
function endsWithCore(context, operator, column,arg,alias) {
|
|
6
|
+
alias = quote(context, alias);
|
|
7
7
|
operator = ' ' + operator + ' ';
|
|
8
|
-
var encoded = column.encode(arg);
|
|
8
|
+
var encoded = column.encode(context, arg);
|
|
9
9
|
if (encoded.sql() == 'null')
|
|
10
10
|
operator = nullOperator;
|
|
11
11
|
else
|
|
12
|
-
encoded = column.encode('%' + arg + '%');
|
|
13
|
-
var firstPart = alias + '.' + quote(column._dbName) + operator;
|
|
12
|
+
encoded = column.encode(context, '%' + arg + '%');
|
|
13
|
+
var firstPart = alias + '.' + quote(context, column._dbName) + operator;
|
|
14
14
|
var filter = encoded.prepend(firstPart);
|
|
15
15
|
return newBoolean(filter);
|
|
16
16
|
}
|
|
@@ -2,15 +2,15 @@ const quote = require('../../quote');
|
|
|
2
2
|
var newBoolean = require('../newBoolean');
|
|
3
3
|
var nullOperator = ' is ';
|
|
4
4
|
|
|
5
|
-
function endsWithCore(operator, column,arg,alias) {
|
|
5
|
+
function endsWithCore(context, operator, column,arg,alias) {
|
|
6
6
|
alias = quote(alias);
|
|
7
7
|
operator = ' ' + operator + ' ';
|
|
8
|
-
var encoded = column.encode(arg);
|
|
8
|
+
var encoded = column.encode(context, arg);
|
|
9
9
|
if (encoded.sql() == 'null')
|
|
10
10
|
operator = nullOperator;
|
|
11
11
|
else
|
|
12
|
-
encoded = column.encode('%' + arg);
|
|
13
|
-
var firstPart = alias + '.' + quote(column._dbName) + operator;
|
|
12
|
+
encoded = column.encode(context, '%' + arg);
|
|
13
|
+
var firstPart = alias + '.' + quote(context, column._dbName) + operator;
|
|
14
14
|
var filter = encoded.prepend(firstPart);
|
|
15
15
|
return newBoolean(filter);
|
|
16
16
|
}
|
|
@@ -3,12 +3,12 @@ var nullOperator = ' is ';
|
|
|
3
3
|
var encodeFilterArg = require('../encodeFilterArg');
|
|
4
4
|
const quote = require('../../quote');
|
|
5
5
|
|
|
6
|
-
function iEqual(column,arg,alias) {
|
|
6
|
+
function iEqual(context, column,arg,alias) {
|
|
7
7
|
var operator = ' ILIKE ';
|
|
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 = alias + '.' + quote(column._dbName) + operator;
|
|
11
|
+
var firstPart = alias + '.' + quote(context, column._dbName) + operator;
|
|
12
12
|
var filter = encoded.prepend(firstPart);
|
|
13
13
|
return newBoolean(filter);
|
|
14
14
|
}
|