pure-orm 4.0.0 → 4.0.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 (217) hide show
  1. package/README.md +97 -43
  2. package/coverage/clover.xml +969 -626
  3. package/coverage/coverage-final.json +34 -22
  4. package/coverage/lcov-report/dist/src/core.js.html +220 -190
  5. package/coverage/lcov-report/dist/src/driver-integrations/index.html +97 -0
  6. package/coverage/lcov-report/dist/src/driver-integrations/pgp.js.html +240 -0
  7. package/coverage/lcov-report/dist/src/index.html +44 -18
  8. package/coverage/lcov-report/dist/src/index.js.html +2 -2
  9. package/coverage/lcov-report/dist/src/orm.js.html +125 -119
  10. package/coverage/lcov-report/dist/test-utils/blog/entities.js.html +1 -1
  11. package/coverage/lcov-report/dist/test-utils/blog/index.html +1 -1
  12. package/coverage/lcov-report/dist/test-utils/blog/models/article.js.html +15 -15
  13. package/coverage/lcov-report/dist/test-utils/blog/models/article_tag.js.html +7 -7
  14. package/coverage/lcov-report/dist/test-utils/blog/models/index.html +1 -1
  15. package/coverage/lcov-report/dist/test-utils/blog/models/person.js.html +13 -13
  16. package/coverage/lcov-report/dist/test-utils/blog/models/tag.js.html +4 -4
  17. package/coverage/lcov-report/dist/test-utils/five/entities.js.html +1 -1
  18. package/coverage/lcov-report/dist/test-utils/five/index.html +1 -1
  19. package/coverage/lcov-report/dist/test-utils/five/models/index.html +1 -1
  20. package/coverage/lcov-report/dist/test-utils/five/models/line-item.js.html +1 -1
  21. package/coverage/lcov-report/dist/test-utils/five/models/order.js.html +1 -1
  22. package/coverage/lcov-report/dist/test-utils/five/models/parcel-event.js.html +1 -1
  23. package/coverage/lcov-report/dist/test-utils/five/models/parcel-line-item.js.html +1 -1
  24. package/coverage/lcov-report/dist/test-utils/five/models/parcel.js.html +1 -1
  25. package/coverage/lcov-report/dist/test-utils/fourteen/entities.js.html +87 -0
  26. package/coverage/lcov-report/dist/test-utils/fourteen/index.html +97 -0
  27. package/coverage/lcov-report/dist/test-utils/fourteen/models/customer.js.html +159 -0
  28. package/coverage/lcov-report/dist/test-utils/fourteen/models/index.html +110 -0
  29. package/coverage/lcov-report/dist/test-utils/fourteen/models/person.js.html +138 -0
  30. package/coverage/lcov-report/dist/test-utils/nine/entities.js.html +1 -1
  31. package/coverage/lcov-report/dist/test-utils/nine/index.html +1 -1
  32. package/coverage/lcov-report/dist/test-utils/nine/models/feature-switch.js.html +1 -1
  33. package/coverage/lcov-report/dist/test-utils/nine/models/index.html +1 -1
  34. package/coverage/lcov-report/dist/test-utils/order/entities.js.html +11 -11
  35. package/coverage/lcov-report/dist/test-utils/order/index.html +1 -1
  36. package/coverage/lcov-report/dist/test-utils/order/models/index.html +1 -1
  37. package/coverage/lcov-report/dist/test-utils/order/models/line-item.js.html +24 -24
  38. package/coverage/lcov-report/dist/test-utils/order/models/order.js.html +42 -42
  39. package/coverage/lcov-report/dist/test-utils/order/models/product-variant.js.html +23 -23
  40. package/coverage/lcov-report/dist/test-utils/order/models/product.js.html +17 -17
  41. package/coverage/lcov-report/dist/test-utils/order/models/utm-source.js.html +12 -12
  42. package/coverage/lcov-report/dist/test-utils/order-more/entities.js.html +1 -1
  43. package/coverage/lcov-report/dist/test-utils/order-more/index.html +1 -1
  44. package/coverage/lcov-report/dist/test-utils/order-more/models/actual-product-variant.js.html +1 -1
  45. package/coverage/lcov-report/dist/test-utils/order-more/models/color.js.html +1 -1
  46. package/coverage/lcov-report/dist/test-utils/order-more/models/customer.js.html +1 -1
  47. package/coverage/lcov-report/dist/test-utils/order-more/models/gender.js.html +1 -1
  48. package/coverage/lcov-report/dist/test-utils/order-more/models/index.html +1 -1
  49. package/coverage/lcov-report/dist/test-utils/order-more/models/inventory-level.js.html +1 -1
  50. package/coverage/lcov-report/dist/test-utils/order-more/models/line-item.js.html +1 -1
  51. package/coverage/lcov-report/dist/test-utils/order-more/models/order.js.html +1 -1
  52. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-event.js.html +1 -1
  53. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-line-item.js.html +1 -1
  54. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel.js.html +1 -1
  55. package/coverage/lcov-report/dist/test-utils/order-more/models/physical-address.js.html +1 -1
  56. package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant-image.js.html +1 -1
  57. package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant.js.html +1 -1
  58. package/coverage/lcov-report/dist/test-utils/order-more/models/product.js.html +1 -1
  59. package/coverage/lcov-report/dist/test-utils/order-more/models/refund.js.html +1 -1
  60. package/coverage/lcov-report/dist/test-utils/order-more/models/shipment-actual-product-variant.js.html +1 -1
  61. package/coverage/lcov-report/dist/test-utils/order-more/models/shipment.js.html +1 -1
  62. package/coverage/lcov-report/dist/test-utils/order-more/models/size.js.html +1 -1
  63. package/coverage/lcov-report/dist/test-utils/order-more/models/utm-medium.js.html +1 -1
  64. package/coverage/lcov-report/dist/test-utils/order-more/models/utm-source.js.html +1 -1
  65. package/coverage/lcov-report/dist/test-utils/six/entities.js.html +1 -1
  66. package/coverage/lcov-report/dist/test-utils/six/index.html +1 -1
  67. package/coverage/lcov-report/dist/test-utils/six/models/customer.js.html +1 -1
  68. package/coverage/lcov-report/dist/test-utils/six/models/index.html +1 -1
  69. package/coverage/lcov-report/dist/test-utils/six/models/line-item.js.html +1 -1
  70. package/coverage/lcov-report/dist/test-utils/six/models/order.js.html +1 -1
  71. package/coverage/lcov-report/dist/test-utils/six/models/parcel-line-item.js.html +1 -1
  72. package/coverage/lcov-report/dist/test-utils/six/models/parcel.js.html +1 -1
  73. package/coverage/lcov-report/dist/test-utils/thirteen/entities.js.html +1 -1
  74. package/coverage/lcov-report/dist/test-utils/thirteen/index.html +1 -1
  75. package/coverage/lcov-report/dist/test-utils/thirteen/models/audience.js.html +1 -1
  76. package/coverage/lcov-report/dist/test-utils/thirteen/models/brand.js.html +1 -1
  77. package/coverage/lcov-report/dist/test-utils/thirteen/models/category.js.html +1 -1
  78. package/coverage/lcov-report/dist/test-utils/thirteen/models/index.html +1 -1
  79. package/coverage/lcov-report/dist/test-utils/thirteen/models/member.js.html +1 -1
  80. package/coverage/lcov-report/dist/test-utils/thirteen/models/passion.js.html +1 -1
  81. package/coverage/lcov-report/dist/test-utils/thirteen/models/product.js.html +1 -1
  82. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation-audience.js.html +1 -1
  83. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation.js.html +1 -1
  84. package/coverage/lcov-report/dist/test-utils/three/index.html +1 -1
  85. package/coverage/lcov-report/dist/test-utils/three/results.js.html +1 -1
  86. package/coverage/lcov-report/dist/test-utils/twelve/entities.js.html +1 -1
  87. package/coverage/lcov-report/dist/test-utils/twelve/index.html +1 -1
  88. package/coverage/lcov-report/dist/test-utils/twelve/models/index.html +1 -1
  89. package/coverage/lcov-report/dist/test-utils/twelve/models/member.js.html +1 -1
  90. package/coverage/lcov-report/dist/test-utils/twelve/models/prompt.js.html +1 -1
  91. package/coverage/lcov-report/dist/test-utils/two/index.html +1 -1
  92. package/coverage/lcov-report/dist/test-utils/two/results.js.html +1 -1
  93. package/coverage/lcov-report/index.html +105 -27
  94. package/coverage/lcov-report/src/core.ts.html +235 -196
  95. package/coverage/lcov-report/src/driver-integrations/index.html +97 -0
  96. package/coverage/lcov-report/src/driver-integrations/pgp.ts.html +345 -0
  97. package/coverage/lcov-report/src/index.html +44 -18
  98. package/coverage/lcov-report/src/index.ts.html +3 -15
  99. package/coverage/lcov-report/src/orm.ts.html +256 -130
  100. package/coverage/lcov-report/test-utils/blog/entities.ts.html +1 -1
  101. package/coverage/lcov-report/test-utils/blog/index.html +1 -1
  102. package/coverage/lcov-report/test-utils/blog/models/article.ts.html +15 -15
  103. package/coverage/lcov-report/test-utils/blog/models/article_tag.ts.html +7 -7
  104. package/coverage/lcov-report/test-utils/blog/models/index.html +1 -1
  105. package/coverage/lcov-report/test-utils/blog/models/person.ts.html +13 -13
  106. package/coverage/lcov-report/test-utils/blog/models/tag.ts.html +4 -4
  107. package/coverage/lcov-report/test-utils/five/entities.ts.html +1 -1
  108. package/coverage/lcov-report/test-utils/five/index.html +1 -1
  109. package/coverage/lcov-report/test-utils/five/models/index.html +1 -1
  110. package/coverage/lcov-report/test-utils/five/models/line-item.ts.html +1 -1
  111. package/coverage/lcov-report/test-utils/five/models/order.ts.html +1 -1
  112. package/coverage/lcov-report/test-utils/five/models/parcel-event.ts.html +1 -1
  113. package/coverage/lcov-report/test-utils/five/models/parcel-line-item.ts.html +1 -1
  114. package/coverage/lcov-report/test-utils/five/models/parcel.ts.html +1 -1
  115. package/coverage/lcov-report/test-utils/fourteen/entities.ts.html +78 -0
  116. package/coverage/lcov-report/test-utils/fourteen/index.html +97 -0
  117. package/coverage/lcov-report/test-utils/fourteen/models/customer.ts.html +177 -0
  118. package/coverage/lcov-report/test-utils/fourteen/models/index.html +110 -0
  119. package/coverage/lcov-report/test-utils/fourteen/models/person.ts.html +150 -0
  120. package/coverage/lcov-report/test-utils/nine/entities.ts.html +1 -1
  121. package/coverage/lcov-report/test-utils/nine/index.html +1 -1
  122. package/coverage/lcov-report/test-utils/nine/models/feature-switch.ts.html +1 -1
  123. package/coverage/lcov-report/test-utils/nine/models/index.html +1 -1
  124. package/coverage/lcov-report/test-utils/order/entities.ts.html +5 -5
  125. package/coverage/lcov-report/test-utils/order/index.html +1 -1
  126. package/coverage/lcov-report/test-utils/order/models/index.html +1 -1
  127. package/coverage/lcov-report/test-utils/order/models/line-item.ts.html +18 -18
  128. package/coverage/lcov-report/test-utils/order/models/order.ts.html +37 -37
  129. package/coverage/lcov-report/test-utils/order/models/product-variant.ts.html +18 -18
  130. package/coverage/lcov-report/test-utils/order/models/product.ts.html +13 -13
  131. package/coverage/lcov-report/test-utils/order/models/utm-source.ts.html +8 -8
  132. package/coverage/lcov-report/test-utils/order-more/entities.ts.html +1 -1
  133. package/coverage/lcov-report/test-utils/order-more/index.html +1 -1
  134. package/coverage/lcov-report/test-utils/order-more/models/actual-product-variant.ts.html +1 -1
  135. package/coverage/lcov-report/test-utils/order-more/models/color.ts.html +1 -1
  136. package/coverage/lcov-report/test-utils/order-more/models/customer.ts.html +1 -1
  137. package/coverage/lcov-report/test-utils/order-more/models/gender.ts.html +1 -1
  138. package/coverage/lcov-report/test-utils/order-more/models/index.html +1 -1
  139. package/coverage/lcov-report/test-utils/order-more/models/inventory-level.ts.html +1 -1
  140. package/coverage/lcov-report/test-utils/order-more/models/line-item.ts.html +1 -1
  141. package/coverage/lcov-report/test-utils/order-more/models/order.ts.html +1 -1
  142. package/coverage/lcov-report/test-utils/order-more/models/parcel-event.ts.html +1 -1
  143. package/coverage/lcov-report/test-utils/order-more/models/parcel-line-item.ts.html +1 -1
  144. package/coverage/lcov-report/test-utils/order-more/models/parcel.ts.html +1 -1
  145. package/coverage/lcov-report/test-utils/order-more/models/physical-address.ts.html +1 -1
  146. package/coverage/lcov-report/test-utils/order-more/models/product-variant-image.ts.html +1 -1
  147. package/coverage/lcov-report/test-utils/order-more/models/product-variant.ts.html +1 -1
  148. package/coverage/lcov-report/test-utils/order-more/models/product.ts.html +1 -1
  149. package/coverage/lcov-report/test-utils/order-more/models/refund.ts.html +1 -1
  150. package/coverage/lcov-report/test-utils/order-more/models/shipment-actual-product-variant.ts.html +1 -1
  151. package/coverage/lcov-report/test-utils/order-more/models/shipment.ts.html +1 -1
  152. package/coverage/lcov-report/test-utils/order-more/models/size.ts.html +1 -1
  153. package/coverage/lcov-report/test-utils/order-more/models/utm-medium.ts.html +1 -1
  154. package/coverage/lcov-report/test-utils/order-more/models/utm-source.ts.html +1 -1
  155. package/coverage/lcov-report/test-utils/six/entities.ts.html +1 -1
  156. package/coverage/lcov-report/test-utils/six/index.html +1 -1
  157. package/coverage/lcov-report/test-utils/six/models/customer.ts.html +1 -1
  158. package/coverage/lcov-report/test-utils/six/models/index.html +1 -1
  159. package/coverage/lcov-report/test-utils/six/models/line-item.ts.html +1 -1
  160. package/coverage/lcov-report/test-utils/six/models/order.ts.html +1 -1
  161. package/coverage/lcov-report/test-utils/six/models/parcel-line-item.ts.html +1 -1
  162. package/coverage/lcov-report/test-utils/six/models/parcel.ts.html +1 -1
  163. package/coverage/lcov-report/test-utils/thirteen/entities.ts.html +1 -1
  164. package/coverage/lcov-report/test-utils/thirteen/index.html +1 -1
  165. package/coverage/lcov-report/test-utils/thirteen/models/audience.ts.html +1 -1
  166. package/coverage/lcov-report/test-utils/thirteen/models/brand.ts.html +1 -1
  167. package/coverage/lcov-report/test-utils/thirteen/models/category.ts.html +1 -1
  168. package/coverage/lcov-report/test-utils/thirteen/models/index.html +1 -1
  169. package/coverage/lcov-report/test-utils/thirteen/models/member.ts.html +1 -1
  170. package/coverage/lcov-report/test-utils/thirteen/models/passion.ts.html +1 -1
  171. package/coverage/lcov-report/test-utils/thirteen/models/product.ts.html +1 -1
  172. package/coverage/lcov-report/test-utils/thirteen/models/recommendation-audience.ts.html +1 -1
  173. package/coverage/lcov-report/test-utils/thirteen/models/recommendation.ts.html +1 -1
  174. package/coverage/lcov-report/test-utils/three/index.html +1 -1
  175. package/coverage/lcov-report/test-utils/three/results.js.html +1 -1
  176. package/coverage/lcov-report/test-utils/twelve/entities.ts.html +1 -1
  177. package/coverage/lcov-report/test-utils/twelve/index.html +1 -1
  178. package/coverage/lcov-report/test-utils/twelve/models/index.html +1 -1
  179. package/coverage/lcov-report/test-utils/twelve/models/member.ts.html +1 -1
  180. package/coverage/lcov-report/test-utils/twelve/models/prompt.ts.html +1 -1
  181. package/coverage/lcov-report/test-utils/two/index.html +1 -1
  182. package/coverage/lcov-report/test-utils/two/results.js.html +1 -1
  183. package/coverage/lcov.info +1686 -1005
  184. package/dist/src/core.d.ts +1 -1
  185. package/dist/src/core.js +18 -8
  186. package/dist/src/core.spec.js +643 -540
  187. package/dist/src/driver-integrations/index.d.ts +1 -0
  188. package/dist/src/orm.d.ts +21 -0
  189. package/dist/src/orm.js +6 -2
  190. package/dist/src/orm.spec.d.ts +1 -0
  191. package/dist/src/orm.spec.js +102 -0
  192. package/dist/test-utils/fourteen/entities.d.ts +6 -0
  193. package/dist/test-utils/fourteen/entities.js +6 -0
  194. package/dist/test-utils/fourteen/entities.ts +3 -0
  195. package/dist/test-utils/fourteen/models/customer.d.ts +19 -0
  196. package/dist/test-utils/fourteen/models/customer.js +30 -0
  197. package/dist/test-utils/fourteen/models/customer.ts +36 -0
  198. package/dist/test-utils/fourteen/models/person.d.ts +17 -0
  199. package/dist/test-utils/fourteen/models/person.js +23 -0
  200. package/dist/test-utils/fourteen/models/person.ts +27 -0
  201. package/dist/test-utils/fourteen/results.json +8 -0
  202. package/dist/test-utils/order/entities.js +2 -2
  203. package/dist/test-utils/order/entities.ts +2 -2
  204. package/dist/test-utils/order/models/order.js +1 -1
  205. package/dist/test-utils/order/models/order.ts +1 -1
  206. package/package.json +1 -1
  207. package/src/core.spec.ts +1112 -986
  208. package/src/core.ts +27 -14
  209. package/src/driver-integrations/index.ts +2 -0
  210. package/src/orm.spec.ts +113 -0
  211. package/src/orm.ts +54 -8
  212. package/test-utils/fourteen/entities.ts +3 -0
  213. package/test-utils/fourteen/models/customer.ts +36 -0
  214. package/test-utils/fourteen/models/person.ts +27 -0
  215. package/test-utils/fourteen/results.json +8 -0
  216. package/test-utils/order/entities.ts +2 -2
  217. package/test-utils/order/models/order.ts +1 -1
