orange-orm 4.4.2 → 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.
Files changed (266) hide show
  1. package/README.md +1 -1
  2. package/package.json +12 -6
  3. package/src/client/clientMap.js +2 -0
  4. package/src/client/createProviders.js +12 -0
  5. package/src/client/index.js +6 -3
  6. package/src/client/index.mjs +8 -3
  7. package/src/client/map.js +1 -0
  8. package/src/createDomain.js +11 -16
  9. package/src/d1/newDatabase.js +119 -0
  10. package/src/d1/newPool.js +19 -0
  11. package/src/d1/newTransaction.js +82 -0
  12. package/src/d1/pool/end.js +13 -0
  13. package/src/d1/pool/newGenericPool.js +53 -0
  14. package/src/d1/wrapQuery.js +22 -0
  15. package/src/d1test.js +35 -0
  16. package/src/emitEvent.js +6 -4
  17. package/src/emptyFilter.js +12 -12
  18. package/src/getManyDto/newQuery.js +5 -5
  19. package/src/getManyDto/query/newSingleQuery.js +5 -5
  20. package/src/getManyDto.js +25 -24
  21. package/src/hostExpress/cycle.ts +211 -0
  22. package/src/hostExpress/executePath.js +360 -357
  23. package/src/hostLocal.js +8 -8
  24. package/src/index.d.ts +2 -0
  25. package/src/index.js +19 -15
  26. package/src/map.d.ts +3 -0
  27. package/src/mssql/newDatabase.js +19 -31
  28. package/src/mssql/newPool.js +2 -2
  29. package/src/mssql/newTransaction.js +5 -4
  30. package/src/mssql/pool/newGenericPool.js +1 -1
  31. package/src/mySql/deleteFromSql.js +1 -1
  32. package/src/mySql/insert.js +5 -5
  33. package/src/mySql/insertSql.js +2 -3
  34. package/src/mySql/lastInsertedSql.js +3 -4
  35. package/src/mySql/newDatabase.js +20 -34
  36. package/src/mySql/newPool.js +10 -10
  37. package/src/mySql/newTransaction.js +3 -3
  38. package/src/mySql/pool/newGenericPool.js +2 -3
  39. package/src/mySql/quote.js +1 -0
  40. package/src/newImmutable.js +1 -2
  41. package/src/oracle/deleteFromSql.js +1 -1
  42. package/src/oracle/formatDateOut.js +1 -1
  43. package/src/oracle/insert.js +6 -6
  44. package/src/oracle/insertSql.js +6 -14
  45. package/src/oracle/lastInsertedSql.js +3 -3
  46. package/src/oracle/mergeSql.js +3 -6
  47. package/src/oracle/newDatabase.js +18 -33
  48. package/src/oracle/newInsertCommandCore.js +3 -3
  49. package/src/oracle/newPool.js +10 -10
  50. package/src/oracle/newTransaction.js +3 -2
  51. package/src/oracle/pool/newGenericPool.js +2 -2
  52. package/src/oracle/quote.js +1 -0
  53. package/src/oracle/wrapQuery.js +0 -3
  54. package/src/patchRow.js +2 -2
  55. package/src/patchTable.js +6 -5
  56. package/src/pg/deleteFromSql.js +1 -1
  57. package/src/pg/formatDateOut.js +1 -2
  58. package/src/pg/insert.js +3 -3
  59. package/src/pg/insertSql.js +2 -7
  60. package/src/pg/lastInsertedSql.js +1 -2
  61. package/src/pg/newDatabase.js +20 -37
  62. package/src/pg/newPool.js +10 -10
  63. package/src/pg/newTransaction.js +3 -2
  64. package/src/pg/pool/newPgPool.js +2 -2
  65. package/src/pg/quote.js +2 -0
  66. package/src/pg/schema.js +2 -2
  67. package/src/{mySql/pool/defaults.js → poolDefaults.js} +0 -2
  68. package/src/query.js +2 -2
  69. package/src/sap/deleteFromSql.js +1 -1
  70. package/src/sap/formatDateOut.js +1 -1
  71. package/src/sap/insert.js +5 -5
  72. package/src/sap/insertSql.js +4 -5
  73. package/src/sap/lastInsertedSql.js +3 -3
  74. package/src/sap/mergeSql.js +1 -2
  75. package/src/sap/newDatabase.js +23 -34
  76. package/src/sap/newPool.js +2 -2
  77. package/src/sap/newTransaction.js +3 -2
  78. package/src/sap/quote.js +1 -0
  79. package/src/sqlite/deleteFromSql.js +1 -1
  80. package/src/sqlite/insert.js +5 -5
  81. package/src/sqlite/insertSql.js +2 -2
  82. package/src/sqlite/lastInsertedSql.js +2 -2
  83. package/src/sqlite/newDatabase.js +16 -32
  84. package/src/sqlite/newPool.js +10 -10
  85. package/src/sqlite/newTransaction.js +3 -2
  86. package/src/sqlite/pool/newGenericPool.js +2 -1
  87. package/src/sqlite/quote.js +1 -0
  88. package/src/table/aggregate.js +1 -1
  89. package/src/table/begin.js +5 -5
  90. package/src/table/cascadeDelete.js +2 -2
  91. package/src/table/column/binary/newDecode.js +2 -2
  92. package/src/table/column/binary/newEncode.js +3 -4
  93. package/src/table/column/boolean/newDecode.js +1 -1
  94. package/src/table/column/boolean/newEncode.js +6 -6
  95. package/src/table/column/date/formatOut.js +3 -5
  96. package/src/table/column/date/newDecode.js +2 -2
  97. package/src/table/column/date/newEncode.js +8 -8
  98. package/src/table/column/date.js +1 -1
  99. package/src/table/column/dateWithTimeZone/newEncode.js +3 -4
  100. package/src/table/column/dateWithTimeZone.js +1 -1
  101. package/src/table/column/encodeFilterArg.js +3 -3
  102. package/src/table/column/equal.js +3 -3
  103. package/src/table/column/extractAlias.js +0 -2
  104. package/src/table/column/greaterThan.js +3 -3
  105. package/src/table/column/greaterThanOrEqual.js +3 -3
  106. package/src/table/column/guid/newDecode.js +1 -1
  107. package/src/table/column/guid/newEncode.js +3 -3
  108. package/src/table/column/in.js +3 -3
  109. package/src/table/column/json/formatOut.js +3 -3
  110. package/src/table/column/json/newDecode.js +3 -3
  111. package/src/table/column/json/newEncode.js +6 -6
  112. package/src/table/column/json.js +2 -1
  113. package/src/table/column/lessThan.js +3 -3
  114. package/src/table/column/lessThanOrEqual.js +4 -4
  115. package/src/table/column/negotiateRawSqlFilter.js +9 -9
  116. package/src/table/column/newBoolean.js +9 -9
  117. package/src/table/column/newColumn.js +21 -21
  118. package/src/table/column/newDecodeCore.js +1 -1
  119. package/src/table/column/notEqual.js +3 -3
  120. package/src/table/column/numeric/newDecode.js +2 -2
  121. package/src/table/column/numeric/newEncode.js +3 -3
  122. package/src/table/column/string/contains.js +2 -1
  123. package/src/table/column/string/containsCore.js +5 -5
  124. package/src/table/column/string/endsWith.js +1 -1
  125. package/src/table/column/string/endsWithCore.js +4 -4
  126. package/src/table/column/string/iContains.js +2 -1
  127. package/src/table/column/string/iEndsWith.js +1 -1
  128. package/src/table/column/string/iEqual.js +3 -3
  129. package/src/table/column/string/iStartsWith.js +1 -1
  130. package/src/table/column/string/newEncode.js +3 -3
  131. package/src/table/column/string/startsWith.js +1 -1
  132. package/src/table/column/string/startsWithCore.js +4 -4
  133. package/src/table/column/string.js +14 -14
  134. package/src/table/commands/beginCommand.js +2 -2
  135. package/src/table/commands/compressChanges.js +2 -2
  136. package/src/table/commands/delete/newSingleCommand.js +5 -5
  137. package/src/table/commands/delete/singleCommand/joinSql.js +12 -12
  138. package/src/table/commands/delete/singleCommand/newSingleCommandCore.js +2 -2
  139. package/src/table/commands/delete/singleCommand/selectSql.js +6 -6
  140. package/src/table/commands/delete/singleCommand/subFilter.js +11 -11
  141. package/src/table/commands/delete/singleCommand/whereSql.js +2 -2
  142. package/src/table/commands/getChangeSet.js +2 -2
  143. package/src/table/commands/insert/getSqlTemplate.js +16 -16
  144. package/src/table/commands/lastCommandMatches.js +2 -2
  145. package/src/table/commands/newDeleteCommand.js +5 -5
  146. package/src/table/commands/newGetLastInsertedCommand.js +4 -4
  147. package/src/table/commands/newGetLastInsertedCommandCore.js +5 -5
  148. package/src/table/commands/newInsertCommand.js +0 -1
  149. package/src/table/commands/newInsertCommandCore.js +3 -3
  150. package/src/table/commands/newRow.js +4 -4
  151. package/src/table/commands/newUpdateCommand.js +4 -4
  152. package/src/table/commands/newUpdateCommandCore.js +4 -4
  153. package/src/table/commands/pushCommand.js +2 -2
  154. package/src/table/commit.js +13 -11
  155. package/src/table/count.js +8 -8
  156. package/src/table/delete.js +4 -4
  157. package/src/table/deleteSessionContext.js +4 -13
  158. package/src/table/executeQueries/executeChanges.js +3 -3
  159. package/src/table/executeQueries/executeQueriesCore.js +2 -2
  160. package/src/table/executeQueries/executeQuery.js +2 -2
  161. package/src/table/executeQueries/resolveExecuteQuery.js +4 -4
  162. package/src/table/executeQueries.js +4 -4
  163. package/src/table/getFromDbById.js +1 -1
  164. package/src/table/getMany.js +7 -7
  165. package/src/table/getManyDto.js +3 -4
  166. package/src/table/getSessionContext.js +4 -4
  167. package/src/table/getSessionSingleton.js +3 -2
  168. package/src/table/groupBy/newQuery.js +4 -4
  169. package/src/table/groupBy.js +9 -9
  170. package/src/table/insert.js +10 -13
  171. package/src/table/joinRelation/getRelatives.js +6 -6
  172. package/src/table/newGetRelated.js +3 -3
  173. package/src/table/newManyRelation.js +9 -9
  174. package/src/table/newOneRelation.js +9 -9
  175. package/src/table/newPrimaryKeyFilter.js +6 -6
  176. package/src/table/newQuery.js +5 -5
  177. package/src/table/newRelatedTable.js +2 -2
  178. package/src/table/newRowCache.js +17 -17
  179. package/src/table/newThrow.js +2 -2
  180. package/src/table/oneRelation/getRelatives.js +5 -5
  181. package/src/table/popChanges.js +3 -3
  182. package/src/table/promise.js +2 -8
  183. package/src/table/query/extractLimit.js +2 -2
  184. package/src/table/query/extractOffset.js +2 -2
  185. package/src/table/query/extractOrderBy.js +2 -2
  186. package/src/table/query/newSingleQuery.js +7 -7
  187. package/src/table/query/singleQuery/columnSql/joinLegToColumnSql.js +5 -5
  188. package/src/table/query/singleQuery/columnSql/newJoinedColumnSql.js +2 -2
  189. package/src/table/query/singleQuery/columnSql/newShallowColumnSql.js +4 -4
  190. package/src/table/query/singleQuery/joinSql/joinLegToJoinSql.js +2 -2
  191. package/src/table/query/singleQuery/joinSql/joinLegToShallowJoinSql.js +2 -2
  192. package/src/table/query/singleQuery/joinSql/newDiscriminatorSql.js +2 -2
  193. package/src/table/query/singleQuery/joinSql/newShallowJoinSql.js +5 -5
  194. package/src/table/query/singleQuery/joinSql/newShallowJoinSqlCore.js +6 -5
  195. package/src/table/query/singleQuery/joinSql/oneLegToJoinSql.js +2 -2
  196. package/src/table/query/singleQuery/joinSql/oneLegToShallowJoinSql.js +2 -2
  197. package/src/table/query/singleQuery/negotiateExclusive.js +2 -2
  198. package/src/table/query/singleQuery/newColumnSql.js +3 -3
  199. package/src/table/query/singleQuery/newDiscriminatorSql.js +2 -2
  200. package/src/table/query/singleQuery/newJoinSql.js +6 -6
  201. package/src/table/query/singleQuery/newWhereSql.js +3 -3
  202. package/src/table/quote.js +4 -4
  203. package/src/table/relatedTable/aggregate.js +2 -2
  204. package/src/table/relatedTable/all.js +5 -5
  205. package/src/table/relatedTable/any.js +3 -3
  206. package/src/table/relatedTable/childColumn.js +12 -12
  207. package/src/table/relatedTable/columnAggregate.js +3 -3
  208. package/src/table/relatedTable/columnAggregateGroup.js +11 -11
  209. package/src/table/relatedTable/joinSql.js +5 -5
  210. package/src/table/relatedTable/joinSqlArray.js +3 -3
  211. package/src/table/relatedTable/none.js +3 -3
  212. package/src/table/relatedTable/relatedColumn.js +13 -13
  213. package/src/table/relatedTable/selectSql.js +2 -2
  214. package/src/table/relatedTable/subFilter.js +4 -4
  215. package/src/table/relatedTable/where.js +3 -3
  216. package/src/table/relatedTable/whereSql.js +2 -2
  217. package/src/table/relation/manyCache/synchronizeAdded.js +2 -2
  218. package/src/table/relation/manyCache/synchronizeChanged.js +3 -3
  219. package/src/table/relation/manyCache/synchronizeRemoved.js +2 -2
  220. package/src/table/relation/newForeignKeyFilter.js +2 -2
  221. package/src/table/relation/newManyCache.js +16 -16
  222. package/src/table/relation/newOneCache.js +6 -6
  223. package/src/table/releaseDbClient.js +4 -4
  224. package/src/table/resultToPromise.js +1 -3
  225. package/src/table/resultToRows/dbRowToRow.js +8 -8
  226. package/src/table/resultToRows/dbRowsToRows.js +2 -2
  227. package/src/table/resultToRows/decodeDbRow.js +2 -2
  228. package/src/table/resultToRows/delete/removeFromCache.js +6 -6
  229. package/src/table/resultToRows/delete.js +6 -6
  230. package/src/table/resultToRows/newDecodeDbRow.js +19 -18
  231. package/src/table/resultToRows/toDto.js +3 -3
  232. package/src/table/resultToRows.js +3 -3
  233. package/src/table/rollback.js +21 -11
  234. package/src/table/rowArray/negotiateNextTick.js +1 -2
  235. package/src/table/setSessionSingleton.js +6 -3
  236. package/src/table/tryGetFirstFromDb.js +4 -4
  237. package/src/table/tryGetFromCacheById.js +3 -3
  238. package/src/table/tryGetFromDbById/extractStrategy.js +2 -2
  239. package/src/table/tryGetFromDbById.js +8 -6
  240. package/src/table/tryGetSessionContext.js +5 -10
  241. package/src/table/tryReleaseDbClient.js +2 -2
  242. package/src/table/updateField.js +4 -4
  243. package/src/table/where.js +2 -2
  244. package/src/table.js +58 -51
  245. package/src/tedious/deleteFromSql.js +1 -1
  246. package/src/tedious/formatDateOut.js +1 -1
  247. package/src/tedious/getManyDto/newQueryCore.js +5 -5
  248. package/src/tedious/getManyDto/query/newSingleQuery.js +5 -5
  249. package/src/tedious/getManyDto/query/newSubQueries/joinLegToQuery.js +3 -3
  250. package/src/tedious/getManyDto/query/newSubQueries/manyLegToQuery.js +3 -3
  251. package/src/tedious/getManyDto/query/newSubQueries/oneLegToQuery.js +4 -4
  252. package/src/tedious/getManyDto/query/newSubQueries.js +8 -8
  253. package/src/tedious/getManyDto/query/singleQuery/newShallowColumnSql.js +5 -6
  254. package/src/tedious/getManyDto.js +6 -6
  255. package/src/tedious/insert.js +3 -3
  256. package/src/tedious/insertSql.js +3 -3
  257. package/src/tedious/newDatabase.js +17 -30
  258. package/src/tedious/newPool.js +10 -10
  259. package/src/tedious/newTransaction.js +4 -5
  260. package/src/tedious/pool/newGenericPool.js +1 -1
  261. package/src/tedious/quote.js +1 -0
  262. package/src/mssql/pool/defaults.js +0 -45
  263. package/src/oracle/pool/defaults.js +0 -45
  264. package/src/pg/pool/defaults.js +0 -45
  265. package/src/sqlite/pool/defaults.js +0 -45
  266. package/src/tedious/pool/defaults.js +0 -45
