orange-orm 4.5.1-beta.3 → 4.5.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 (69) hide show
  1. package/README.md +11 -11
  2. package/docs/changelog.md +4 -0
  3. package/package.json +4 -15
  4. package/{dist/index.browser.mjs → src/client/index.mjs} +73 -40
  5. package/src/client/merge.js +9 -0
  6. package/src/{rollup.config.browser.js → client/rollup.config.js} +1 -1
  7. package/src/d1/newTransaction.js +1 -0
  8. package/src/index.js +3 -16
  9. package/src/mssql/newTransaction.js +1 -0
  10. package/src/mssql/pool/newGenericPool.js +2 -9
  11. package/src/mySql/newTransaction.js +1 -0
  12. package/src/mySql/pool/newGenericPool.js +2 -11
  13. package/src/oracle/newTransaction.js +1 -0
  14. package/src/oracle/pool/newGenericPool.js +5 -13
  15. package/src/patchTable.js +4 -1
  16. package/src/pg/newDatabase.js +5 -0
  17. package/src/pg/newTransaction.js +1 -0
  18. package/src/pg/pool/newPgPool.js +3 -15
  19. package/src/sap/newTransaction.js +1 -0
  20. package/src/sqlite/newTransaction.js +1 -0
  21. package/src/{sqlite3 → sqlite}/pool/newGenericPool.js +2 -10
  22. package/src/table/clearCache.js +7 -0
  23. package/src/table/column/binary/newDecode.js +2 -13
  24. package/src/table/column/binary/newEncode.js +6 -16
  25. package/src/table/getSessionCache.js +8 -0
  26. package/src/table/newRowCache.js +4 -4
  27. package/src/table/relation/newManyCache.js +4 -4
  28. package/src/table/resultToRows/newDecodeDbRow.js +1 -1
  29. package/src/table/setSessionCache.js +8 -0
  30. package/src/table/setSessionSingleton.js +1 -1
  31. package/src/tedious/newTransaction.js +1 -0
  32. package/src/tedious/pool/newGenericPool.js +2 -8
  33. package/src/tedious/wrapQuery.js +17 -40
  34. package/dist/index.mjs +0 -20002
  35. package/src/bunPg/newDatabase.js +0 -137
  36. package/src/bunPg/newPool.js +0 -19
  37. package/src/bunPg/pool/end.js +0 -13
  38. package/src/bunPg/pool/newPgPool.js +0 -98
  39. package/src/bunPg/wrapQuery.js +0 -33
  40. package/src/bunSqlite/newPool.js +0 -19
  41. package/src/bunSqlite/newTransaction.js +0 -87
  42. package/src/bunSqlite/pool/newGenericPool.js +0 -55
  43. package/src/bunSqlite/wrapQuery.js +0 -23
  44. package/src/merge-browser.js +0 -9
  45. package/src/merge-server.js +0 -9
  46. package/src/nodeSqlite/decodeBinary.js +0 -9
  47. package/src/nodeSqlite/encodeBinary.js +0 -17
  48. package/src/nodeSqlite/newDatabase.js +0 -116
  49. package/src/nodeSqlite/newPool.js +0 -19
  50. package/src/nodeSqlite/newTransaction.js +0 -87
  51. package/src/nodeSqlite/pool/newGenericPool.js +0 -50
  52. package/src/nodeSqlite/wrapQuery.js +0 -23
  53. package/src/rollup.config.server.js +0 -32
  54. package/src/runtimes.js +0 -24
  55. package/src/sqlite3/deleteFromSql.js +0 -10
  56. package/src/sqlite3/encodeBoolean.js +0 -7
  57. package/src/sqlite3/encodeBuffer.js +0 -7
  58. package/src/sqlite3/insert.js +0 -21
  59. package/src/sqlite3/insertSql.js +0 -67
  60. package/src/sqlite3/lastInsertedSql.js +0 -12
  61. package/src/sqlite3/limitAndOffset.js +0 -18
  62. package/src/sqlite3/newDatabase.js +0 -116
  63. package/src/sqlite3/newTransaction.js +0 -83
  64. package/src/sqlite3/pool/end.js +0 -13
  65. package/src/sqlite3/quote.js +0 -1
  66. package/src/sqlite3/selectForUpdateSql.js +0 -5
  67. /package/src/{bunSqlite → sqlite}/newDatabase.js +0 -0
  68. /package/src/{sqlite3 → sqlite}/newPool.js +0 -0
  69. /package/src/{sqlite3 → sqlite}/wrapQuery.js +0 -0
@@ -1,36 +1,26 @@
1
1
  var purify = require('./purify');
2
2
  var newParam = require('../../query/newParameterized');
3
- var getSessionSingleton = require('../../getSessionSingleton');
4
3
 