@@ -20,31 +20,31 @@
20
20
  </h1>
21
21
  <div class='clearfix'>
22
22
  <div class='fl pad1y space-right2'>
23
- <span class="strong">20.93% </span>
23
+ <span class="strong">64.44% </span>
24
24
  <span class="quiet">Statements</span>
25
- <span class='fraction'>18/86</span>
25
+ <span class='fraction'>58/90</span>
26
26
  </div>
27
27
  <div class='fl pad1y space-right2'>
28
- <span class="strong">0% </span>
28
+ <span class="strong">76.92% </span>
29
29
  <span class="quiet">Branches</span>
30
- <span class='fraction'>0/11</span>
30
+ <span class='fraction'>10/13</span>
31
31
  </div>
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">2.7% </span>
33
+ <span class="strong">71.05% </span>
34
34
  <span class="quiet">Functions</span>
35
- <span class='fraction'>1/37</span>
35
+ <span class='fraction'>27/38</span>
36
36
  </div>
37
37
  <div class='fl pad1y space-right2'>
38
- <span class="strong">20.93% </span>
38
+ <span class="strong">64.44% </span>
39
39
  <span class="quiet">Lines</span>
40
- <span class='fraction'>18/86</span>
40
+ <span class='fraction'>58/90</span>
41
41
  </div>
