pure-orm 4.0.2 → 4.1.4

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 (209) hide show
  1. package/.benchmarks/bench-core-baseline.json +303 -0
  2. package/.eslintrc.json +20 -10
  3. package/README.md +0 -7
  4. package/coverage/clover.xml +1493 -1232
  5. package/coverage/coverage-final.json +103 -103
  6. package/coverage/lcov-report/dist/src/core.js.html +590 -383
  7. package/coverage/lcov-report/dist/src/driver-integrations/index.html +20 -20
  8. package/coverage/lcov-report/dist/src/driver-integrations/pgp.js.html +52 -52
  9. package/coverage/lcov-report/dist/src/index.html +28 -28
  10. package/coverage/lcov-report/dist/src/index.js.html +2 -2
  11. package/coverage/lcov-report/dist/src/orm.js.html +392 -209
  12. package/coverage/lcov-report/dist/test-utils/blog/entities.js.html +1 -1
  13. package/coverage/lcov-report/dist/test-utils/blog/index.html +1 -1
  14. package/coverage/lcov-report/dist/test-utils/blog/models/article.js.html +15 -15
  15. package/coverage/lcov-report/dist/test-utils/blog/models/article_tag.js.html +2 -2
  16. package/coverage/lcov-report/dist/test-utils/blog/models/index.html +1 -1
  17. package/coverage/lcov-report/dist/test-utils/blog/models/person.js.html +13 -13
  18. package/coverage/lcov-report/dist/test-utils/blog/models/tag.js.html +1 -1
  19. package/coverage/lcov-report/dist/test-utils/five/entities.js.html +1 -1
  20. package/coverage/lcov-report/dist/test-utils/five/index.html +1 -1
  21. package/coverage/lcov-report/dist/test-utils/five/models/index.html +1 -1
  22. package/coverage/lcov-report/dist/test-utils/five/models/line-item.js.html +4 -4
  23. package/coverage/lcov-report/dist/test-utils/five/models/order.js.html +3 -3
  24. package/coverage/lcov-report/dist/test-utils/five/models/parcel-event.js.html +6 -6
  25. package/coverage/lcov-report/dist/test-utils/five/models/parcel-line-item.js.html +7 -7
  26. package/coverage/lcov-report/dist/test-utils/five/models/parcel.js.html +2 -2
  27. package/coverage/lcov-report/dist/test-utils/fourteen/entities.js.html +1 -1
  28. package/coverage/lcov-report/dist/test-utils/fourteen/index.html +1 -1
  29. package/coverage/lcov-report/dist/test-utils/fourteen/models/customer.js.html +1 -1
  30. package/coverage/lcov-report/dist/test-utils/fourteen/models/index.html +1 -1
  31. package/coverage/lcov-report/dist/test-utils/fourteen/models/person.js.html +1 -1
  32. package/coverage/lcov-report/dist/test-utils/nine/entities.js.html +1 -1
  33. package/coverage/lcov-report/dist/test-utils/nine/index.html +1 -1
  34. package/coverage/lcov-report/dist/test-utils/nine/models/feature-switch.js.html +6 -6
  35. package/coverage/lcov-report/dist/test-utils/nine/models/index.html +1 -1
  36. package/coverage/lcov-report/dist/test-utils/order/entities.js.html +9 -9
  37. package/coverage/lcov-report/dist/test-utils/order/index.html +1 -1
  38. package/coverage/lcov-report/dist/test-utils/order/models/index.html +14 -14
  39. package/coverage/lcov-report/dist/test-utils/order/models/line-item.js.html +11 -11
  40. package/coverage/lcov-report/dist/test-utils/order/models/order.js.html +41 -41
  41. package/coverage/lcov-report/dist/test-utils/order/models/product-variant.js.html +18 -18
  42. package/coverage/lcov-report/dist/test-utils/order/models/product.js.html +17 -17
  43. package/coverage/lcov-report/dist/test-utils/order/models/utm-source.js.html +12 -12
  44. package/coverage/lcov-report/dist/test-utils/order-more/entities.js.html +1 -1
  45. package/coverage/lcov-report/dist/test-utils/order-more/index.html +1 -1
  46. package/coverage/lcov-report/dist/test-utils/order-more/models/actual-product-variant.js.html +3 -3
  47. package/coverage/lcov-report/dist/test-utils/order-more/models/color.js.html +6 -6
  48. package/coverage/lcov-report/dist/test-utils/order-more/models/customer.js.html +3 -3
  49. package/coverage/lcov-report/dist/test-utils/order-more/models/gender.js.html +4 -4
  50. package/coverage/lcov-report/dist/test-utils/order-more/models/index.html +23 -23
  51. package/coverage/lcov-report/dist/test-utils/order-more/models/inventory-level.js.html +11 -11
  52. package/coverage/lcov-report/dist/test-utils/order-more/models/line-item.js.html +15 -15
  53. package/coverage/lcov-report/dist/test-utils/order-more/models/order.js.html +39 -39
  54. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-event.js.html +6 -6
  55. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-line-item.js.html +7 -7
  56. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel.js.html +2 -2
  57. package/coverage/lcov-report/dist/test-utils/order-more/models/physical-address.js.html +12 -12
  58. package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant-image.js.html +7 -7
  59. package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant.js.html +22 -22
  60. package/coverage/lcov-report/dist/test-utils/order-more/models/product.js.html +11 -11
  61. package/coverage/lcov-report/dist/test-utils/order-more/models/refund.js.html +11 -11
  62. package/coverage/lcov-report/dist/test-utils/order-more/models/shipment-actual-product-variant.js.html +9 -9
  63. package/coverage/lcov-report/dist/test-utils/order-more/models/shipment.js.html +4 -4
  64. package/coverage/lcov-report/dist/test-utils/order-more/models/size.js.html +4 -4
  65. package/coverage/lcov-report/dist/test-utils/order-more/models/utm-medium.js.html +15 -15
  66. package/coverage/lcov-report/dist/test-utils/order-more/models/utm-source.js.html +17 -17
  67. package/coverage/lcov-report/dist/test-utils/six/entities.js.html +1 -1
  68. package/coverage/lcov-report/dist/test-utils/six/index.html +1 -1
  69. package/coverage/lcov-report/dist/test-utils/six/models/customer.js.html +3 -3
  70. package/coverage/lcov-report/dist/test-utils/six/models/index.html +21 -21
  71. package/coverage/lcov-report/dist/test-utils/six/models/line-item.js.html +10 -10
  72. package/coverage/lcov-report/dist/test-utils/six/models/order.js.html +13 -13
  73. package/coverage/lcov-report/dist/test-utils/six/models/parcel-line-item.js.html +2 -2
  74. package/coverage/lcov-report/dist/test-utils/six/models/parcel.js.html +2 -2
  75. package/coverage/lcov-report/dist/test-utils/thirteen/entities.js.html +1 -1
  76. package/coverage/lcov-report/dist/test-utils/thirteen/index.html +1 -1
  77. package/coverage/lcov-report/dist/test-utils/thirteen/models/audience.js.html +2 -2
  78. package/coverage/lcov-report/dist/test-utils/thirteen/models/brand.js.html +2 -2
  79. package/coverage/lcov-report/dist/test-utils/thirteen/models/category.js.html +1 -1
  80. package/coverage/lcov-report/dist/test-utils/thirteen/models/index.html +14 -14
  81. package/coverage/lcov-report/dist/test-utils/thirteen/models/member.js.html +2 -2
  82. package/coverage/lcov-report/dist/test-utils/thirteen/models/passion.js.html +2 -2
  83. package/coverage/lcov-report/dist/test-utils/thirteen/models/product.js.html +10 -10
  84. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation-audience.js.html +2 -2
  85. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation.js.html +2 -2
  86. package/coverage/lcov-report/dist/test-utils/three/index.html +1 -1
  87. package/coverage/lcov-report/dist/test-utils/three/results.js.html +1 -1
  88. package/coverage/lcov-report/dist/test-utils/twelve/entities.js.html +1 -1
  89. package/coverage/lcov-report/dist/test-utils/twelve/index.html +1 -1
  90. package/coverage/lcov-report/dist/test-utils/twelve/models/index.html +1 -1
  91. package/coverage/lcov-report/dist/test-utils/twelve/models/member.js.html +1 -1
  92. package/coverage/lcov-report/dist/test-utils/twelve/models/prompt.js.html +2 -2
  93. package/coverage/lcov-report/dist/test-utils/two/index.html +1 -1
  94. package/coverage/lcov-report/dist/test-utils/two/results.js.html +1 -1
  95. package/coverage/lcov-report/index.html +103 -103
  96. package/coverage/lcov-report/src/core.ts.html +841 -415
  97. package/coverage/lcov-report/src/driver-integrations/index.html +20 -20
  98. package/coverage/lcov-report/src/driver-integrations/pgp.ts.html +63 -63
  99. package/coverage/lcov-report/src/index.html +28 -28
  100. package/coverage/lcov-report/src/index.ts.html +1 -1
  101. package/coverage/lcov-report/src/orm.ts.html +388 -298
  102. package/coverage/lcov-report/test-utils/blog/entities.ts.html +1 -1
  103. package/coverage/lcov-report/test-utils/blog/index.html +1 -1
  104. package/coverage/lcov-report/test-utils/blog/models/article.ts.html +15 -15
  105. package/coverage/lcov-report/test-utils/blog/models/article_tag.ts.html +2 -2
  106. package/coverage/lcov-report/test-utils/blog/models/index.html +1 -1
  107. package/coverage/lcov-report/test-utils/blog/models/person.ts.html +13 -13
  108. package/coverage/lcov-report/test-utils/blog/models/tag.ts.html +1 -1
  109. package/coverage/lcov-report/test-utils/five/entities.ts.html +1 -1
  110. package/coverage/lcov-report/test-utils/five/index.html +1 -1
  111. package/coverage/lcov-report/test-utils/five/models/index.html +1 -1
  112. package/coverage/lcov-report/test-utils/five/models/line-item.ts.html +4 -4
  113. package/coverage/lcov-report/test-utils/five/models/order.ts.html +3 -3
  114. package/coverage/lcov-report/test-utils/five/models/parcel-event.ts.html +6 -6
  115. package/coverage/lcov-report/test-utils/five/models/parcel-line-item.ts.html +7 -7
  116. package/coverage/lcov-report/test-utils/five/models/parcel.ts.html +2 -2
  117. package/coverage/lcov-report/test-utils/fourteen/entities.ts.html +1 -1
  118. package/coverage/lcov-report/test-utils/fourteen/index.html +1 -1
  119. package/coverage/lcov-report/test-utils/fourteen/models/customer.ts.html +1 -1
  120. package/coverage/lcov-report/test-utils/fourteen/models/index.html +1 -1
  121. package/coverage/lcov-report/test-utils/fourteen/models/person.ts.html +1 -1
  122. package/coverage/lcov-report/test-utils/nine/entities.ts.html +1 -1
  123. package/coverage/lcov-report/test-utils/nine/index.html +1 -1
  124. package/coverage/lcov-report/test-utils/nine/models/feature-switch.ts.html +8 -8
  125. package/coverage/lcov-report/test-utils/nine/models/index.html +1 -1
  126. package/coverage/lcov-report/test-utils/order/entities.ts.html +2 -2
  127. package/coverage/lcov-report/test-utils/order/index.html +1 -1
  128. package/coverage/lcov-report/test-utils/order/models/index.html +14 -14
  129. package/coverage/lcov-report/test-utils/order/models/line-item.ts.html +5 -5
  130. package/coverage/lcov-report/test-utils/order/models/order.ts.html +36 -36
  131. package/coverage/lcov-report/test-utils/order/models/product-variant.ts.html +13 -13
  132. package/coverage/lcov-report/test-utils/order/models/product.ts.html +13 -13
  133. package/coverage/lcov-report/test-utils/order/models/utm-source.ts.html +8 -8
  134. package/coverage/lcov-report/test-utils/order-more/entities.ts.html +1 -1
  135. package/coverage/lcov-report/test-utils/order-more/index.html +1 -1
  136. package/coverage/lcov-report/test-utils/order-more/models/actual-product-variant.ts.html +3 -3
  137. package/coverage/lcov-report/test-utils/order-more/models/color.ts.html +6 -6
  138. package/coverage/lcov-report/test-utils/order-more/models/customer.ts.html +3 -3
  139. package/coverage/lcov-report/test-utils/order-more/models/gender.ts.html +4 -4
  140. package/coverage/lcov-report/test-utils/order-more/models/index.html +23 -23
  141. package/coverage/lcov-report/test-utils/order-more/models/inventory-level.ts.html +11 -11
  142. package/coverage/lcov-report/test-utils/order-more/models/line-item.ts.html +15 -15
  143. package/coverage/lcov-report/test-utils/order-more/models/order.ts.html +45 -45
  144. package/coverage/lcov-report/test-utils/order-more/models/parcel-event.ts.html +6 -6
  145. package/coverage/lcov-report/test-utils/order-more/models/parcel-line-item.ts.html +7 -7
  146. package/coverage/lcov-report/test-utils/order-more/models/parcel.ts.html +2 -2
  147. package/coverage/lcov-report/test-utils/order-more/models/physical-address.ts.html +12 -12
  148. package/coverage/lcov-report/test-utils/order-more/models/product-variant-image.ts.html +7 -7
  149. package/coverage/lcov-report/test-utils/order-more/models/product-variant.ts.html +22 -22
  150. package/coverage/lcov-report/test-utils/order-more/models/product.ts.html +11 -11
  151. package/coverage/lcov-report/test-utils/order-more/models/refund.ts.html +11 -11
  152. package/coverage/lcov-report/test-utils/order-more/models/shipment-actual-product-variant.ts.html +9 -9
  153. package/coverage/lcov-report/test-utils/order-more/models/shipment.ts.html +4 -4
  154. package/coverage/lcov-report/test-utils/order-more/models/size.ts.html +4 -4
  155. package/coverage/lcov-report/test-utils/order-more/models/utm-medium.ts.html +15 -15
  156. package/coverage/lcov-report/test-utils/order-more/models/utm-source.ts.html +17 -17
  157. package/coverage/lcov-report/test-utils/six/entities.ts.html +1 -1
  158. package/coverage/lcov-report/test-utils/six/index.html +1 -1
  159. package/coverage/lcov-report/test-utils/six/models/customer.ts.html +3 -3
  160. package/coverage/lcov-report/test-utils/six/models/index.html +21 -21
  161. package/coverage/lcov-report/test-utils/six/models/line-item.ts.html +10 -10
  162. package/coverage/lcov-report/test-utils/six/models/order.ts.html +13 -13
  163. package/coverage/lcov-report/test-utils/six/models/parcel-line-item.ts.html +2 -2
  164. package/coverage/lcov-report/test-utils/six/models/parcel.ts.html +2 -2
  165. package/coverage/lcov-report/test-utils/thirteen/entities.ts.html +1 -1
  166. package/coverage/lcov-report/test-utils/thirteen/index.html +1 -1
  167. package/coverage/lcov-report/test-utils/thirteen/models/audience.ts.html +2 -2
  168. package/coverage/lcov-report/test-utils/thirteen/models/brand.ts.html +2 -2
  169. package/coverage/lcov-report/test-utils/thirteen/models/category.ts.html +1 -1
  170. package/coverage/lcov-report/test-utils/thirteen/models/index.html +14 -14
  171. package/coverage/lcov-report/test-utils/thirteen/models/member.ts.html +2 -2
  172. package/coverage/lcov-report/test-utils/thirteen/models/passion.ts.html +2 -2
  173. package/coverage/lcov-report/test-utils/thirteen/models/product.ts.html +10 -10
  174. package/coverage/lcov-report/test-utils/thirteen/models/recommendation-audience.ts.html +2 -2
  175. package/coverage/lcov-report/test-utils/thirteen/models/recommendation.ts.html +2 -2
  176. package/coverage/lcov-report/test-utils/three/index.html +1 -1
  177. package/coverage/lcov-report/test-utils/three/results.js.html +1 -1
  178. package/coverage/lcov-report/test-utils/twelve/entities.ts.html +1 -1
  179. package/coverage/lcov-report/test-utils/twelve/index.html +1 -1
  180. package/coverage/lcov-report/test-utils/twelve/models/index.html +1 -1
  181. package/coverage/lcov-report/test-utils/twelve/models/member.ts.html +1 -1
  182. package/coverage/lcov-report/test-utils/twelve/models/prompt.ts.html +2 -2
  183. package/coverage/lcov-report/test-utils/two/index.html +1 -1
  184. package/coverage/lcov-report/test-utils/two/results.js.html +1 -1
  185. package/coverage/lcov.info +2136 -1991
  186. package/dist/example/data-access/person.d.ts +1 -1
  187. package/dist/src/core.d.ts +13 -7
  188. package/dist/src/core.js +258 -189
  189. package/dist/src/core.spec.js +413 -0
  190. package/dist/src/driver-integrations/index.d.ts +5 -5
  191. package/dist/src/driver-integrations/pgp.spec.d.ts +1 -0
  192. package/dist/src/driver-integrations/pgp.spec.js +376 -0
  193. package/dist/src/orm.d.ts +9 -9
  194. package/dist/src/orm.js +137 -76
  195. package/dist/src/orm.spec.js +535 -85
  196. package/dist/test-utils/nine/models/feature-switch.d.ts +2 -2
  197. package/dist/test-utils/nine/models/feature-switch.ts +2 -2
  198. package/example/data-access/person.ts +1 -1
  199. package/package.json +9 -6
  200. package/scripts/bench-core.js +636 -0
  201. package/scripts/check-bench-scenarios.js +47 -0
  202. package/src/core.spec.ts +485 -2
  203. package/src/core.ts +369 -227
  204. package/src/driver-integrations/index.ts +5 -5
  205. package/src/driver-integrations/pgp.spec.ts +444 -0
  206. package/src/driver-integrations/pgp.ts +5 -5
  207. package/src/orm.spec.ts +592 -88
  208. package/src/orm.ts +173 -143
  209. package/test-utils/nine/models/feature-switch.ts +2 -2
