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.
Files changed (310) hide show
  1. package/README.md +6 -1
  2. package/docs/changelog.md +4 -0
  3. package/package.json +10 -6
  4. package/src/applyPatch.js +5 -2
  5. package/src/client/index.js +3 -2
  6. package/src/client/index.mjs +13552 -6381
  7. package/src/client/rollup.config.js +24 -4
  8. package/src/client/stringify.js +2 -9
  9. package/src/createDomain.js +7 -28
  10. package/src/d1/newDatabase.js +23 -37
  11. package/src/d1/newPool.js +6 -6
  12. package/src/d1/newTransaction.js +1 -0
  13. package/src/d1/pool/newGenericPool.js +2 -14
  14. package/src/emitEvent.js +6 -4
  15. package/src/emptyFilter.js +12 -12
  16. package/src/format.js +9 -0
  17. package/src/generic-pool.js +274 -313
  18. package/src/getManyDto/newQuery.js +5 -5
  19. package/src/getManyDto/query/newSingleQuery.js +5 -5
  20. package/src/getManyDto.js +73 -41
  21. package/src/hostExpress/cycle.ts +211 -0
  22. package/src/hostExpress/executePath.js +361 -357
  23. package/src/hostExpress.js +2 -7
  24. package/src/hostLocal.js +9 -9
  25. package/src/index.js +13 -17
  26. package/src/indexBrowser.js +39 -0
  27. package/src/mssql/newDatabase.js +19 -31
  28. package/src/mssql/newPool.js +2 -2
  29. package/src/mssql/newTransaction.js +4 -3
  30. package/src/mssql/pool/newGenericPool.js +1 -13
  31. package/src/mySql/deleteFromSql.js +5 -5
  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 +2 -2
  38. package/src/mySql/pool/newGenericPool.js +2 -15
  39. package/src/mySql/quote.js +1 -0
  40. package/src/newId.js +2 -1
  41. package/src/newImmutable.js +1 -2
  42. package/src/oracle/deleteFromSql.js +5 -5
  43. package/src/oracle/formatDateOut.js +1 -1
  44. package/src/oracle/insert.js +6 -6
  45. package/src/oracle/insertSql.js +6 -14
  46. package/src/oracle/lastInsertedSql.js +3 -3
  47. package/src/oracle/mergeSql.js +3 -6
  48. package/src/oracle/newDatabase.js +18 -33
  49. package/src/oracle/newInsertCommandCore.js +5 -5
  50. package/src/oracle/newPool.js +10 -10
  51. package/src/oracle/newTransaction.js +2 -1
  52. package/src/oracle/pool/newGenericPool.js +2 -14
  53. package/src/oracle/quote.js +1 -0
  54. package/src/oracle/wrapQuery.js +0 -3
  55. package/src/package.json +5 -0
  56. package/src/patchRow.js +2 -2
  57. package/src/patchTable.js +6 -5
  58. package/src/pg/deleteFromSql.js +5 -5
  59. package/src/pg/formatDateOut.js +1 -2
  60. package/src/pg/insert.js +3 -3
  61. package/src/pg/insertSql.js +2 -7
  62. package/src/pg/lastInsertedSql.js +1 -2
  63. package/src/pg/newDatabase.js +20 -37
  64. package/src/pg/newPool.js +10 -10
  65. package/src/pg/newTransaction.js +2 -1
  66. package/src/pg/pool/newPgPool.js +23 -16
  67. package/src/pg/pool/parseSearchPathParam.js +10 -0
  68. package/src/pg/quote.js +2 -0
  69. package/src/pg/schema.js +2 -2
  70. package/src/{mySql/pool/defaults.js → poolDefaults.js} +0 -2
  71. package/src/promisify.js +24 -0
  72. package/src/query.js +2 -2
  73. package/src/sap/deleteFromSql.js +3 -3
  74. package/src/sap/formatDateOut.js +1 -1
  75. package/src/sap/insert.js +5 -5
  76. package/src/sap/insertSql.js +4 -5
  77. package/src/sap/lastInsertedSql.js +3 -3
  78. package/src/sap/mergeSql.js +1 -2
  79. package/src/sap/newDatabase.js +23 -34
  80. package/src/sap/newPool.js +2 -2
  81. package/src/sap/newTransaction.js +2 -1
  82. package/src/sap/quote.js +1 -0
  83. package/src/sqlite/deleteFromSql.js +5 -5
  84. package/src/sqlite/insert.js +5 -5
  85. package/src/sqlite/insertSql.js +2 -2
  86. package/src/sqlite/lastInsertedSql.js +2 -2
  87. package/src/sqlite/newDatabase.js +16 -32
  88. package/src/sqlite/newPool.js +10 -10
  89. package/src/sqlite/newTransaction.js +2 -1
  90. package/src/sqlite/pool/newGenericPool.js +1 -13
  91. package/src/sqlite/quote.js +1 -0
  92. package/src/table/aggregate.js +1 -1
  93. package/src/table/begin.js +5 -5
  94. package/src/table/cascadeDelete.js +2 -2
  95. package/src/table/column/binary/newDecode.js +2 -2
  96. package/src/table/column/binary/newEncode.js +3 -4
  97. package/src/table/column/boolean/newDecode.js +1 -1
  98. package/src/table/column/boolean/newEncode.js +6 -6
  99. package/src/table/column/date/formatOut.js +3 -5
  100. package/src/table/column/date/newDecode.js +2 -2
  101. package/src/table/column/date/newEncode.js +8 -8
  102. package/src/table/column/date/tryParseISO.js +6 -8
  103. package/src/table/column/date.js +1 -1
  104. package/src/table/column/dateWithTimeZone/newEncode.js +3 -4
  105. package/src/table/column/dateWithTimeZone.js +1 -1
  106. package/src/table/column/encodeFilterArg.js +3 -3
  107. package/src/table/column/equal.js +3 -3
  108. package/src/table/column/extractAlias.js +0 -2
  109. package/src/table/column/greaterThan.js +3 -3
  110. package/src/table/column/greaterThanOrEqual.js +3 -3
  111. package/src/table/column/guid/newDecode.js +1 -1
  112. package/src/table/column/guid/newEncode.js +3 -3
  113. package/src/table/column/in.js +3 -3
  114. package/src/table/column/json/formatOut.js +3 -3
  115. package/src/table/column/json/newDecode.js +3 -3
  116. package/src/table/column/json/newEncode.js +6 -6
  117. package/src/table/column/json.js +2 -1
  118. package/src/table/column/lessThan.js +3 -3
  119. package/src/table/column/lessThanOrEqual.js +4 -4
  120. package/src/table/column/negotiateRawSqlFilter.js +1 -72
  121. package/src/table/column/newBoolean.js +2 -53
  122. package/src/table/column/newColumn.js +21 -21
  123. package/src/table/column/newDecodeCore.js +1 -1
  124. package/src/table/column/notEqual.js +3 -3
  125. package/src/table/column/numeric/newDecode.js +2 -2
  126. package/src/table/column/numeric/newEncode.js +3 -3
  127. package/src/table/column/string/contains.js +2 -1
  128. package/src/table/column/string/containsCore.js +5 -5
  129. package/src/table/column/string/endsWith.js +1 -1
  130. package/src/table/column/string/endsWithCore.js +4 -4
  131. package/src/table/column/string/iContains.js +2 -1
  132. package/src/table/column/string/iEndsWith.js +1 -1
  133. package/src/table/column/string/iEqual.js +3 -3
  134. package/src/table/column/string/iStartsWith.js +1 -1
  135. package/src/table/column/string/newEncode.js +3 -3
  136. package/src/table/column/string/startsWith.js +1 -1
  137. package/src/table/column/string/startsWithCore.js +4 -4
  138. package/src/table/column/string.js +14 -14
  139. package/src/table/column/utils.js +113 -0
  140. package/src/table/column.js +6 -2
  141. package/src/table/commands/beginCommand.js +2 -2
  142. package/src/table/commands/compressChanges.js +2 -2
  143. package/src/table/commands/delete/newSingleCommand.js +5 -5
  144. package/src/table/commands/delete/singleCommand/joinSql.js +12 -12
  145. package/src/table/commands/delete/singleCommand/newSingleCommandCore.js +2 -2
  146. package/src/table/commands/delete/singleCommand/selectSql.js +6 -6
  147. package/src/table/commands/delete/singleCommand/subFilter.js +11 -11
  148. package/src/table/commands/delete/singleCommand/whereSql.js +2 -2
  149. package/src/table/commands/getChangeSet.js +2 -2
  150. package/src/table/commands/insert/getSqlTemplate.js +16 -16
  151. package/src/table/commands/lastCommandMatches.js +2 -2
  152. package/src/table/commands/newDeleteCommand.js +5 -10
  153. package/src/table/commands/newGetLastInsertedCommand.js +4 -4
  154. package/src/table/commands/newGetLastInsertedCommandCore.js +5 -5
  155. package/src/table/commands/newInsertCommand.js +5 -3
  156. package/src/table/commands/newInsertCommandCore.js +12 -12
  157. package/src/table/commands/newRow.js +4 -4
  158. package/src/table/commands/newUpdateCommand.js +4 -4
  159. package/src/table/commands/newUpdateCommandCore.js +4 -4
  160. package/src/table/commands/pushCommand.js +2 -2
  161. package/src/table/commit.js +13 -11
  162. package/src/table/count.js +8 -8
  163. package/src/table/delete.js +4 -4
  164. package/src/table/deleteSessionContext.js +2 -14
  165. package/src/table/executeQueries/executeChanges.js +3 -3
  166. package/src/table/executeQueries/executeQueriesCore.js +2 -2
  167. package/src/table/executeQueries/executeQuery.js +2 -2
  168. package/src/table/executeQueries/resolveExecuteQuery.js +3 -10
  169. package/src/table/executeQueries.js +4 -4
  170. package/src/table/getFromDbById.js +1 -1
  171. package/src/table/getMany.js +7 -7
  172. package/src/table/getManyDto.js +3 -4
  173. package/src/table/getSessionContext.js +4 -4
  174. package/src/table/getSessionSingleton.js +3 -2
  175. package/src/table/groupBy/newQuery.js +4 -4
  176. package/src/table/groupBy.js +9 -9
  177. package/src/table/insert.js +10 -13
  178. package/src/table/joinRelation/getRelatives.js +6 -6
  179. package/src/table/newCascadeDeleteStrategy.js +1 -7
  180. package/src/table/newGetRelated.js +3 -3
  181. package/src/table/newManyRelation.js +9 -9
  182. package/src/table/newOneRelation.js +9 -9
  183. package/src/table/newPrimaryKeyFilter.js +6 -6
  184. package/src/table/newQuery.js +5 -5
  185. package/src/table/newRelatedTable.js +6 -12
  186. package/src/table/newRowCache.js +17 -17
  187. package/src/table/newThrow.js +2 -2
  188. package/src/table/oneRelation/getRelatives.js +5 -5
  189. package/src/table/popChanges.js +3 -3
  190. package/src/table/promise.js +2 -8
  191. package/src/table/query/extractLimit.js +2 -2
  192. package/src/table/query/extractOffset.js +2 -2
  193. package/src/table/query/extractOrderBy.js +2 -2
  194. package/src/table/query/newParameterized.js +8 -11
  195. package/src/table/query/newSingleQuery.js +7 -7
  196. package/src/table/query/singleQuery/columnSql/joinLegToColumnSql.js +2 -15
  197. package/src/table/query/singleQuery/columnSql/newJoinedColumnSql.js +2 -25
  198. package/src/table/query/singleQuery/columnSql/newShallowColumnSql.js +4 -4
  199. package/src/table/query/singleQuery/columnSql/sharedJoinUtils.js +37 -0
  200. package/src/table/query/singleQuery/joinSql/joinLegToJoinSql.js +2 -7
  201. package/src/table/query/singleQuery/joinSql/joinLegToShallowJoinSql.js +2 -2
  202. package/src/table/query/singleQuery/joinSql/newDiscriminatorSql.js +2 -2
  203. package/src/table/query/singleQuery/joinSql/newShallowJoinSql.js +5 -5
  204. package/src/table/query/singleQuery/joinSql/newShallowJoinSqlCore.js +6 -5
  205. package/src/table/query/singleQuery/joinSql/oneLegToJoinSql.js +2 -8
  206. package/src/table/query/singleQuery/joinSql/oneLegToShallowJoinSql.js +2 -2
  207. package/src/table/query/singleQuery/negotiateExclusive.js +2 -2
  208. package/src/table/query/singleQuery/newColumnSql.js +3 -3
  209. package/src/table/query/singleQuery/newDiscriminatorSql.js +2 -2
  210. package/src/table/query/singleQuery/newJoinSql.js +7 -7
  211. package/src/table/query/singleQuery/newWhereSql.js +3 -3
  212. package/src/table/quote.js +4 -4
  213. package/src/table/relatedTable/aggregate.js +2 -8
  214. package/src/table/relatedTable/all.js +6 -12
  215. package/src/table/relatedTable/any.js +4 -11
  216. package/src/table/relatedTable/childColumn.js +12 -12
  217. package/src/table/relatedTable/columnAggregate.js +3 -3
  218. package/src/table/relatedTable/columnAggregateGroup.js +11 -11
  219. package/src/table/relatedTable/joinSql.js +5 -5
  220. package/src/table/relatedTable/joinSqlArray.js +3 -3
  221. package/src/table/relatedTable/none.js +4 -10
  222. package/src/table/relatedTable/relatedColumn.js +13 -13
  223. package/src/table/relatedTable/selectSql.js +2 -2
  224. package/src/table/relatedTable/subFilter.js +4 -4
  225. package/src/table/relatedTable/where.js +3 -9
  226. package/src/table/relatedTable/whereSql.js +2 -2
  227. package/src/table/relation/manyCache/synchronizeAdded.js +2 -2
  228. package/src/table/relation/manyCache/synchronizeChanged.js +3 -3
  229. package/src/table/relation/manyCache/synchronizeRemoved.js +2 -2
  230. package/src/table/relation/newForeignKeyFilter.js +2 -2
  231. package/src/table/relation/newManyCache.js +25 -17
  232. package/src/table/relation/newOneCache.js +6 -6
  233. package/src/table/releaseDbClient.js +4 -4
  234. package/src/table/resultToPromise.js +1 -3
  235. package/src/table/resultToRows/dbRowToRow.js +6 -13
  236. package/src/table/resultToRows/dbRowsToRows.js +2 -2
  237. package/src/table/resultToRows/decodeDbRow.js +2 -2
  238. package/src/table/resultToRows/delete/removeFromCache.js +4 -11
  239. package/src/table/resultToRows/delete.js +6 -6
  240. package/src/table/resultToRows/newDecodeDbRow.js +19 -25
  241. package/src/table/resultToRows/toDto/extractStrategy.js +1 -7
  242. package/src/table/resultToRows/toDto.js +3 -3
  243. package/src/table/resultToRows.js +3 -3
  244. package/src/table/rollback.js +21 -11
  245. package/src/table/rowArray/negotiateNextTick.js +1 -2
  246. package/src/table/setSessionSingleton.js +6 -3
  247. package/src/table/tryGetFirstFromDb.js +4 -4
  248. package/src/table/tryGetFromCacheById.js +3 -3
  249. package/src/table/tryGetFromDbById/extractStrategy.js +2 -2
  250. package/src/table/tryGetFromDbById.js +8 -6
  251. package/src/table/tryGetSessionContext.js +3 -13
  252. package/src/table/tryReleaseDbClient.js +2 -2
  253. package/src/table/updateField.js +4 -4
  254. package/src/table/where.js +2 -2
  255. package/src/table.js +56 -53
  256. package/src/tedious/deleteFromSql.js +5 -5
  257. package/src/tedious/formatDateOut.js +1 -1
  258. package/src/tedious/getManyDto/newQueryCore.js +5 -5
  259. package/src/tedious/getManyDto/query/newSingleQuery.js +5 -5
  260. package/src/tedious/getManyDto/query/newSubQueries/joinLegToQuery.js +4 -5
  261. package/src/tedious/getManyDto/query/newSubQueries/manyLegToQuery.js +4 -5
  262. package/src/tedious/getManyDto/query/newSubQueries/oneLegToQuery.js +13 -14
  263. package/src/tedious/getManyDto/query/newSubQueries.js +9 -26
  264. package/src/tedious/getManyDto/query/singleQuery/newShallowColumnSql.js +5 -6
  265. package/src/tedious/getManyDto.js +6 -6
  266. package/src/tedious/insert.js +3 -3
  267. package/src/tedious/insertSql.js +3 -3
  268. package/src/tedious/newDatabase.js +17 -30
  269. package/src/tedious/newPool.js +10 -10
  270. package/src/tedious/newTransaction.js +3 -4
  271. package/src/tedious/pool/newGenericPool.js +1 -13
  272. package/src/tedious/quote.js +1 -0
  273. package/src/validateDeleteConflict.js +4 -2
  274. package/src/createDomain/negotiateForwardProperty.js +0 -23
  275. package/src/d1/pool/defaults.js +0 -45
  276. package/src/mssql/pool/defaults.js +0 -45
  277. package/src/oracle/pool/defaults.js +0 -45
  278. package/src/pg/pool/defaults.js +0 -45
  279. package/src/sqlite/pool/defaults.js +0 -45
  280. package/src/table/createJSONReadStream.js +0 -7
  281. package/src/table/createJSONReadStreamDefault.js +0 -33
  282. package/src/table/createJSONReadStreamNative.js +0 -31
  283. package/src/table/createReadStream.js +0 -24
  284. package/src/table/createReadStreamCoreNative.js +0 -40
  285. package/src/table/createReadStreamDefault.js +0 -102
  286. package/src/table/createReadStreamNative.js +0 -17
  287. package/src/table/readStream/extractLimit.js +0 -7
  288. package/src/table/readStream/extractOrderBy.js +0 -59
  289. package/src/table/readStream/mySql/newQuery.js +0 -16
  290. package/src/table/readStream/mySql/query/newSingleQuery.js +0 -21
  291. package/src/table/readStream/mySql/query/newSubQueries/joinLegToQuery.js +0 -20
  292. package/src/table/readStream/mySql/query/newSubQueries/manyLegToQuery.js +0 -22
  293. package/src/table/readStream/mySql/query/newSubQueries/newQueryCore.js +0 -9
  294. package/src/table/readStream/mySql/query/newSubQueries/newSingleQueryCore.js +0 -18
  295. package/src/table/readStream/mySql/query/newSubQueries/oneLegToQuery.js +0 -22
  296. package/src/table/readStream/mySql/query/newSubQueries.js +0 -47
  297. package/src/table/readStream/mySql/query/singleQuery/newShallowColumnSql.js +0 -18
  298. package/src/table/readStream/newQuery.js +0 -32
  299. package/src/table/readStream/newQueryStream.js +0 -8
  300. package/src/table/readStream/pg/newQuery.js +0 -8
  301. package/src/table/readStream/pg/newQueryCore.js +0 -17
  302. package/src/table/readStream/pg/query/newSingleQuery.js +0 -19
  303. package/src/table/readStream/pg/query/newSubQueries/joinLegToQuery.js +0 -19
  304. package/src/table/readStream/pg/query/newSubQueries/manyLegToQuery.js +0 -22
  305. package/src/table/readStream/pg/query/newSubQueries/oneLegToQuery.js +0 -19
  306. package/src/table/readStream/pg/query/newSubQueries.js +0 -47
  307. package/src/table/readStream/pg/query/singleQuery/newShallowColumnSql.js +0 -20
  308. package/src/table/readStreamDefault/createBatchFilter.js +0 -39
  309. package/src/tedious/pool/defaults.js +0 -45
  310. package/src/useHook.js +0 -9