42
42
  </div>
43
43
  <p class="quiet">
44
44
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
45
45
  </p>
46
46
  </div>
47
- <div class='status-line low'></div>
47
+ <div class='status-line medium'></div>
48
48
  <pre><table class="coverage">
49
49
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
50
50
  <a name='L2'></a><a href='#L2'>2</a>
@@ -341,7 +341,49 @@
341
341
  <a name='L293'></a><a href='#L293'>293</a>
342
342
  <a name='L294'></a><a href='#L294'>294</a>
343
343
  <a name='L295'></a><a href='#L295'>295</a>
344
- <a name='L296'></a><a href='#L296'>296</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
344
+ <a name='L296'></a><a href='#L296'>296</a>
345
+ <a name='L297'></a><a href='#L297'>297</a>
346
+ <a name='L298'></a><a href='#L298'>298</a>
347
+ <a name='L299'></a><a href='#L299'>299</a>
348
+ <a name='L300'></a><a href='#L300'>300</a>
349
+ <a name='L301'></a><a href='#L301'>301</a>
350
+ <a name='L302'></a><a href='#L302'>302</a>
351
+ <a name='L303'></a><a href='#L303'>303</a>
352
+ <a name='L304'></a><a href='#L304'>304</a>
353
+ <a name='L305'></a><a href='#L305'>305</a>
354
+ <a name='L306'></a><a href='#L306'>306</a>
355
+ <a name='L307'></a><a href='#L307'>307</a>
356
+ <a name='L308'></a><a href='#L308'>308</a>
357
+ <a name='L309'></a><a href='#L309'>309</a>
358
+ <a name='L310'></a><a href='#L310'>310</a>
359
+ <a name='L311'></a><a href='#L311'>311</a>
360
+ <a name='L312'></a><a href='#L312'>312</a>
361
+ <a name='L313'></a><a href='#L313'>313</a>
362
+ <a name='L314'></a><a href='#L314'>314</a>
363
+ <a name='L315'></a><a href='#L315'>315</a>
364
+ <a name='L316'></a><a href='#L316'>316</a>
365
+ <a name='L317'></a><a href='#L317'>317</a>
366
+ <a name='L318'></a><a href='#L318'>318</a>
367
+ <a name='L319'></a><a href='#L319'>319</a>
368
+ <a name='L320'></a><a href='#L320'>320</a>
369
+ <a name='L321'></a><a href='#L321'>321</a>
370
+ <a name='L322'></a><a href='#L322'>322</a>
371
+ <a name='L323'></a><a href='#L323'>323</a>
372
+ <a name='L324'></a><a href='#L324'>324</a>
373
+ <a name='L325'></a><a href='#L325'>325</a>
374
+ <a name='L326'></a><a href='#L326'>326</a>
375
+ <a name='L327'></a><a href='#L327'>327</a>
376
+ <a name='L328'></a><a href='#L328'>328</a>
377
+ <a name='L329'></a><a href='#L329'>329</a>
378
+ <a name='L330'></a><a href='#L330'>330</a>
379
+ <a name='L331'></a><a href='#L331'>331</a>
380
+ <a name='L332'></a><a href='#L332'>332</a>
381
+ <a name='L333'></a><a href='#L333'>333</a>
382
+ <a name='L334'></a><a href='#L334'>334</a>
383
+ <a name='L335'></a><a href='#L335'>335</a>
384
+ <a name='L336'></a><a href='#L336'>336</a>
385
+ <a name='L337'></a><a href='#L337'>337</a>
386
+ <a name='L338'></a><a href='#L338'>338</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
345
387
  <span class="cline-any cline-neutral">&nbsp;</span>
