orange-orm 4.5.0-beta.1 → 4.5.0-beta.3

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 (108) hide show
  1. package/README.md +21 -1
  2. package/package.json +3 -3
  3. package/src/applyPatch.js +12 -5
  4. package/src/client/index.mjs +13529 -6469
  5. package/src/client/rollup.config.js +24 -4
  6. package/src/client/stringify.js +2 -9
  7. package/src/createDomain.js +2 -18
  8. package/src/d1/newPool.js +1 -1
  9. package/src/d1/newTransaction.js +1 -0
  10. package/src/d1/pool/newGenericPool.js +1 -14
  11. package/src/format.js +9 -0
  12. package/src/generic-pool.js +274 -313
  13. package/src/getManyDto.js +52 -21
  14. package/src/hostExpress/executePath.js +2 -1
  15. package/src/hostExpress.js +2 -7
  16. package/src/hostLocal.js +1 -1
  17. package/src/index.js +2 -1
  18. package/src/indexBrowser.js +39 -0
  19. package/src/mssql/newPool.js +1 -1
  20. package/src/mssql/pool/newGenericPool.js +0 -12
  21. package/src/mySql/deleteFromSql.js +4 -4
  22. package/src/mySql/newPool.js +1 -1
  23. package/src/mySql/pool/newGenericPool.js +0 -12
  24. package/src/newId.js +2 -1
  25. package/src/oracle/deleteFromSql.js +4 -4
  26. package/src/oracle/newInsertCommandCore.js +2 -2
  27. package/src/oracle/newPool.js +1 -1
  28. package/src/oracle/pool/newGenericPool.js +0 -12
  29. package/src/package.json +5 -0
  30. package/src/pg/deleteFromSql.js +4 -4
  31. package/src/pg/newPool.js +1 -1
  32. package/src/pg/pool/newPgPool.js +0 -12
  33. package/src/promisify.js +24 -0
  34. package/src/sap/deleteFromSql.js +2 -2
  35. package/src/sap/newPool.js +1 -1
  36. package/src/sqlite/deleteFromSql.js +4 -4
  37. package/src/sqlite/newPool.js +1 -1
  38. package/src/sqlite/pool/newGenericPool.js +0 -13
  39. package/src/table/column/negotiateRawSqlFilter.js +1 -72
  40. package/src/table/column/newBoolean.js +2 -53
  41. package/src/table/column/utils.js +113 -0
  42. package/src/table/column.js +6 -2
  43. package/src/table/commands/newDeleteCommand.js +1 -6
  44. package/src/table/commands/newInsertCommand.js +5 -2
  45. package/src/table/commands/newInsertCommandCore.js +11 -11
  46. package/src/table/deleteSessionContext.js +0 -3
  47. package/src/table/executeQueries/resolveExecuteQuery.js +0 -7
  48. package/src/table/newCascadeDeleteStrategy.js +1 -7
  49. package/src/table/newRelatedTable.js +4 -10
  50. package/src/table/query/newParameterized.js +8 -11
  51. package/src/table/query/singleQuery/columnSql/joinLegToColumnSql.js +2 -15
  52. package/src/table/query/singleQuery/columnSql/newJoinedColumnSql.js +2 -25
  53. package/src/table/query/singleQuery/columnSql/sharedJoinUtils.js +37 -0
  54. package/src/table/query/singleQuery/joinSql/joinLegToJoinSql.js +1 -6
  55. package/src/table/query/singleQuery/joinSql/oneLegToJoinSql.js +1 -7
  56. package/src/table/query/singleQuery/newJoinSql.js +4 -4
  57. package/src/table/relatedTable/aggregate.js +0 -6
  58. package/src/table/relatedTable/all.js +1 -7
  59. package/src/table/relatedTable/any.js +1 -8
  60. package/src/table/relatedTable/none.js +1 -7
  61. package/src/table/relatedTable/where.js +0 -6
  62. package/src/table/relation/newManyCache.js +11 -3
  63. package/src/table/resultToRows/dbRowToRow.js +2 -9
  64. package/src/table/resultToRows/delete/removeFromCache.js +2 -9
  65. package/src/table/resultToRows/newDecodeDbRow.js +0 -7
  66. package/src/table/resultToRows/toDto/extractStrategy.js +1 -7
  67. package/src/table/tryGetSessionContext.js +0 -5
  68. package/src/table.js +0 -4
  69. package/src/tedious/deleteFromSql.js +4 -4
  70. package/src/tedious/getManyDto/newQueryCore.js +1 -1
  71. package/src/tedious/getManyDto/query/newSubQueries/joinLegToQuery.js +2 -3
  72. package/src/tedious/getManyDto/query/newSubQueries/manyLegToQuery.js +2 -3
  73. package/src/tedious/getManyDto/query/newSubQueries/oneLegToQuery.js +13 -14
  74. package/src/tedious/getManyDto/query/newSubQueries.js +8 -25
  75. package/src/tedious/newPool.js +1 -1
  76. package/src/tedious/pool/newGenericPool.js +0 -12
  77. package/src/validateDeleteConflict.js +11 -5
  78. package/src/createDomain/negotiateForwardProperty.js +0 -23
  79. package/src/table/createJSONReadStream.js +0 -7
  80. package/src/table/createJSONReadStreamDefault.js +0 -33
  81. package/src/table/createJSONReadStreamNative.js +0 -31
  82. package/src/table/createReadStream.js +0 -24
  83. package/src/table/createReadStreamCoreNative.js +0 -40
  84. package/src/table/createReadStreamDefault.js +0 -102
  85. package/src/table/createReadStreamNative.js +0 -17
  86. package/src/table/readStream/extractLimit.js +0 -7
  87. package/src/table/readStream/extractOrderBy.js +0 -59
  88. package/src/table/readStream/mySql/newQuery.js +0 -16
  89. package/src/table/readStream/mySql/query/newSingleQuery.js +0 -21
  90. package/src/table/readStream/mySql/query/newSubQueries/joinLegToQuery.js +0 -20
  91. package/src/table/readStream/mySql/query/newSubQueries/manyLegToQuery.js +0 -22
  92. package/src/table/readStream/mySql/query/newSubQueries/newQueryCore.js +0 -9
  93. package/src/table/readStream/mySql/query/newSubQueries/newSingleQueryCore.js +0 -18
  94. package/src/table/readStream/mySql/query/newSubQueries/oneLegToQuery.js +0 -22
  95. package/src/table/readStream/mySql/query/newSubQueries.js +0 -47
  96. package/src/table/readStream/mySql/query/singleQuery/newShallowColumnSql.js +0 -18
  97. package/src/table/readStream/newQuery.js +0 -32
  98. package/src/table/readStream/newQueryStream.js +0 -8
  99. package/src/table/readStream/pg/newQuery.js +0 -8
  100. package/src/table/readStream/pg/newQueryCore.js +0 -17
  101. package/src/table/readStream/pg/query/newSingleQuery.js +0 -19
  102. package/src/table/readStream/pg/query/newSubQueries/joinLegToQuery.js +0 -19
  103. package/src/table/readStream/pg/query/newSubQueries/manyLegToQuery.js +0 -22
  104. package/src/table/readStream/pg/query/newSubQueries/oneLegToQuery.js +0 -19
  105. package/src/table/readStream/pg/query/newSubQueries.js +0 -47
  106. package/src/table/readStream/pg/query/singleQuery/newShallowColumnSql.js +0 -20
  107. package/src/table/readStreamDefault/createBatchFilter.js +0 -39
  108. package/src/useHook.js +0 -9