@@ -1,12 +1,32 @@
1
+ import json from '@rollup/plugin-json';
1
2
  import commonjs from '@rollup/plugin-commonjs';
2
3
  import nodeResolve from '@rollup/plugin-node-resolve';
3
4
 
4
5
  export default {
5
- input: './src/client/index.js',
6
+ input: './src/indexBrowser.js',
6
7
  output: {
7
8
  file: './src/client/index.mjs',
8
- format: 'esm'
9
+ format: 'esm',
10
+ interop: 'auto'
11
+ },
12
+
13
+ // plugins: [json(), commonjs()],
14
+ plugins: [json(), nodeResolve({ preferBuiltins: false }), commonjs({
15
+ transformMixedEsModules: true,
16
+ esmExternals: true, // Add this
17
+ requireReturnsDefault: 'preferred' // Change this
18
+ })],
19
+ external(id) {
20
+ // If it's in node_modules, mark as external
21
+ return id.includes('node_modules');
22
+ },
23
+ onwarn: (warning, warn) => {
24
+ if (warning.code === 'CIRCULAR_DEPENDENCY') {
25
+ // Log the full circular dependency warning message
26
+ console.warn(`[CIRCULAR DEPENDENCY] ${warning.message}`);
27
+ } else {
28
+ // For all other warnings, use Rollup's default handler.
29
+ warn(warning);
30
+ }
9
31
  },
10
- plugins: [commonjs(), nodeResolve({browser: true})],
11
- external: ['vue']
12
32
  };