346
388
  <span class="cline-any cline-neutral">&nbsp;</span>
347
389
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -374,14 +416,11 @@
374
416
  <span class="cline-any cline-neutral">&nbsp;</span>
375
417
  <span class="cline-any cline-neutral">&nbsp;</span>
376
418
  <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-yes">1x</span>
378
419
  <span class="cline-any cline-neutral">&nbsp;</span>
379
420
  <span class="cline-any cline-neutral">&nbsp;</span>
380
421
  <span class="cline-any cline-neutral">&nbsp;</span>
381
422
  <span class="cline-any cline-neutral">&nbsp;</span>
382
423
  <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-yes">8x</span>
384
- <span class="cline-any cline-yes">8x</span>
385
424
  <span class="cline-any cline-neutral">&nbsp;</span>
386
425
  <span class="cline-any cline-neutral">&nbsp;</span>
387
426
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -397,113 +436,146 @@
397
436
  <span class="cline-any cline-neutral">&nbsp;</span>
398
437
  <span class="cline-any cline-neutral">&nbsp;</span>
399
438
  <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-yes">8x</span>
401
- <span class="cline-any cline-no">&nbsp;</span>
402
439
  <span class="cline-any cline-neutral">&nbsp;</span>
403
440
  <span class="cline-any cline-neutral">&nbsp;</span>
404
441
  <span class="cline-any cline-neutral">&nbsp;</span>
405
- <span class="cline-any cline-no">&nbsp;</span>
406
442
  <span class="cline-any cline-neutral">&nbsp;</span>
443
+ <span class="cline-any cline-yes">1x</span>
407
444
  <span class="cline-any cline-neutral">&nbsp;</span>
408
445
  <span class="cline-any cline-neutral">&nbsp;</span>
409
446
  <span class="cline-any cline-neutral">&nbsp;</span>
410
447
  <span class="cline-any cline-neutral">&nbsp;</span>
411
- <span class="cline-any cline-no">&nbsp;</span>
448
+ <span class="cline-any cline-yes">6x</span>
412
449
  <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-no">&nbsp;</span>
414
450
  <span class="cline-any cline-neutral">&nbsp;</span>
451
+ <span class="cline-any cline-yes">6x</span>
452
+ <span class="cline-any cline-yes">6x</span>
415
453
  <span class="cline-any cline-neutral">&nbsp;</span>
416
454
  <span class="cline-any cline-no">&nbsp;</span>
417
455
  <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-no">&nbsp;</span>
419
- <span class="cline-any cline-no">&nbsp;</span>
420
- <span class="cline-any cline-no">&nbsp;</span>
421
456
  <span class="cline-any cline-neutral">&nbsp;</span>
422
- <span class="cline-any cline-no">&nbsp;</span>
423
457
  <span class="cline-any cline-neutral">&nbsp;</span>
424
458
  <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-yes">8x</span>
426
- <span class="cline-any cline-no">&nbsp;</span>
427
459
  <span class="cline-any cline-neutral">&nbsp;</span>
428
460
  <span class="cline-any cline-neutral">&nbsp;</span>
429
461
  <span class="cline-any cline-neutral">&nbsp;</span>
430
- <span class="cline-any cline-no">&nbsp;</span>
431
462
  <span class="cline-any cline-neutral">&nbsp;</span>
463
+ <span class="cline-any cline-yes">6x</span>
432
464
  <span class="cline-any cline-neutral">&nbsp;</span>
433
465
  <span class="cline-any cline-neutral">&nbsp;</span>
466
+ <span class="cline-any cline-yes">1x</span>
434
467
  <span class="cline-any cline-neutral">&nbsp;</span>
435
468
  <span class="cline-any cline-neutral">&nbsp;</span>
436
469
  <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-no">&nbsp;</span>
470
+ <span class="cline-any cline-yes">24x</span>
438
471
  <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-no">&nbsp;</span>
440
- <span class="cline-any cline-no">&nbsp;</span>
441
- <span class="cline-any cline-no">&nbsp;</span>
442
472
  <span class="cline-any cline-neutral">&nbsp;</span>
443
473
  <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-no">&nbsp;</span>
445
474
  <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-no">&nbsp;</span>
447
- <span class="cline-any cline-no">&nbsp;</span>
448
- <span class="cline-any cline-no">&nbsp;</span>
449
475
  <span class="cline-any cline-neutral">&nbsp;</span>
476
+ <span class="cline-any cline-yes">4x</span>
450
477
  <span class="cline-any cline-neutral">&nbsp;</span>
451
- <span class="cline-any cline-yes">8x</span>
452
- <span class="cline-any cline-no">&nbsp;</span>
478
+ <span class="cline-any cline-yes">1x</span>
453
479
  <span class="cline-any cline-neutral">&nbsp;</span>
454
480
  <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-no">&nbsp;</span>
481
+ <span class="cline-any cline-yes">24x</span>
456
482
  <span class="cline-any cline-neutral">&nbsp;</span>
483
+ <span class="cline-any cline-yes">24x</span>
484
+ <span class="cline-any cline-yes">1x</span>
485
+ <span class="cline-any cline-yes">4x</span>
457
486
  <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <span class="cline-any cline-yes">1x</span>
458
488
  <span class="cline-any cline-neutral">&nbsp;</span>
459
489
  <span class="cline-any cline-neutral">&nbsp;</span>
490
+ <span class="cline-any cline-yes">6x</span>
460
491
  <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-no">&nbsp;</span>
462
- <span class="cline-any cline-no">&nbsp;</span>
463
492
  <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-no">&nbsp;</span>
465
493
  <span class="cline-any cline-neutral">&nbsp;</span>
494
+ <span class="cline-any cline-yes">1x</span>
466
495
  <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-no">&nbsp;</span>
468
496
  <span class="cline-any cline-neutral">&nbsp;</span>
469
497
  <span class="cline-any cline-neutral">&nbsp;</span>
498
+ <span class="cline-any cline-yes">24x</span>
470
499
  <span class="cline-any cline-neutral">&nbsp;</span>
471
- <span class="cline-any cline-no">&nbsp;</span>
472
- <span class="cline-any cline-no">&nbsp;</span>
473
500
  <span class="cline-any cline-neutral">&nbsp;</span>
474
501
  <span class="cline-any cline-neutral">&nbsp;</span>
475
502
  <span class="cline-any cline-neutral">&nbsp;</span>
476
503
  <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-yes">8x</span>
478
- <span class="cline-any cline-no">&nbsp;</span>
479
504
  <span class="cline-any cline-neutral">&nbsp;</span>