@@ -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.bind(null, column);
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.bind(null, column);
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
  }
@@ -1,8 +1,6 @@
1
1
  function extract(table, optionalAlias) {
2
-
3
2
  if (optionalAlias)
4
3
  return optionalAlias;
5
- // return table._rootAlias || quote(table._dbName);
6
4
  return table._rootAlias || table._dbName;
7
5
  }
8
6
 
@@ -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
  }
@@ -1,6 +1,6 @@
1
1
  function _new(column) {
2
2
 
3
- return function(value) {
3
+ return function(_context, value) {
4
4
  if (value == column.dbNull)
5
5
  return null;
6
6
  return value.toLowerCase();
@@ -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
 
@@ -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);
@@ -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.bind(null, column);
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 = 1; i < arguments.length; 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 = 1; i < arguments.length; 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}`
@@ -1,6 +1,6 @@
1
1
  function _new(column) {
2
2
 
3
- return function(value) {
3
+ return function(_context, value) {
4
4
  if (value == column.dbNull)
5
5
  return null;
6
6
  return value;
@@ -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
 
@@ -1,3 +1,4 @@
1
1
  var containsCore = require('./containsCore');
2
2
 
3
- module.exports = containsCore.bind(null, 'LIKE');
3
+ module.exports = (context, ...rest) => containsCore.apply(null, [context, 'LIKE', ...rest]);
4
+
@@ -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
  }
@@ -1,3 +1,3 @@
1
1
  var endsWithCore = require('./endsWithCore');
2
2
 
3
- module.exports = endsWithCore.bind(null, 'LIKE');
3
+ module.exports = (context, ...rest) => endsWithCore.apply(null, [context, 'LIKE', ...rest]);
@@ -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
  }
@@ -1,3 +1,4 @@
1
1
  var containsCore = require('./containsCore');
2
2
 
3
- module.exports = containsCore.bind(null, 'ILIKE');
3
+ module.exports = (context, ...rest) => containsCore.apply(null, [context, 'ILIKE', ...rest]);
4
+
@@ -1,3 +1,3 @@
1
1
  var endsWithCore = require('./endsWithCore');
2
2
 
3
- module.exports = endsWithCore.bind(null, 'ILIKE');
3
+ module.exports = (context, ...rest) => endsWithCore.apply(null, [context, 'ILIKE', ...rest]);
@@ -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
  }
@@ -1,3 +1,3 @@
1
1
  var startsWithCore = require('./startsWithCore');
2
2
 
3
- module.exports = startsWithCore.bind(null, 'ILIKE');
3
+ module.exports = (context, ...rest) => startsWithCore.apply(null, [context, 'ILIKE', ...rest]);