@@ -1,22 +1,15 @@
1
1
  let dateToISOString = require('../dateToISOString');
2
- const isNode = (typeof window === 'undefined');
3
2
 
4
3
  function stringify(value) {
5
4
  return JSON.stringify(value, replacer);
6
5
  }
7
6
 
8
7
  function replacer(key, value) {
9
- if (isNode && isNodeBuffer(value))
10
- return value.toString('base64');
11
- // @ts-ignore
12
- else if (value instanceof Date && !isNaN(value))
8
+ // // @ts-ignore
9
+ if (value instanceof Date && !isNaN(value))
13
10
  return dateToISOString(value);
14
11
  else
15
12
  return value;
16
13
  }
17
14
 
18
- function isNodeBuffer(object) {
19
- return Buffer.isBuffer(object);
20
- }
21
-
22
15
  module.exports = stringify;
@@ -1,31 +1,10 @@
1
- let useHook = require('./useHook');
2
- let cls;
3
- var Domain = require('domain');
4
- var negotiateForwardProperty = require('./createDomain/negotiateForwardProperty');
5
-
6
1
  function createDomain() {
7
- var oldDomain = Domain.active || {};
8
- var domain = Domain.create();
9
- var ownProperties = Object.getOwnPropertyNames(oldDomain);
10
- ownProperties.forEach(function(propName) {
11
- negotiateForwardProperty(oldDomain, domain, propName);
12
- });
13
- return domain;
14
- }
15
-
16
- function createOnContext() {
17
- if (!cls)
18
- cls = require('node-cls');
19
- return cls.create('rdb');
20
- }
21
-
22
-
23
- function _createDomain() {
24
- if (useHook())
25
- return createOnContext();
26
- else
27
- return createDomain();
28
-
2
+ let c = {};
3
+ function run(fn) {
4
+ return fn(c);
5
+ }
6
+ c.run = run;
7
+ return c;
29
8
  }