505
+ <span class="cline-any cline-yes">4x</span>
480
506
  <span class="cline-any cline-neutral">&nbsp;</span>
481
- <span class="cline-any cline-no">&nbsp;</span>
507
+ <span class="cline-any cline-yes">1x</span>
508
+ <span class="cline-any cline-yes">1x</span>
509
+ <span class="cline-any cline-yes">1x</span>
482
510
  <span class="cline-any cline-neutral">&nbsp;</span>
483
511
  <span class="cline-any cline-neutral">&nbsp;</span>
512
+ <span class="cline-any cline-yes">24x</span>
484
513
  <span class="cline-any cline-neutral">&nbsp;</span>
514
+ <span class="cline-any cline-yes">24x</span>
515
+ <span class="cline-any cline-yes">1x</span>
516
+ <span class="cline-any cline-yes">1x</span>
485
517
  <span class="cline-any cline-neutral">&nbsp;</span>
486
518
  <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-no">&nbsp;</span>
488
- <span class="cline-any cline-no">&nbsp;</span>
519
+ <span class="cline-any cline-yes">6x</span>
489
520
  <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-no">&nbsp;</span>
491
521
  <span class="cline-any cline-neutral">&nbsp;</span>
522
+ <span class="cline-any cline-yes">1x</span>
492
523
  <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-no">&nbsp;</span>
494
524
  <span class="cline-any cline-neutral">&nbsp;</span>
525
+ <span class="cline-any cline-yes">24x</span>
495
526
  <span class="cline-any cline-neutral">&nbsp;</span>
496
527
  <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-no">&nbsp;</span>
498
528
  <span class="cline-any cline-neutral">&nbsp;</span>
499
529
  <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-no">&nbsp;</span>
501
530
  <span class="cline-any cline-neutral">&nbsp;</span>
531
+ <span class="cline-any cline-yes">24x</span>
532
+ <span class="cline-any cline-yes">4x</span>
502
533
  <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-no">&nbsp;</span>
534
+ <span class="cline-any cline-yes">1x</span>
535
+ <span class="cline-any cline-neutral">&nbsp;</span>
536
+ <span class="cline-any cline-neutral">&nbsp;</span>
537
+ <span class="cline-any cline-yes">24x</span>
538
+ <span class="cline-any cline-neutral">&nbsp;</span>
539
+ <span class="cline-any cline-neutral">&nbsp;</span>
540
+ <span class="cline-any cline-neutral">&nbsp;</span>
541
+ <span class="cline-any cline-yes">24x</span>
542
+ <span class="cline-any cline-yes">1x</span>
504
543
  <span class="cline-any cline-neutral">&nbsp;</span>
505
544
  <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-yes">8x</span>
545
+ <span class="cline-any cline-neutral">&nbsp;</span>
546
+ <span class="cline-any cline-neutral">&nbsp;</span>
547
+ <span class="cline-any cline-yes">6x</span>
548
+ <span class="cline-any cline-neutral">&nbsp;</span>
549
+ <span class="cline-any cline-neutral">&nbsp;</span>
550
+ <span class="cline-any cline-yes">1x</span>
551
+ <span class="cline-any cline-neutral">&nbsp;</span>
552
+ <span class="cline-any cline-neutral">&nbsp;</span>
553
+ <span class="cline-any cline-yes">24x</span>
554
+ <span class="cline-any cline-neutral">&nbsp;</span>
555
+ <span class="cline-any cline-neutral">&nbsp;</span>
556
+ <span class="cline-any cline-neutral">&nbsp;</span>
557
+ <span class="cline-any cline-neutral">&nbsp;</span>
558
+ <span class="cline-any cline-neutral">&nbsp;</span>
559
+ <span class="cline-any cline-yes">24x</span>
560
+ <span class="cline-any cline-yes">4x</span>
561
+ <span class="cline-any cline-neutral">&nbsp;</span>
562
+ <span class="cline-any cline-yes">1x</span>
563
+ <span class="cline-any cline-neutral">&nbsp;</span>
564
+ <span class="cline-any cline-neutral">&nbsp;</span>
565
+ <span class="cline-any cline-yes">24x</span>
566
+ <span class="cline-any cline-neutral">&nbsp;</span>
567
+ <span class="cline-any cline-neutral">&nbsp;</span>
568
+ <span class="cline-any cline-neutral">&nbsp;</span>
569
+ <span class="cline-any cline-yes">24x</span>
570
+ <span class="cline-any cline-neutral">&nbsp;</span>
571
+ <span class="cline-any cline-neutral">&nbsp;</span>
572
+ <span class="cline-any cline-yes">4x</span>
573
+ <span class="cline-any cline-neutral">&nbsp;</span>
574
+ <span class="cline-any cline-neutral">&nbsp;</span>
575
+ <span class="cline-any cline-yes">1x</span>
576
+ <span class="cline-any cline-neutral">&nbsp;</span>
577
+ <span class="cline-any cline-neutral">&nbsp;</span>
578
+ <span class="cline-any cline-yes">6x</span>
507
579
  <span class="cline-any cline-no">&nbsp;</span>
508
580
  <span class="cline-any cline-no">&nbsp;</span>
509
581
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -521,20 +593,29 @@
521
593
  <span class="cline-any cline-no">&nbsp;</span>
522
594
  <span class="cline-any cline-neutral">&nbsp;</span>
523
595
  <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-yes">8x</span>
525
- <span class="cline-any cline-no">&nbsp;</span>
596
+ <span class="cline-any cline-yes">6x</span>
597
+ <span class="cline-any cline-yes">4x</span>
526
598
  <span class="cline-any cline-neutral">&nbsp;</span>
527
599
  <span class="cline-any cline-neutral">&nbsp;</span>
528
600
  <span class="cline-any cline-neutral">&nbsp;</span>
529
601
  <span class="cline-any cline-neutral">&nbsp;</span>
530
602
  <span class="cline-any cline-neutral">&nbsp;</span>
531
603
  <span class="cline-any cline-neutral">&nbsp;</span>
604
+ <span class="cline-any cline-yes">6x</span>
532
605
  <span class="cline-any cline-neutral">&nbsp;</span>
533
606
  <span class="cline-any cline-neutral">&nbsp;</span>
534
607
  <span class="cline-any cline-neutral">&nbsp;</span>
608
+ <span class="cline-any cline-yes">3x</span>
535
609
  <span class="cline-any cline-neutral">&nbsp;</span>
536
610
  <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-yes">8x</span>
611
+ <span class="cline-any cline-neutral">&nbsp;</span>
612
+ <span class="cline-any cline-neutral">&nbsp;</span>
613
+ <span class="cline-any cline-neutral">&nbsp;</span>
614
+ <span class="cline-any cline-neutral">&nbsp;</span>
615
+ <span class="cline-any cline-neutral">&nbsp;</span>
616
+ <span class="cline-any cline-neutral">&nbsp;</span>
617
+ <span class="cline-any cline-neutral">&nbsp;</span>
618
+ <span class="cline-any cline-yes">6x</span>
538
619
  <span class="cline-any cline-no">&nbsp;</span>
539
620
  <span class="cline-any cline-no">&nbsp;</span>
540
621
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -545,7 +626,7 @@
545
626
  <span class="cline-any cline-neutral">&nbsp;</span>
546
627
  <span class="cline-any cline-neutral">&nbsp;</span>
547
628
  <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-yes">8x</span>
629
+ <span class="cline-any cline-yes">6x</span>
549
630
  <span class="cline-any cline-no">&nbsp;</span>