5
4
  function _new(_column) {
6
5
 
7
- function encode(context, value) {
6
+ function encode(_context, value) {
8
7
  value = purify(value);
9
8
  if (value === null)
10
9
  return newParam('null');
11
-
12
- var encodeCore = getSessionSingleton(context, 'encodeBinary') || encodeDefault;
13
- const enc = encodeCore(value);
14
- return newParam('?', [enc]);
10
+ return newParam('?', [Buffer.from(value, 'base64')]);
15
11
  }
16
- encode.unsafe = function(context, value) {
12
+ encode.unsafe = function(_context, value) {
17
13
  value = purify(value);
18
14
  if (value === null)
19
15
  return 'null';
20
- var encodeCore = getSessionSingleton(context, 'encodeBinary') || encodeDefault;
21
- return encodeCore(value);
16
+ return Buffer.from(value, 'base64');
22
17
  };
23
18
 
24
- encode.direct = function(context, value) {
25
- var encodeCore = getSessionSingleton(context, 'encodeBinary') || encodeDefault;
26
- return encodeCore(value);
19
+ encode.direct = function(_context, value) {
20
+ return Buffer.from(value, 'base64');
27
21
  };
28
22
 
29
23
  return encode;
30
24
  }
31
25
 
32
- function encodeDefault(base64) {
33
- return Buffer.from(base64, 'base64');
34
- }
35
-
36
26
  module.exports = _new;
@@ -0,0 +1,8 @@
1
+ const getSessionSingleton = require('./getSessionSingleton');
2
+
3
+ function getSessionCache(context, id) {
4
+ const cache = getSessionSingleton(context, 'cache');
5
+ return cache[id];
6
+ }
7
+
8
+ module.exports = getSessionCache;
@@ -1,6 +1,6 @@
1
1
  let newCache = require('./newCache');
2
- let getSessionSingleton = require('./getSessionSingleton');
3
- let setSessionSingleton = require('./setSessionSingleton');
2
+ let getSessionCache = require('./getSessionCache');
3
+ let setSessionCache = require('./setSessionCache');
4
4
 
5
5
  function newRowCache(table) {
6
6
  let id = Symbol();
@@ -38,11 +38,11 @@ function newRowCache(table) {
38
38
 
39
39
 
40
40
  function getCache(context, table, id) {
41
- let cache = getSessionSingleton(context, id);
41
+ let cache = getSessionCache(context, id);
42
42
  if (cache)
43
43
  return cache;
44
44
  cache = _newRowCache(table);
45
- setSessionSingleton(context, id, cache);
45
+ setSessionCache(context, id, cache);
46
46
  return cache;
47
47
  }
48
48
 
@@ -4,8 +4,8 @@ var synchronizeRemoved = require('./manyCache/synchronizeRemoved');
4
4
  var extractParentKey = require('./manyCache/extractParentKey');
5
5
  var newCacheCore = require('./newManyCacheCore');
6
6
  var newId = require('../../newId');
7
- var getSessionSingleton = require('../getSessionSingleton');
8
- var setSessionSingleton = require('../setSessionSingleton');
7
+ var getSessionCache = require('../getSessionCache');
8
+ var setSessionCache = require('../setSessionCache');
9
9
 
10
10
  function newManyCache(joinRelation) {
11
11
  var c = {};
@@ -26,10 +26,10 @@ function newManyCache(joinRelation) {
26
26
 
27
27
  c.getInnerCache = function(context) {
28
28
  const theKey = negotiateKey();
29
- var cache = getSessionSingleton(context, theKey);
29
+ var cache = getSessionCache(context, theKey);
30
30
  if (!cache) {
31
31
  cache = newCacheCore(joinRelation);
32
- setSessionSingleton(context, theKey, cache);
32
+ setSessionCache(context, theKey, cache);
33
33
  fillCache(context);
34
34
  synchronizeAdded(context, c.tryAdd.bind(null, context), joinRelation);
35
35
  synchronizeRemoved(context, c.tryRemove.bind(null, context), joinRelation);
@@ -207,7 +207,7 @@ function newDecodeDbRow(table, dbRow, filteredAliases, shouldValidate, isInsert)
207
207
  for (let i = 0; i < numberOfColumns; i++) {
208
208
  let index = offset + i;
209
209
  let key = keys[index];
210
- if (row[key] !== undefined && !isInsert)
210
+ if (row[key] !== undefined)
211
211
  row[key] = columns[i].decode(context, row[key]);
212
212
  if (shouldValidate && columns[i].validate)
213
213
  columns[i].validate(row[key], row, isInsert);
@@ -0,0 +1,8 @@
1
+ const getSessionSingleton = require('./getSessionSingleton');
2
+
3
+ function setSessionCache(context, id, value) {
4
+ const cache = getSessionSingleton(context, 'cache');
5
+ cache[id] = value;
6
+ }
7
+
8
+ module.exports = setSessionCache;
@@ -1,4 +1,4 @@
1
- var getSessionContext = require('./getSessionContext');
1
+ const getSessionContext = require('./getSessionContext');
2
2
 
3
3
  function setSessionSingleton(context, name, value) {
4
4
  const rdb = getSessionContext(context);
@@ -44,6 +44,7 @@ function newResolveTransaction(domain, pool, { readonly = false } = {}) {
44
44
  };
45
45
  rdb.aggregateCount = 0;
46
46
  rdb.quote = quote;
47
+ rdb.cache = {};
47
48
 
48
49
  if (readonly) {
49
50
  rdb.dbClient = {
@@ -3,7 +3,7 @@
3
3
 
4
4
  var defaults = require('../../poolDefaults');
5
5
  var genericPool = require('../../generic-pool');
6
- var tedious;
6
+ var tedious = require('tedious');
7
7
  var parseConnectionString = require('./parseConnectionString');
8
8
 
9
9
  function newGenericPool(connectionString, poolOptions) {
@@ -17,13 +17,7 @@ function newGenericPool(connectionString, poolOptions) {
17
17
  idleTimeoutMillis: poolOptions.idleTimeout || defaults.poolIdleTimeout,
18
18
  reapIntervalMillis: poolOptions.reapIntervalMillis || defaults.reapIntervalMillis,
19
19
  log: poolOptions.log || defaults.poolLog,
20
- create: async function(cb) {
21
- try {
22
- if (!tedious)
23
- tedious = await import('tedious');
24
- } catch (err) {
25
- return cb(err, null);
26
- }
20
+ create: function(cb) {
27
21
  var client = new tedious.Connection(connectionString);
28
22
  client.on('connect', onConnected);
29
23
  client.connect();
@@ -1,31 +1,12 @@
1
1
  var log = require('../table/log');
2
+ var { Request, TYPES } = require('tedious');
2
3
 
3
4
  function wrapQuery(connection) {
4
- let CachedRequest = null;
5
- let CachedTypes = null;
6
-
7
5
  return runQuery;
8
6
 
9
7
  function runQuery(query, onCompleted) {
10
- if (!CachedRequest || !CachedTypes) {
11
- import('tedious')
12
- .then(({ Request, TYPES }) => {
13
- CachedRequest = Request;
14
- CachedTypes = TYPES;
15
- doQuery(query, onCompleted);
16
- })
17
- .catch(err => onCompleted(extractError(err), []));
18
- }
19
- else {
20
- doQuery(query, onCompleted);
21
- }
22
- }
23
-
24
- function doQuery(query, onCompleted) {
25
8
  const result = [];
26
9
  const sql = replaceParamChar(query.sql(), query.parameters);
27
-
28
- // Transaction statements
29
10
  if (sql.length < 18 && query.parameters.length === 0) {
30
11
  if (sql === 'BEGIN TRANSACTION') {
31
12
  log.emitQuery({ sql, parameters: [] });
@@ -49,45 +30,38 @@ function wrapQuery(connection) {
49
30
  return;
50
31
  }
51
32
  }
52
-
53
33
  let keys;
54
- // Now we can safely create Request using CachedRequest
55
- var request = new CachedRequest(sql, onInnerCompleted);
56
- const params = addParameters(request, query.parameters, CachedTypes);
57
-
34
+ var request = new Request(sql, onInnerCompleted);
35
+ const params = addParameters(request, query.parameters);
58
36
  request.on('row', rows => {
59
37
  const tmp = {};
60
38
  if (!keys) {
61
39
  keys = Object.keys(rows);
62
40
  }
63
- keys.forEach(cols => {
41
+ keys.forEach((cols) => {
64
42
  tmp[cols] = rows[cols].value;
65
43
  });
66
44
  result.push(tmp);
67
45
  });
68
-
69
46
  log.emitQuery({ sql, parameters: params });
70
47
  connection.execSql(request);
71
48
 
72
49
  function onInnerCompleted(err) {
73
50
  if (err) {
74
51
  onCompleted(extractError(err));
75
- } else {
76
- onCompleted(null, result);
77
52
  }
53
+ else
54
+ onCompleted(null, result);
78
55
  }
79
56
  }
80
- }
81
57
 
82
- // same helpers as before
83
-
84
- function extractError(e) {
85
- if (e && e.errors) {
86
- return e.errors[0];
87
- }
88
- else {
89
- return e;
58
+ function extractError(e) {
59
+ if (e && e.errors)
60
+ return e.errors[0];
61
+ else
62
+ return e;
90
63
  }
64
+
91
65
  }
92
66
 
93
67
  function replaceParamChar(sql, params) {
@@ -103,7 +77,7 @@ function replaceParamChar(sql, params) {
103
77
  return sql;
104
78
  }
105
79
 
106
- function addParameters(request, params, TYPES) {
80
+ function addParameters(request, params) {
107
81
  const res = [];
108
82
  for (let i = 0; i < params.length; i++) {
109
83
  const p = [`${i}`, toType(params[i]), params[i]];
@@ -119,6 +93,7 @@ function addParameters(request, params, TYPES) {
119
93
  return TYPES.Int;
120
94
  else if (typeof p === 'number')
121
95
  return TYPES.Money;
96
+ // @ts-ignore
122
97
  else if (p instanceof Date && !isNaN(p))
123
98
  return TYPES.Date;
124
99
  else if (Array.isArray(p))
@@ -129,7 +104,9 @@ function addParameters(request, params, TYPES) {
129
104
  return TYPES.NVarChar;
130
105
  else
131
106
  throw new Error('Unknown data type');
107
+
132
108
  }
109
+
133
110
  }
134
111
 
135
- module.exports = wrapQuery;
112
+ module.exports = wrapQuery;