30
9
 
31
- module.exports = _createDomain;
10
+ module.exports = createDomain;
@@ -4,10 +4,6 @@ let _begin = require('../table/begin');
4
4
  let commit = require('../table/commit');
5
5
  let rollback = require('../table/rollback');
6
6
  let newPool = require('./newPool');
7
- let useHook = require('../useHook');
8
- let promise = require('promise/domains');
9
- let versionArray = process.version.replace('v', '').split('.');
10
- let major = parseInt(versionArray[0]);
11
7
  let express = require('../hostExpress');
12
8
  let hostLocal = require('../hostLocal');
13
9
  let doQuery = require('../query');
@@ -34,85 +30,75 @@ function newDatabase(d1Database, poolOptions) {
34
30
 
35
31
  if (fn)
36
32
  return domain.run(runInTransaction);
37
- else if ((major >= 12) && useHook()) {
38
- domain.exitContext = true;
39
- return domain.start().then(run);
40
- }
41
33
  else
42
34
  return domain.run(run);
43
35
 
44
- function begin() {
45
- const transactionLess = true;
46
- return _begin(transactionLess);
47
- }
48
-
49
36
  async function runInTransaction() {
50
37
  let result;
51
38
  let transaction = newTransaction(domain, pool, options);
52
39
  await new Promise(transaction)
53
40
  .then(begin)
54
- .then(fn)
41
+ .then(() => fn(domain))
55
42
  .then((res) => result = res)
56
- .then(c.commit)
57
- .then(null, c.rollback);
43
+ .then(() => c.commit(domain))
44
+ .then(null, (e) => c.rollback(domain,e));
58
45
  return result;
59
46
  }
60
47
 
48
+ function begin() {
49
+ const transactionLess = true;
50
+ return _begin(domain, transactionLess);
51
+ }
52
+
61
53
  function run() {
62
54
  let p;
63
55
  let transaction = newTransaction(domain, pool, options);
64
- if (useHook())
65
- p = new Promise(transaction);
66
- else
67
- p = new promise(transaction);
56
+ p = new Promise(transaction);
68
57
 
69
58
  return p.then(begin);
70
59
  }
71
60
 
72
61
  };