550
631
  <span class="cline-any cline-no">&nbsp;</span>
551
632
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -553,11 +634,13 @@
553
634
  <span class="cline-any cline-neutral">&nbsp;</span>
554
635
  <span class="cline-any cline-neutral">&nbsp;</span>
555
636
  <span class="cline-any cline-neutral">&nbsp;</span>
637
+ <span class="cline-any cline-neutral">&nbsp;</span>
638
+ <span class="cline-any cline-neutral">&nbsp;</span>
556
639
  <span class="cline-any cline-no">&nbsp;</span>
557
640
  <span class="cline-any cline-neutral">&nbsp;</span>
558
641
  <span class="cline-any cline-neutral">&nbsp;</span>
559
642
  <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-yes">8x</span>
643
+ <span class="cline-any cline-yes">6x</span>
561
644
  <span class="cline-any cline-no">&nbsp;</span>
562
645
  <span class="cline-any cline-no">&nbsp;</span>
563
646
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -566,7 +649,7 @@
566
649
  <span class="cline-any cline-no">&nbsp;</span>
567
650
  <span class="cline-any cline-neutral">&nbsp;</span>
568
651
  <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-yes">8x</span>
652
+ <span class="cline-any cline-yes">6x</span>
570
653
  <span class="cline-any cline-no">&nbsp;</span>
571
654
  <span class="cline-any cline-no">&nbsp;</span>
572
655
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -575,7 +658,7 @@
575
658
  <span class="cline-any cline-no">&nbsp;</span>
576
659
  <span class="cline-any cline-neutral">&nbsp;</span>
577
660
  <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-yes">8x</span>
661
+ <span class="cline-any cline-yes">6x</span>
579
662
  <span class="cline-any cline-no">&nbsp;</span>
580
663
  <span class="cline-any cline-no">&nbsp;</span>
581
664
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -585,7 +668,7 @@
585
668
  <span class="cline-any cline-no">&nbsp;</span>
586
669
  <span class="cline-any cline-neutral">&nbsp;</span>
587
670
  <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-yes">8x</span>
671
+ <span class="cline-any cline-yes">6x</span>
589
672
  <span class="cline-any cline-no">&nbsp;</span>
590
673
  <span class="cline-any cline-no">&nbsp;</span>
591
674
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -595,7 +678,7 @@
595
678
  <span class="cline-any cline-no">&nbsp;</span>
596
679
  <span class="cline-any cline-neutral">&nbsp;</span>
597
680
  <span class="cline-any cline-neutral">&nbsp;</span>
598
- <span class="cline-any cline-yes">8x</span>
681
+ <span class="cline-any cline-yes">6x</span>
599
682
  <span class="cline-any cline-neutral">&nbsp;</span>
600
683
  <span class="cline-any cline-neutral">&nbsp;</span>
601
684
  <span class="cline-any cline-no">&nbsp;</span>
@@ -607,7 +690,7 @@
607
690
  <span class="cline-any cline-no">&nbsp;</span>
608
691
  <span class="cline-any cline-neutral">&nbsp;</span>
609
692
  <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-yes">8x</span>
693
+ <span class="cline-any cline-yes">6x</span>
611
694
  <span class="cline-any cline-no">&nbsp;</span>
612
695
  <span class="cline-any cline-no">&nbsp;</span>
613
696
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -617,7 +700,8 @@
617
700
  <span class="cline-any cline-no">&nbsp;</span>
618
701
  <span class="cline-any cline-neutral">&nbsp;</span>
619
702
  <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-yes">8x</span>
703
+ <span class="cline-any cline-yes">6x</span>
704
+ <span class="cline-any cline-neutral">&nbsp;</span>
621
705
  <span class="cline-any cline-neutral">&nbsp;</span>
622
706
  <span class="cline-any cline-neutral">&nbsp;</span>
623
707
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -637,8 +721,8 @@
637
721
  <span class="cline-any cline-neutral">&nbsp;</span>
638
722
  <span class="cline-any cline-neutral">&nbsp;</span>
639
723
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { createCore, IModel, ICollection, IEntities } from './core';
640
- import { ICoreIntegratedDriver } from './drivers/pgp';
641
- import { createForPGP } from './drivers/pgp';
724
+ import { ICoreIntegratedDriver } from './driver-integrations/index';
725
+ import { createForPGP } from './driver-integrations/pgp';
642
726
  &nbsp;