package/README.md CHANGED
@@ -29,7 +29,8 @@ The ultimate Object Relational Mapper for Node.js and Typescript, offering seaml
29
29
  ✅ MySQL
30
30
  ✅ Oracle
31
31
  ✅ SAP ASE
32
- ✅ SQLite
32
+ ✅ SQLite
33
+ ✅ Cloudflare D1
33
34
 
34
35
 
35
36
  This is the _Modern Typescript Documentation_. Are you looking for the [_Classic Documentation_](https://github.com/alfateam/orange-orm/blob/master/docs/docs.md) ?
@@ -319,6 +320,22 @@ import map from './map';
319
320
 
320
321
  const db = map.http('http://localhost:3000/orange');
321
322
  ```
323
+ __Cloudflare D1__
324
+ <sub>📄 wrangler.toml</sub>
325
+ ```toml
326
+ # Bind a D1 database. D1 is Cloudflare’s native serverless SQL database.
327
+ # Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#d1-databases
328
+ [[d1_databases]]
329
+ binding = "DB"
330
+ database_name = "<your-name-for-the-database>"
331
+ database_id = "<your-guid-for-the-database>"
332
+ ```
333
+
334
+ ```javascript
335
+ import map from './map';
336
+ // Must match the binding name in wrangler.toml
337
+ const db = map.d1(env.DB);
338
+ ```
322
339
  __MySQL__
323
340
  ```bash
324
341
  $ npm install mysql2
@@ -1580,6 +1597,8 @@ async function getRows() {
1580
1597
  Within the transaction, a customer is retrieved and its balance updated using the tx object to ensure operations are transactional.
1581
1598
  An error is deliberately thrown to demonstrate a rollback, ensuring all previous changes within the transaction are reverted.
1582
1599
  Always use the provided tx object for operations within the transaction to maintain data integrity.</p>
1600
+ <p>(NOTE: Transactions are not supported for Cloudflare D1)</p>
1601
+
1583
1602
 
1584
1603
  ```javascript
1585
1604
  import map from './map';
@@ -1597,6 +1616,7 @@ async function execute() {
1597
1616
  }
1598
1617
 
1599
1618
  ```
1619
+
1600
1620
  </details>
1601
1621
 
1602
1622
  <details><summary><strong>Data types</strong></summary>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orange-orm",
3
- "version": "4.5.0-beta.1",
3
+ "version": "4.5.0-beta.3",
4
4
  "main": "./src/index.js",
5
5
  "browser": "./src/client/index.mjs",
6
6
  "bin": {
@@ -19,7 +19,6 @@
19
19
  "mssql",
20
20
  "Microsoft Sql Server",
21
21
  "PostgreSql",
22
- "Cloudflare D1",
23
22
  "Postgres",
24
23
  "pg",
25
24
  "sap",
@@ -107,7 +106,8 @@
107
106
  "devDependencies": {
108
107
  "@cloudflare/workers-types": "^4.20241106.0",
109
108
  "@miniflare/d1": "^2.14.4",
110
- "@rollup/plugin-commonjs": "^21.0.1",
109
+ "@rollup/plugin-commonjs": "^28.0.2",
110
+ "@rollup/plugin-json": "^6.1.0",
111
111
  "@rollup/plugin-node-resolve": "^13.0.0",
112
112
  "@typescript-eslint/eslint-plugin": "^6.x",
113
113
  "@typescript-eslint/parser": "^6.x",
package/src/applyPatch.js CHANGED
@@ -1,6 +1,4 @@
1
1
  const fastjson = require('fast-json-patch');
2
- let { inspect } = require('util');
3
- let assert = require('assert');
4
2
  let fromCompareObject = require('./fromCompareObject');
5
3
  let toCompareObject = require('./toCompareObject');
6
4
 
@@ -43,12 +41,12 @@ function applyPatch({ options = {} }, dto, changes, column) {
43
41
  assertDatesEqual(oldValue, expectedOldValue);
44
42
  }
45
43
  else
46
- assert.deepEqual(oldValue, expectedOldValue);
44
+ assertDeepEqual(oldValue, expectedOldValue);
47
45
  }
48
46
  catch (e) {
49
47
  if (concurrency === 'skipOnConflict')
50
48
  return false;
51
- throw new Error(`The field ${change.path.replace('/', '')} was changed by another user. Expected ${inspect(fromCompareObject(expectedOldValue), false, 10)}, but was ${inspect(fromCompareObject(oldValue), false, 10)}.`);
49
+ throw new Error(`The field ${change.path.replace('/', '')} was changed by another user. Expected ${inspect(fromCompareObject(expectedOldValue))}, but was ${inspect(fromCompareObject(oldValue))}.`);
52
50
  }
53
51
  }
54
52
  return true;
@@ -99,7 +97,16 @@ function assertDatesEqual(date1, date2) {
99
97
  date1 = `${parts1[0]}T${time1parts[0]}`;
100
98
  date2 = `${parts2[0]}T${time2parts[0]}`;
101
99
  }
102
- assert.deepEqual(date1, date2);
100
+ assertDeepEqual(date1, date2);
101
+ }
102
+
103
+ function assertDeepEqual(a, b) {
104
+ if (JSON.stringify(a) !== JSON.stringify(b))
105
+ throw new Error('A, b are not equal');
106
+ }
107
+
108
+ function inspect(obj) {
109
+ return JSON.stringify(obj, null, 2);
103
110
  }
104
111
 
105
112
  module.exports = applyPatch;