73
62
 
74
- c.createTransaction = function() {
63
+ c.createTransaction = function(options) {
75
64
  let domain = createDomain();
76
- let transaction = newTransaction(domain, pool);
77
- let p = domain.run(() => new Promise(transaction).then(_begin));
65
+ let transaction = newTransaction(domain, pool, options);
66
+ let p = domain.run(() => new Promise(transaction).then(begin));
78
67
 
79
68
  function run(fn) {
80
69
  return p.then(domain.run.bind(domain, fn));
81
70
  }
82
- return run;
83
- };
84
-
85
- c.bindTransaction = function() {
86
- // @ts-ignore
87
- var domain = process.domain;
88
- let p = domain.run(() => true);
89
71
 
90
- function run(fn) {
91
- return p.then(domain.run.bind(domain, fn));
72
+ function begin() {
73
+ return _begin(domain, options);
92
74
  }
75
+
76
+ run.rollback = rollback.bind(null, domain);
77
+ run.commit = commit.bind(null, domain);
78
+
93
79
  return run;
80
+
94
81
  };
95
82
 
96
83
  c.query = function(query) {
97
84
  let domain = createDomain();
98
85
  let transaction = newTransaction(domain, pool);
99
86
  let p = domain.run(() => new Promise(transaction)
100
- .then(() => setSessionSingleton('changes', []))
101
- .then(() => doQuery(query).then(onResult, onError)));
87
+ .then(() => setSessionSingleton(domain, 'changes', []))
88
+ .then(() => doQuery(domain, query).then(onResult, onError)));
102
89
  return p;
103
90
 
104
91
  function onResult(result) {
105
- releaseDbClient();
92
+ releaseDbClient(domain);
106
93
  return result;
107
94
  }
108
95
 
109
96
  function onError(e) {
110
- releaseDbClient();
97
+ releaseDbClient(domain);
111
98
  throw e;
112
99
  }
113
100
  };
114
101
 
115
-
116
102
  c.rollback = rollback;
117
103
  c.commit = commit;
118
104
 
package/src/d1/newPool.js CHANGED
@@ -1,8 +1,8 @@
1
- var pools = require('../pools');
2
- var promise = require('../table/promise');
3
- var end = require('./pool/end');
4
- var newGenericPool = require('./pool/newGenericPool');
5
- var newId = require('../newId');
1
+ const promisify = require('../promisify');
2
+ const pools = require('../pools');
3
+ const end = require('./pool/end');
4
+ const newGenericPool = require('./pool/newGenericPool');
5
+ const newId = require('../newId');
6
6
 
7
7
  function newPool(d1Database, poolOptions) {
8
8
  var pool = newGenericPool(d1Database, poolOptions);
@@ -11,7 +11,7 @@ function newPool(d1Database, poolOptions) {
11
11
  var c = {};
12
12
 
13
13
  c.connect = pool.connect;
14
- c.end = promise.denodeify(boundEnd);
14
+ c.end = promisify(boundEnd);
15
15
  pools[id] = c;
16
16
  return c;
17
17
  }
@@ -14,6 +14,7 @@ function newResolveTransaction(domain, pool, { readonly = false } = {}) {
14
14
  rdb.pool = pool;
15
15
  }
16
16
  rdb.engine = 'sqlite';
17
+ rdb.maxParameters = 100;
17
18
  rdb.encodeBoolean = encodeBoolean;
18
19
  rdb.decodeJSON = decodeJSON;
19
20
  rdb.encodeJSON = JSON.stringify;
@@ -1,7 +1,5 @@
1
1
  /* eslint-disable no-prototype-builtins */
2
- var EventEmitter = require('events').EventEmitter;
3
-
4
- var defaults = require('./defaults');
2
+ var defaults = require('../../poolDefaults');
5
3
  var genericPool = require('../../generic-pool');
6
4
 
7
5
  function newGenericPool(d1Database, poolOptions) {
@@ -21,20 +19,10 @@ function newGenericPool(d1Database, poolOptions) {
21
19
  destroy: function() {
22
20
  }
23
21
  });
24
- //mixin EventEmitter to pool
25
- EventEmitter.call(pool);
26
- for(var key in EventEmitter.prototype) {
27
- if(EventEmitter.prototype.hasOwnProperty(key)) {
28
- pool[key] = EventEmitter.prototype[key];
29
- }
30
- }
31
22
  //monkey-patch with connect method
32
23
  pool.connect = function(cb) {
33
- var domain = process.domain;
24
+
34
25
  pool.acquire(function(err, client) {
35
- if(domain) {
36
- cb = domain.bind(cb);
37
- }
38
26
  if(err) return cb(err, null, function() {/*NOOP*/});
39
27
  client.poolCount++;
40
28
  cb(null, client, function(err) {
package/src/emitEvent.js CHANGED
@@ -6,12 +6,14 @@ function emitEvent() {
6
6
  var result = [];
7
7
  for (var i = 0; i < copy.length; i++) {
8
8
  var callback = copy[i];
9
- result.push(callback.apply(null,arguments));
9
+ result.push(callback.apply(null, arguments));
10
10
  }
11
11
  return result;
12
12
  };
13
13
 
14
14
  emit.add = function(callback) {
15
+ if (!callback)
16
+ throw new Error('missing callback');
15
17
  callbacks.push(callback);
16
18
  };
17
19
 
@@ -22,15 +24,15 @@ function emitEvent() {
22
24
 
23
25
  emit.remove = function(callback) {
24
26
  for (var i = 0; i < callbacks.length; i++) {
25
- if(callbacks[i] === callback){
26
- callbacks.splice(i,1);
27
+ if (callbacks[i] === callback) {
28
+ callbacks.splice(i, 1);
27
29
  return;
28
30
  }
29
31
  }
30
32
  };
31
33
 
32
34
  emit.tryRemove = function(callback) {
33
- if(callback)
35
+ if (callback)
34
36
  emit.remove(callback);
35
37
  };
36
38
 
@@ -7,26 +7,26 @@ function emptyFilter() {
7
7
  emptyFilter.sql = parameterized.sql;
8
8
  emptyFilter.parameters = parameterized.parameters;
9
9
 
10
- emptyFilter.and = function(other) {
11
- other = negotiateRawSqlFilter(other);
12
- for (var i = 1; i < arguments.length; i++) {
13
- other = other.and(arguments[i]);
10
+ emptyFilter.and = function(context, other) {
11
+ other = negotiateRawSqlFilter(context, other);
12
+ for (var i = 2; i < arguments.length; i++) {
13
+ other = other.and(context, arguments[i]);
14
14
  }
15
15
  return other;
16
16
  };
17
17
 
18
- emptyFilter.or = function(other) {
19
- other = negotiateRawSqlFilter(other);
20
- for (var i = 1; i < arguments.length; i++) {
21
- other = other.or(arguments[i]);
18
+ emptyFilter.or = function(context, other) {
19
+ other = negotiateRawSqlFilter(context, other);
20
+ for (var i = 2; i < arguments.length; i++) {
21
+ other = other.or(context, arguments[i]);
22
22
  }
23
23
  return other;
24
24
  };
25
25
 
26
- emptyFilter.not = function(other) {
27
- other = negotiateRawSqlFilter(other).not();
28
- for (var i = 1; i < arguments.length; i++) {
29
- other = other.and(arguments[i]);
26
+ emptyFilter.not = function(context, other) {
27
+ other = negotiateRawSqlFilter(context, other).not(context);
28
+ for (var i = 2; i < arguments.length; i++) {
29
+ other = other.and(context, arguments[i]);
30
30
  }
31
31
  return other;
32
32
 
package/src/format.js ADDED
@@ -0,0 +1,9 @@
1
+ function format(template, ...values) {
2
+ let index = 0;
3
+ return template.replace(/%s/g, () => {
4
+ // If there aren't enough values, this will insert 'undefined'
5
+ // for placeholders that don't have a corresponding array item.
6
+ return values[index++];
7
+ });
8
+ }
9
+ module.exports = format;