643
727
  export interface ICreateOptions {
644
728
  entities: IEntities&lt;IModel&gt;;
@@ -647,7 +731,6 @@ export interface ICreateOptions {
647
731
  }
648
732
  &nbsp;
649
733
  export interface IPureORM extends ICoreIntegratedDriver {
650
- &nbsp;
651
734
  /* ------------------------------------------------------------------------*/
652
735
  /* Built-in basic CRUD functions ------------------------------------------*/
653
736
  /* ------------------------------------------------------------------------*/
@@ -664,9 +747,34 @@ export interface IPureORM extends ICoreIntegratedDriver {
664
747
  getAnyMatching: &lt;T extends ICollection&lt;IModel&gt;&gt;(model: IModel) =&gt; T | void;
665
748
  getAllMatching: &lt;T extends ICollection&lt;IModel&gt;&gt;(model: IModel) =&gt; T;
666
749
  create: &lt;T extends IModel&gt;(model: T) =&gt; T;
667
- update: &lt;T extends IModel&gt;(model: T, options: { on: string } ) =&gt; T;
750
+ update: &lt;T extends IModel&gt;(model: T, options: { on: string }) =&gt; T;
668
751
  delete: &lt;T extends IModel&gt;(model: T) =&gt; void;
669
752
  deleteMatching: &lt;T extends IModel&gt;(model: T) =&gt; void;
753
+ &nbsp;
754
+ /* ------------------------------------------------------------------------*/
755
+ /* Helper Utility Functions -----------------------------------------------*/
756
+ /* ------------------------------------------------------------------------*/
757
+ &nbsp;
758
+ getSqlInsertParts: (model: IModel) =&gt; {
759
+ columns: string;
760
+ values: Array&lt;string&gt;;
761
+ valuesVar: Array&lt;string&gt;;
762
+ };
763
+ getSqlUpdateParts: (
764
+ model: IModel,
765
+ on?: string
766
+ ) =&gt; { clause: string; idVar: string; values: Array&lt;string&gt; };
767
+ getMatchingParts: (model: IModel) =&gt; {
768
+ whereClause: string;
769
+ values: Array&lt;string&gt;;
770
+ };
771
+ getMatchingPartsObject: (model: IModel) =&gt; {
772
+ whereClause: string;
773
+ values: Array&lt;string&gt;;
774
+ };
775
+ getNewWith: (model: IModel, sqlColumns: any, values: any) =&gt; IModel;
776
+ getValueBySqlColumn: (model: IModel, sqlColumn: string) =&gt; string;
777
+ getSqlColumnForPropertyName: (model: IModel, propertyName: string) =&gt; string;
670
778
  }
671
779
  &nbsp;
672
780
  export const create = ({
@@ -674,131 +782,137 @@ export const create = ({
674
782
  db,
675
783
  logError
676
784
  }: ICreateOptions): IPureORM =&gt; {
677
- &nbsp;
678
785
  const core = createCore({ entities: externalEntities });
679
- const orm = createForPGP({core, db, logError});
680
786
  &nbsp;
681
- /*
682
- let orm: ReturnType&lt;typeof createCore&gt;;
683
- if (db.$config.pgp) {
684
- createForPGP({core, db, logError});
787
+ let orm: ICoreIntegratedDriver;
788
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (db.$config.pgp) {
789
+ orm = createForPGP({ core, db, logError });
685
790
  } else {
686
- throw new Error(`You're database driver is not yet supported. You can make a PR to add it, or use the \`createORM\` export which doesn't try to abstract over the database driver, and instead you pass the results of the database driver queries to it.`);
791
+ <span class="cstat-no" title="statement not covered" > throw new Error(</span>
792
+ `You're database driver is not yet supported. You can make a PR to add it, or use the \`createCore\` export which doesn't try to abstract over the database driver, and instead you pass the results of the database driver queries to it.`
793
+ );
687
794
  }
688
- */
689
- &nbsp;
690
795
  &nbsp;
691
796
  /* ------------------------------------------------------------------------*/
692
797
  /* Helper Utilities for CRUD functions ------------------------------------*/
693
798
  /* ------------------------------------------------------------------------*/
694
799
  &nbsp;
695
- const getSqlInsertParts = <span class="fstat-no" title="function not covered" >(m</span>odel: IModel) =&gt; {
696
- const columns = <span class="cstat-no" title="statement not covered" >orm</span>
800
+ const getSqlInsertParts = (
801
+ model: IModel
802
+ ): { columns: string; values: Array&lt;string&gt;; valuesVar: Array&lt;string&gt; } =&gt; {
803
+ const columns = orm
697
804
  .getEntityByModel(model)
698
805
  .columnNames.filter(
699
- <span class="fstat-no" title="function not covered" > (c</span>olumn: string, index: number) =&gt;
700
- <span class="cstat-no" title="statement not covered" > model[</span>
806
+ (column: string, index: number) =&gt;
807
+ model[
701
808
  orm.getEntityByModel(model).propertyNames[
702
809
  index
703
810
  ] as keyof typeof model
704
811
  ] !== void 0
705
812
  )
706
- .map(<span class="fstat-no" title="function not covered" >(c</span>ol: string) =&gt; <span class="cstat-no" title="statement not covered" >`"${col}"`)</span>
813
+ .map((col: string) =&gt; `"${col}"`)
707
814
  .join(', ');
708
- const values = <span class="cstat-no" title="statement not covered" >orm</span>
815
+ const values = orm
709
816
  .getEntityByModel(model)
710
817
  .propertyNames.map(
711
- <span class="fstat-no" title="function not covered" > (p</span>roperty: string) =&gt; <span class="cstat-no" title="statement not covered" >model[property as keyof typeof model]</span>
818
+ (property: string) =&gt; model[property as keyof typeof model]
712
819
  )
713
- .filter(<span class="fstat-no" title="function not covered" >(v</span>alue: any) =&gt; <span class="cstat-no" title="statement not covered" >value !== void 0)</span>;
714
- const valuesVar = <span class="cstat-no" title="statement not covered" >values.map(</span>
715
- <span class="fstat-no" title="function not covered" > (v</span>alue: any, index: number) =&gt; <span class="cstat-no" title="statement not covered" >`$${index + 1}`</span>
820
+ .filter((value: any) =&gt; value !== void 0);
821
+ const valuesVar = values.map(
822
+ (value: any, index: number) =&gt; `$${index + 1}`
716
823
  );
717
- <span class="cstat-no" title="statement not covered" > return { columns, values, valuesVar };</span>
824
+ return { columns, values, valuesVar };
718
825
  };
719
826
  &nbsp;
720
- const getSqlUpdateParts = <span class="fstat-no" title="function not covered" >(m</span>odel: IModel, on = <span class="branch-0 cbranch-no" title="branch not covered" >'id')</span> =&gt; {
721
- const clauseArray = <span class="cstat-no" title="statement not covered" >orm</span>
827
+ const getSqlUpdateParts = (
828
+ model: IModel,
829
+ on = 'id'
830
+ ): { clause: string; idVar: string; values: Array&lt;string&gt; } =&gt; {
831
+ const clauseArray = orm
722
832
  .getEntityByModel(model)
723
833
  .columnNames.filter(
724
- <span class="fstat-no" title="function not covered" > (s</span>qlColumn: string, index: number) =&gt;
725
- <span class="cstat-no" title="statement not covered" > model[</span>
834
+ (sqlColumn: string, index: number) =&gt;
835
+ model[
726
836
  orm.getEntityByModel(model).propertyNames[
727
837
  index
728
838
  ] as keyof typeof model
729
839
  ] !== void 0
730
840
  )
731
841
  .map(
732
- <span class="fstat-no" title="function not covered" > (s</span>qlColumn: string, index: number) =&gt; <span class="cstat-no" title="statement not covered" >`"${sqlColumn}" = $${index + 1}`</span>
842
+ (sqlColumn: string, index: number) =&gt; `"${sqlColumn}" = $${index + 1}`
733
843
  );
734
- const clause = <span class="cstat-no" title="statement not covered" >clauseArray.join(', ');</span>
735
- const idVar = <span class="cstat-no" title="statement not covered" >`$${clauseArray.length + 1}`;</span>
736
- const _values = <span class="cstat-no" title="statement not covered" >orm</span>
844
+ const clause = clauseArray.join(', ');
845
+ const idVar = `$${clauseArray.length + 1}`;
846
+ const _values = orm
737
847
  .getEntityByModel(model)
738
848
  .propertyNames.map(
739
- <span class="fstat-no" title="function not covered" > (p</span>roperty: string) =&gt; <span class="cstat-no" title="statement not covered" >model[property as keyof typeof model]</span>
849
+ (property: string) =&gt; model[property as keyof typeof model]
740
850
  )
741
- .filter(<span class="fstat-no" title="function not covered" >(v</span>alue: any) =&gt; <span class="cstat-no" title="statement not covered" >value !== void 0)</span>;
742
- const values = <span class="cstat-no" title="statement not covered" >[..._values, model[on as keyof typeof model]];</span>
743
- <span class="cstat-no" title="statement not covered" > return { clause, idVar, values };</span>
851
+ .filter((value: any) =&gt; value !== void 0);
852
+ const values = [..._values, model[on as keyof typeof model]];
853
+ return { clause, idVar, values };
744
854
  };
745
855
  &nbsp;
746
- const getMatchingParts = <span class="fstat-no" title="function not covered" >(m</span>odel: IModel) =&gt; {
747
- const whereClause = <span class="cstat-no" title="statement not covered" >orm</span>
856
+ const getMatchingParts = (
857
+ model: IModel
858
+ ): { whereClause: string; values: Array&lt;string&gt; } =&gt; {
859
+ const whereClause = orm
748
860
  .getEntityByModel(model)
749
- .propertyNames.map(<span class="fstat-no" title="function not covered" >(p</span>roperty: string, index: number) =&gt;
750
- <span class="cstat-no" title="statement not covered" > model[property as keyof typeof model] != null</span>
861
+ .propertyNames.map((property: string, index: number) =&gt;
862
+ model[property as keyof typeof model] != null
751
863
  ? `"${orm.getEntityByModel(model).tableName}"."${
752
864
  orm.getEntityByModel(model).columnNames[index]
753
865
  }"`
754
866
  : null
755
867
  )
756
- .filter(<span class="fstat-no" title="function not covered" >(x</span>: string | null) =&gt; <span class="cstat-no" title="statement not covered" >x != null)</span>
757
- .map(<span class="fstat-no" title="function not covered" >(x</span>: string | null, i: number) =&gt; <span class="cstat-no" title="statement not covered" >`${x} = $${i + 1}`)</span>
868
+ .filter((x: string | null) =&gt; x != null)
869
+ .map((x: string | null, i: number) =&gt; `${x} = $${i + 1}`)
758
870
  .join(' AND ');
759
- const values = <span class="cstat-no" title="statement not covered" >orm</span>
871
+ const values = orm
760
872
  .getEntityByModel(model)
761
- .propertyNames.map(<span class="fstat-no" title="function not covered" >(p</span>roperty: string) =&gt;
762
- <span class="cstat-no" title="statement not covered" > model[property as keyof typeof model] != null</span>
873
+ .propertyNames.map((property: string) =&gt;
874
+ model[property as keyof typeof model] != null
763
875
  ? model[property as keyof typeof model]
764
876
  : null
765
877
  )
766
- .filter(<span class="fstat-no" title="function not covered" >(x</span>: any) =&gt; <span class="cstat-no" title="statement not covered" >x != null)</span>;
767
- <span class="cstat-no" title="statement not covered" > return { whereClause, values };</span>
878
+ .filter((x: any) =&gt; x != null);
879
+ return { whereClause, values };
768
880
  };
769
881
  &nbsp;
770
882
  // This one returns an object, which allows it to be more versatile.
771
883
  // To-do: make this one even better and use it instead of the one above.
772
- const getMatchingPartsObject = <span class="fstat-no" title="function not covered" >(m</span>odel: IModel) =&gt; {
773
- const whereClause = <span class="cstat-no" title="statement not covered" >orm</span>
884
+ const getMatchingPartsObject = (
885
+ model: IModel
886
+ ): { whereClause: string; values: Array&lt;string&gt; } =&gt; {
887
+ const whereClause = orm
774
888
  .getEntityByModel(model)
775
- .propertyNames.map(<span class="fstat-no" title="function not covered" >(p</span>roperty: string, index: number) =&gt;
776
- <span class="cstat-no" title="statement not covered" > model[property as keyof typeof model] != null</span>
889
+ .propertyNames.map((property: string, index: number) =&gt;
890
+ model[property as keyof typeof model] != null
777
891
  ? `"${orm.getEntityByModel(model).tableName}"."${
778
892
  orm.getEntityByModel(model).columnNames[index]
779
893
  }"`
780
894
  : null
781
895
  )
782
- .filter(<span class="fstat-no" title="function not covered" >(x</span>: string | null) =&gt; <span class="cstat-no" title="statement not covered" >x != null)</span>
783
- .map(<span class="fstat-no" title="function not covered" >(x</span>: string | null, i: number) =&gt; <span class="cstat-no" title="statement not covered" >`${x} = $(${i + 1})`)</span>
896
+ .filter((x: string | null) =&gt; x != null)
897
+ .map((x: string | null, i: number) =&gt; `${x} = $(${i + 1})`)
784
898
  .join(' AND ');
785
- const values = <span class="cstat-no" title="statement not covered" >orm</span>
899
+ const values = orm
786
900
  .getEntityByModel(model)
787
- .propertyNames.map(<span class="fstat-no" title="function not covered" >(p</span>roperty: string) =&gt;
788
- <span class="cstat-no" title="statement not covered" > model[property as keyof typeof model] != null</span>
901
+ .propertyNames.map((property: string) =&gt;
902
+ model[property as keyof typeof model] != null
789
903
  ? model[property as keyof typeof model]
790
904
  : null
791
905
  )
792
- .filter(<span class="fstat-no" title="function not covered" >(x</span>: any) =&gt; <span class="cstat-no" title="statement not covered" >x != null)</span>
906
+ .filter((x: any) =&gt; x != null)
793
907
  .reduce(
794
- <span class="fstat-no" title="function not covered" > (a</span>ccum: any, val: any, index: number) =&gt;
795
- <span class="cstat-no" title="statement not covered" > Object.assign({}, accum, { [index + 1]: val }),</span>
908
+ (accum: any, val: any, index: number) =&gt;
909
+ Object.assign({}, accum, { [index + 1]: val }),
796
910
  {}
797
911
  );
798
- <span class="cstat-no" title="statement not covered" > return { whereClause, values };</span>
912
+ return { whereClause, values };
799
913
  };
800
914
  &nbsp;
801
- const getNewWith = <span class="fstat-no" title="function not covered" >(m</span>odel: IModel, sqlColumns: any, values: any) =&gt; {
915
+ const getNewWith = <span class="fstat-no" title="function not covered" >(m</span>odel: IModel, sqlColumns: any, values: any): IModel =&gt; {
802
916
  const Constructor = <span class="cstat-no" title="statement not covered" >model.constructor as any;</span>
803
917
  const modelKeys = <span class="cstat-no" title="statement not covered" >sqlColumns.map(</span>
804
918
  <span class="fstat-no" title="function not covered" > (k</span>ey: string) =&gt;
@@ -816,13 +930,22 @@ export const create = ({
816
930
  <span class="cstat-no" title="statement not covered" > return new Constructor(modelData);</span>
817
931
  };
818
932
  &nbsp;
819
- const getValueBySqlColumn = <span class="fstat-no" title="function not covered" >(m</span>odel: IModel, sqlColumn: string) =&gt; {
820
- <span class="cstat-no" title="statement not covered" > return model[</span>
933
+ const getValueBySqlColumn = (model: IModel, sqlColumn: string): string =&gt; {
934
+ return model[
821
935
  orm.getEntityByModel(model).propertyNames[
822
936
  orm.getEntityByModel(model).columnNames.indexOf(sqlColumn)
823
937
  ] as keyof typeof model
824
938
  ];
825
939
  };
940
+ &nbsp;
941
+ const getSqlColumnForPropertyName = (
942
+ model: IModel,
943
+ propertyName: string
944
+ ): string =&gt; {
945
+ return orm.getEntityByModel(model).columnNames[
946
+ orm.getEntityByModel(model).propertyNames.indexOf(propertyName)
947
+ ];
948
+ };
826
949
  &nbsp;
827
950
  /* ------------------------------------------------------------------------*/
828
951
  /* Built-in basic CRUD functions ------------------------------------------*/
@@ -845,7 +968,9 @@ export const create = ({
845
968
  const query = <span class="cstat-no" title="statement not covered" >`</span>
846
969
  UPDATE "${orm.getEntityByModel(model).tableName}"
847
970
  SET ${clause}
848
- WHERE "${orm.getEntityByModel(model).tableName}".${on} = ${idVar}
971
+ WHERE "${
972
+ orm.getEntityByModel(model).tableName
973
+ }".${getSqlColumnForPropertyName(model, on)} = ${idVar}
849
974
  RETURNING ${orm.getEntityByModel(model).selectColumnsClause};
850
975
  `;
851
976
  <span class="cstat-no" title="statement not covered" > return orm.one&lt;T&gt;(query, values);</span>
@@ -928,7 +1053,8 @@ export const create = ({
928
1053
  getMatchingParts,
929
1054
  getMatchingPartsObject,
930
1055
  getNewWith,
931
- getValueBySqlColumn
1056
+ getValueBySqlColumn,
1057
+ getSqlColumnForPropertyName
932
1058
  });
933
1059
  };
934
1060
  &nbsp;</pre></td></tr>
@@ -937,7 +1063,7 @@ export const create = ({
937
1063
  </div><!-- /wrapper -->
938
1064
  <div class='footer quiet pad2 space-top1 center small'>
939
1065
  Code coverage
940
- generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon May 09 2022 09:01:16 GMT-0400 (Eastern Daylight Time)
1066
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat Dec 23 2023 12:48:55 GMT-0500 (Eastern Standard Time)
941
1067
  </div>
942
1068
  </div>
943
1069
  <script src="../prettify.js"></script>