@@ -0,0 +1,303 @@
1
+ {
2
+ "generatedAt": "2026-02-28T20:28:09.936Z",
3
+ "sampleCount": 2,
4
+ "helperIterations": 300000,
5
+ "fixtureResults": [
6
+ {
7
+ "label": "order/one",
8
+ "rows": 6,
9
+ "rounds": 200,
10
+ "samples": 2,
11
+ "medianElapsedMs": 9.54825,
12
+ "meanElapsedMs": 7.6148335,
13
+ "minElapsedMs": 5.681417,
14
+ "maxElapsedMs": 9.54825,
15
+ "perIterMs": 0.04774125,
16
+ "rowsPerSecond": 125677.48016652267
17
+ },
18
+ {
19
+ "label": "blog/two",
20
+ "rows": 10,
21
+ "rounds": 200,
22
+ "samples": 2,
23
+ "medianElapsedMs": 6.158167,
24
+ "meanElapsedMs": 4.9341875,
25
+ "minElapsedMs": 3.710208,
26
+ "maxElapsedMs": 6.158167,
27
+ "perIterMs": 0.030790835,
28
+ "rowsPerSecond": 324771.965424127
29
+ },
30
+ {
31
+ "label": "blog/three",
32
+ "rows": 13,
33
+ "rounds": 200,
34
+ "samples": 2,
35
+ "medianElapsedMs": 4.659959,
36
+ "meanElapsedMs": 4.6063545,
37
+ "minElapsedMs": 4.55275,
38
+ "maxElapsedMs": 4.659959,
39
+ "perIterMs": 0.023299794999999998,
40
+ "rowsPerSecond": 557944.8231196884
41
+ },
42
+ {
43
+ "label": "order-more/four",
44
+ "rows": 14,
45
+ "rounds": 200,
46
+ "samples": 2,
47
+ "medianElapsedMs": 8.427291,
48
+ "meanElapsedMs": 7.6531455,
49
+ "minElapsedMs": 6.879,
50
+ "maxElapsedMs": 8.427291,
51
+ "perIterMs": 0.042136455,
52
+ "rowsPerSecond": 332253.864260769
53
+ },
54
+ {
55
+ "label": "five/five",
56
+ "rows": 4,
57
+ "rounds": 200,
58
+ "samples": 2,
59
+ "medianElapsedMs": 1.666083,
60
+ "meanElapsedMs": 1.6640625,
61
+ "minElapsedMs": 1.662042,
62
+ "maxElapsedMs": 1.666083,
63
+ "perIterMs": 0.008330415,
64
+ "rowsPerSecond": 480168.1548878417
65
+ },
66
+ {
67
+ "label": "six/six",
68
+ "rows": 2,
69
+ "rounds": 200,
70
+ "samples": 2,
71
+ "medianElapsedMs": 1.685833,
72
+ "meanElapsedMs": 1.5530205,
73
+ "minElapsedMs": 1.420208,
74
+ "maxElapsedMs": 1.685833,
75
+ "perIterMs": 0.008429164999999999,
76
+ "rowsPerSecond": 237271.42605465668
77
+ },
78
+ {
79
+ "label": "order-more/seven",
80
+ "rows": 2,
81
+ "rounds": 200,
82
+ "samples": 2,
83
+ "medianElapsedMs": 1.967167,
84
+ "meanElapsedMs": 1.7633960000000002,
85
+ "minElapsedMs": 1.559625,
86
+ "maxElapsedMs": 1.967167,
87
+ "perIterMs": 0.009835835000000001,
88
+ "rowsPerSecond": 203338.09991729222
89
+ },
90
+ {
91
+ "label": "order-more/eight",
92
+ "rows": 6,
93
+ "rounds": 200,
94
+ "samples": 2,
95
+ "medianElapsedMs": 5.47675,
96
+ "meanElapsedMs": 5.26075,
97
+ "minElapsedMs": 5.04475,
98
+ "maxElapsedMs": 5.47675,
99
+ "perIterMs": 0.02738375,
100
+ "rowsPerSecond": 219108.04765600036
101
+ },
102
+ {
103
+ "label": "nine/nine",
104
+ "rows": 2,
105
+ "rounds": 200,
106
+ "samples": 2,
107
+ "medianElapsedMs": 0.437375,
108
+ "meanElapsedMs": 0.4086875,
109
+ "minElapsedMs": 0.38,
110
+ "maxElapsedMs": 0.437375,
111
+ "perIterMs": 0.002186875,
112
+ "rowsPerSecond": 914547.0134324093
113
+ },
114
+ {
115
+ "label": "order-more/ten",
116
+ "rows": 23,
117
+ "rounds": 200,
118
+ "samples": 2,
119
+ "medianElapsedMs": 15.402,
120
+ "meanElapsedMs": 14.1415,
121
+ "minElapsedMs": 12.881,
122
+ "maxElapsedMs": 15.402,
123
+ "perIterMs": 0.07701,
124
+ "rowsPerSecond": 298662.5113621608
125
+ },
126
+ {
127
+ "label": "order-more/eleven",
128
+ "rows": 24,
129
+ "rounds": 200,
130
+ "samples": 2,
131
+ "medianElapsedMs": 11.313584,
132
+ "meanElapsedMs": 10.9962295,
133
+ "minElapsedMs": 10.678875,
134
+ "maxElapsedMs": 11.313584,
135
+ "perIterMs": 0.05656792,
136
+ "rowsPerSecond": 424268.73747523327
137
+ },
138
+ {
139
+ "label": "twelve/twelve",
140
+ "rows": 1,
141
+ "rounds": 200,
142
+ "samples": 2,
143
+ "medianElapsedMs": 0.395375,
144
+ "meanElapsedMs": 0.3538125,
145
+ "minElapsedMs": 0.31225,
146
+ "maxElapsedMs": 0.395375,
147
+ "perIterMs": 0.001976875,
148
+ "rowsPerSecond": 505848.87764780276
149
+ },
150
+ {
151
+ "label": "thirteen/thirteen",
152
+ "rows": 4,
153
+ "rounds": 200,
154
+ "samples": 2,
155
+ "medianElapsedMs": 2.942166,
156
+ "meanElapsedMs": 2.9272915,
157
+ "minElapsedMs": 2.912417,
158
+ "maxElapsedMs": 2.942166,
159
+ "perIterMs": 0.01471083,
160
+ "rowsPerSecond": 271908.51909783477
161
+ },
162
+ {
163
+ "label": "fourteen/fourteen",
164
+ "rows": 1,
165
+ "rounds": 200,
166
+ "samples": 2,
167
+ "medianElapsedMs": 0.315958,
168
+ "meanElapsedMs": 0.297812,
169
+ "minElapsedMs": 0.279666,
170
+ "maxElapsedMs": 0.315958,
171
+ "perIterMs": 0.0015797900000000002,
172
+ "rowsPerSecond": 632995.5247216402
173
+ }
174
+ ],
175
+ "stressResults": [
176
+ {
177
+ "label": "stress/same-root x120",
178
+ "rows": 2880,
179
+ "rounds": 5,
180
+ "samples": 2,
181
+ "medianElapsedMs": 9.169542,
182
+ "meanElapsedMs": 9.057749999999999,
183
+ "minElapsedMs": 8.945958,
184
+ "maxElapsedMs": 9.169542,
185
+ "perIterMs": 1.8339083999999999,
186
+ "rowsPerSecond": 1570416.4940844374
187
+ },
188
+ {
189
+ "label": "stress/many-roots x120",
190
+ "rows": 2880,
191
+ "rounds": 5,
192
+ "samples": 2,
193
+ "medianElapsedMs": 36.064917,
194
+ "meanElapsedMs": 31.796646000000003,
195
+ "minElapsedMs": 27.528375,
196
+ "maxElapsedMs": 36.064917,
197
+ "perIterMs": 7.212983400000001,
198
+ "rowsPerSecond": 399279.99834298796
199
+ },
200
+ {
201
+ "label": "stress/sparse-joins x120",
202
+ "rows": 2880,
203
+ "rounds": 8,
204
+ "samples": 2,
205
+ "medianElapsedMs": 11.708208,
206
+ "meanElapsedMs": 11.1655415,
207
+ "minElapsedMs": 10.622875,
208
+ "maxElapsedMs": 11.708208,
209
+ "perIterMs": 1.463526,
210
+ "rowsPerSecond": 1967850.246596234
211
+ },
212
+ {
213
+ "label": "stress/sparse-many x120",
214
+ "rows": 2880,
215
+ "rounds": 8,
216
+ "samples": 2,
217
+ "medianElapsedMs": 16.303,
218
+ "meanElapsedMs": 14.8107915,
219
+ "minElapsedMs": 13.318583,
220
+ "maxElapsedMs": 16.303,
221
+ "perIterMs": 2.037875,
222
+ "rowsPerSecond": 1413236.8275777462
223
+ },
224
+ {
225
+ "label": "stress/unstable-order x120",
226
+ "rows": 2880,
227
+ "rounds": 8,
228
+ "samples": 2,
229
+ "medianElapsedMs": 15.130958,
230
+ "meanElapsedMs": 14.767333,
231
+ "minElapsedMs": 14.403708,
232
+ "maxElapsedMs": 15.130958,
233
+ "perIterMs": 1.89136975,
234
+ "rowsPerSecond": 1522705.9648172972
235
+ },
236
+ {
237
+ "label": "stress/unstable-many x120",
238
+ "rows": 2880,
239
+ "rounds": 8,
240
+ "samples": 2,
241
+ "medianElapsedMs": 41.432791,
242
+ "meanElapsedMs": 40.445562,
243
+ "minElapsedMs": 39.458333,
244
+ "maxElapsedMs": 41.432791,
245
+ "perIterMs": 5.179098875,
246
+ "rowsPerSecond": 556081.2931960098
247
+ },
248
+ {
249
+ "label": "stress/composite-pk x120",
250
+ "rows": 7200,
251
+ "rounds": 8,
252
+ "samples": 2,
253
+ "medianElapsedMs": 47.118417,
254
+ "meanElapsedMs": 44.7056045,
255
+ "minElapsedMs": 42.292792,
256
+ "maxElapsedMs": 47.118417,
257
+ "perIterMs": 5.889802125,
258
+ "rowsPerSecond": 1222451.9342404902
259
+ }
260
+ ],
261
+ "ormHelperResults": [
262
+ {
263
+ "label": "orm/getSqlInsertParts",
264
+ "medianMs": 210.117208,
265
+ "meanMs": 208.3668955,
266
+ "minMs": 206.616583,
267
+ "maxMs": 210.117208,
268
+ "opsPerSec": 1427774.5400081654
269
+ },
270
+ {
271
+ "label": "orm/getSqlUpdateParts",
272
+ "medianMs": 211.639666,
273
+ "meanMs": 210.515291,
274
+ "minMs": 209.390916,
275
+ "maxMs": 211.639666,
276
+ "opsPerSec": 1417503.6545370468
277
+ },
278
+ {
279
+ "label": "orm/getMatchingParts",
280
+ "medianMs": 192.035208,
281
+ "meanMs": 188.3796875,
282
+ "minMs": 184.724167,
283
+ "maxMs": 192.035208,
284
+ "opsPerSec": 1562213.5290941023
285
+ },
286
+ {
287
+ "label": "orm/getMatchingPartsObject",
288
+ "medianMs": 253.366583,
289
+ "meanMs": 251.892271,
290
+ "minMs": 250.417959,
291
+ "maxMs": 253.366583,
292
+ "opsPerSec": 1184055.1206391728
293
+ },
294
+ {
295
+ "label": "orm/getSqlColumnForPropertyName",
296
+ "medianMs": 8.794459,
297
+ "meanMs": 8.3162085,
298
+ "minMs": 7.837958,
299
+ "maxMs": 8.794459,
300
+ "opsPerSec": 34112388.266293585
301
+ }
302
+ ]
303
+ }
package/.eslintrc.json CHANGED
@@ -1,7 +1,10 @@
1
1
  {
2
+ "parser": "@babel/eslint-parser",
3
+ "ignorePatterns": ["dist/", "node_modules"],
2
4
  "parserOptions": {
3
5
  "ecmaVersion": 2020,
4
6
  "sourceType": "module",
7
+ "requireConfigFile": false,
5
8
  "ecmaFeatures": {
6
9
  "experimentalObjectRestSpread": true
7
10
  }
@@ -15,7 +18,7 @@
15
18
  "rules": {
16
19
  "comma-dangle": [0],
17
20
  "no-cond-assign": [2, "always"],
18
- "no-console": 1,
21
+ "no-console": "warn",
19
22
  "no-constant-condition": 2,
20
23
  "no-control-regex": 2,
21
24
  "no-debugger": 2,
@@ -45,7 +48,7 @@
45
48
  "accessor-pairs": 2,
46
49
  "array-callback-return": 2,
47
50
  "block-scoped-var": 2,
48
- "complexity": [1, 10],
51
+ "complexity": ["warn", 20],
49
52
  "consistent-return": 0,
50
53
  "curly": [2, "multi-line"],
51
54
  "default-case": 0,
@@ -70,7 +73,7 @@
70
73
  "no-implicit-coercion": 0,
71
74
  "no-implicit-globals": 2,
72
75
  "no-implied-eval": 2,
73
- "no-invalid-this": 2,
76
+ "no-invalid-this": "off",
74
77
  "no-iterator": 2,
75
78
  "no-labels": 2,
76
79
  "no-lone-blocks": 2,
@@ -85,7 +88,7 @@
85
88
  "no-octal": 2,
86
89
  "no-octal-escape": 2,
87
90
  "no-param-reassign": 1,
88
- "no-process-env": 2,
91
+ "no-process-env": "off",
89
92
  "no-proto": 2,
90
93
  "no-redeclare": 2,
91
94
  "no-return-assign": 0,
@@ -110,18 +113,18 @@
110
113
  "wrap-iife": [0, "outside"],
111
114
  "yoda": 2,
112
115
 
113
- "strict": 2,
116
+ "strict": "off",
114
117
 
115
118
  "init-declarations": 0,
116
119
  "no-catch-shadow": 2,
117
120
  "no-delete-var": 2,
118
121
  "no-label-var": 2,
119
- "no-shadow": 1,
122
+ "no-shadow": "warn",
120
123
  "no-shadow-restricted-names": 2,
121
124
  "no-undef": 2,
122
125
  "no-undef-init": 2,
123
126
  "no-undefined": 2,
124
- "no-unused-vars": [2, { "argsIgnorePattern": "^_" }],
127
+ "no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
125
128
  "no-use-before-define": 2,
126
129
 
127
130
  "callback-return": 2,
@@ -160,8 +163,15 @@
160
163
  "lines-around-comment": 0,
161
164
  "max-depth": [1, 4],
162
165
  "max-len": [
163
- 1,
164
- { "code": 90, "tabWidth": 2, "ignoreUrls": true, "ignoreComments": true }
166
+ "warn",
167
+ {
168
+ "code": 200,
169
+ "tabWidth": 2,
170
+ "ignoreUrls": true,
171
+ "ignoreComments": true,
172
+ "ignoreStrings": true,
173
+ "ignoreTemplateLiterals": true
174
+ }
165
175
  ],
166
176
  "max-nested-callbacks": [1, 5],
167
177
  "max-params": [1, 4],
@@ -194,7 +204,7 @@
194
204
  "operator-assignment": 0,
195
205
  "operator-linebreak": 0,
196
206
  "padded-blocks": [0, "never"],
197
- "quote-props": [2, "as-needed"],
207
+ "quote-props": ["error", "as-needed", { "numbers": true }],
198
208
  "quotes": [0, "single", "avoid-escape"],
199
209
  "require-jsdoc": 0,
200
210
  "semi": [2, "always"],
package/README.md CHANGED
@@ -738,13 +738,6 @@ PureORM
738
738
 
739
739
  ## Current Status
740
740
 
741
- #### Current Todos (PRs welcome!):
742
-
743
- - Performance. While the API has been somewhat thought through and iterated on to this point, the implementation details have been secondary, knowing that they can be perfected in time. Probably about time now.
744
- - Add more tests
745
- - Known Bug: if a table references the same table twice, the first one is found as the nodePointingToIt and so ends up throwing.
746
- - ideally the fix to this will change the behavior of when a table points to another table by another name (author_id -> person)
747
-
748
741
  #### Is it production ready?
749
742
 
750
743
  It is in production at [www.kujo.com](https://www.kujo.com) - powering the marketing pages and blog, as well as the customer, affiliate, and admin platforms (behind login). When considering for your case, note the Current Limitations and TODOs sections above.