pure-orm 4.0.0-5 → 4.0.0-8

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 (311) hide show
  1. package/README.md +14 -20
  2. package/coverage/clover.xml +375 -577
  3. package/coverage/coverage-final.json +18 -20
  4. package/coverage/lcov-report/dist/src/core.js.html +1038 -0
  5. package/coverage/lcov-report/dist/src/drivers/index.html +97 -0
  6. package/coverage/lcov-report/dist/src/drivers/pgp.js.html +240 -0
  7. package/coverage/lcov-report/dist/src/factory.js.html +293 -197
  8. package/coverage/lcov-report/dist/src/index.html +20 -33
  9. package/coverage/lcov-report/dist/src/index.js.html +16 -10
  10. package/coverage/lcov-report/dist/src/orm.js.html +645 -0
  11. package/coverage/lcov-report/dist/test-utils/blog/entities.js.html +108 -0
  12. package/coverage/lcov-report/dist/test-utils/blog/index.html +6 -6
  13. package/coverage/lcov-report/dist/test-utils/blog/models/article.js.html +1 -1
  14. package/coverage/lcov-report/dist/test-utils/blog/models/article_tag.js.html +1 -1
  15. package/coverage/lcov-report/dist/test-utils/blog/models/index.html +1 -1
  16. package/coverage/lcov-report/dist/test-utils/blog/models/person.js.html +1 -1
  17. package/coverage/lcov-report/dist/test-utils/blog/models/tag.js.html +1 -1
  18. package/coverage/lcov-report/dist/test-utils/blog/orm.js.html +1 -1
  19. package/coverage/lcov-report/dist/test-utils/five/entities.js.html +114 -0
  20. package/coverage/lcov-report/dist/test-utils/five/index.html +6 -6
  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 +1 -1
  23. package/coverage/lcov-report/dist/test-utils/five/models/order.js.html +1 -1
  24. package/coverage/lcov-report/dist/test-utils/five/models/parcel-event.js.html +1 -1
  25. package/coverage/lcov-report/dist/test-utils/five/models/parcel-line-item.js.html +1 -1
  26. package/coverage/lcov-report/dist/test-utils/five/models/parcel.js.html +1 -1
  27. package/coverage/lcov-report/dist/test-utils/five/orm.js.html +1 -1
  28. package/coverage/lcov-report/dist/test-utils/nine/entities.js.html +84 -0
  29. package/coverage/lcov-report/dist/test-utils/nine/index.html +6 -6
  30. package/coverage/lcov-report/dist/test-utils/nine/models/feature-switch.js.html +1 -1
  31. package/coverage/lcov-report/dist/test-utils/nine/models/index.html +1 -1
  32. package/coverage/lcov-report/dist/test-utils/nine/orm.js.html +1 -1
  33. package/coverage/lcov-report/dist/test-utils/order/entities.js.html +114 -0
  34. package/coverage/lcov-report/dist/test-utils/order/index.html +6 -6
  35. package/coverage/lcov-report/dist/test-utils/order/models/index.html +1 -1
  36. package/coverage/lcov-report/dist/test-utils/order/models/line-item.js.html +1 -1
  37. package/coverage/lcov-report/dist/test-utils/order/models/order.js.html +1 -1
  38. package/coverage/lcov-report/dist/test-utils/order/models/product-variant.js.html +1 -1
  39. package/coverage/lcov-report/dist/test-utils/order/models/product.js.html +1 -1
  40. package/coverage/lcov-report/dist/test-utils/order/models/utm-source.js.html +1 -1
  41. package/coverage/lcov-report/dist/test-utils/order/orm.js.html +1 -1
  42. package/coverage/lcov-report/dist/test-utils/order-more/entities.js.html +204 -0
  43. package/coverage/lcov-report/dist/test-utils/order-more/index.html +6 -6
  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/order-more/orm.js.html +1 -1
  66. package/coverage/lcov-report/dist/test-utils/six/entities.js.html +114 -0
  67. package/coverage/lcov-report/dist/test-utils/six/index.html +6 -6
  68. package/coverage/lcov-report/dist/test-utils/six/models/customer.js.html +1 -1
  69. package/coverage/lcov-report/dist/test-utils/six/models/index.html +1 -1
  70. package/coverage/lcov-report/dist/test-utils/six/models/line-item.js.html +1 -1
  71. package/coverage/lcov-report/dist/test-utils/six/models/order.js.html +1 -1
  72. package/coverage/lcov-report/dist/test-utils/six/models/parcel-line-item.js.html +1 -1
  73. package/coverage/lcov-report/dist/test-utils/six/models/parcel.js.html +1 -1
  74. package/coverage/lcov-report/dist/test-utils/six/orm.js.html +1 -1
  75. package/coverage/lcov-report/dist/test-utils/thirteen/entities.js.html +132 -0
  76. package/coverage/lcov-report/dist/test-utils/thirteen/index.html +6 -6
  77. package/coverage/lcov-report/dist/test-utils/thirteen/models/audience.js.html +1 -1
  78. package/coverage/lcov-report/dist/test-utils/thirteen/models/brand.js.html +1 -1
  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 +1 -1
  81. package/coverage/lcov-report/dist/test-utils/thirteen/models/member.js.html +1 -1
  82. package/coverage/lcov-report/dist/test-utils/thirteen/models/passion.js.html +1 -1
  83. package/coverage/lcov-report/dist/test-utils/thirteen/models/product.js.html +1 -1
  84. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation-audience.js.html +1 -1
  85. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation.js.html +1 -1
  86. package/coverage/lcov-report/dist/test-utils/thirteen/orm.js.html +1 -1
  87. package/coverage/lcov-report/dist/test-utils/three/index.html +1 -1
  88. package/coverage/lcov-report/dist/test-utils/three/results.js.html +1 -1
  89. package/coverage/lcov-report/dist/test-utils/twelve/entities.js.html +87 -0
  90. package/coverage/lcov-report/dist/test-utils/twelve/index.html +6 -6
  91. package/coverage/lcov-report/dist/test-utils/twelve/models/index.html +1 -1
  92. package/coverage/lcov-report/dist/test-utils/twelve/models/member.js.html +1 -1
  93. package/coverage/lcov-report/dist/test-utils/twelve/models/prompt.js.html +1 -1
  94. package/coverage/lcov-report/dist/test-utils/twelve/orm.js.html +1 -1
  95. package/coverage/lcov-report/dist/test-utils/two/index.html +1 -1
  96. package/coverage/lcov-report/dist/test-utils/two/results.js.html +1 -1
  97. package/coverage/lcov-report/index.html +47 -47
  98. package/coverage/lcov-report/src/core.ts.html +1593 -0
  99. package/coverage/lcov-report/src/drivers/index.html +97 -0
  100. package/coverage/lcov-report/src/drivers/pgp.ts.html +516 -0
  101. package/coverage/lcov-report/src/factory.ts.html +436 -250
  102. package/coverage/lcov-report/src/index.html +20 -33
  103. package/coverage/lcov-report/src/index.ts.html +23 -5
  104. package/coverage/lcov-report/src/orm.ts.html +954 -0
  105. package/coverage/lcov-report/test-utils/blog/entities.ts.html +102 -0
  106. package/coverage/lcov-report/test-utils/blog/index.html +6 -6
  107. package/coverage/lcov-report/test-utils/blog/models/article.ts.html +1 -1
  108. package/coverage/lcov-report/test-utils/blog/models/article_tag.ts.html +1 -1
  109. package/coverage/lcov-report/test-utils/blog/models/index.html +1 -1
  110. package/coverage/lcov-report/test-utils/blog/models/person.ts.html +1 -1
  111. package/coverage/lcov-report/test-utils/blog/models/tag.ts.html +1 -1
  112. package/coverage/lcov-report/test-utils/blog/orm.ts.html +1 -1
  113. package/coverage/lcov-report/test-utils/five/entities.ts.html +105 -0
  114. package/coverage/lcov-report/test-utils/five/index.html +2 -2
  115. package/coverage/lcov-report/test-utils/five/models/index.html +1 -1
  116. package/coverage/lcov-report/test-utils/five/models/line-item.ts.html +1 -1
  117. package/coverage/lcov-report/test-utils/five/models/order.ts.html +1 -1
  118. package/coverage/lcov-report/test-utils/five/models/parcel-event.ts.html +1 -1
  119. package/coverage/lcov-report/test-utils/five/models/parcel-line-item.ts.html +1 -1
  120. package/coverage/lcov-report/test-utils/five/models/parcel.ts.html +1 -1
  121. package/coverage/lcov-report/test-utils/five/orm.ts.html +1 -1
  122. package/coverage/lcov-report/test-utils/nine/entities.ts.html +75 -0
  123. package/coverage/lcov-report/test-utils/nine/index.html +2 -2
  124. package/coverage/lcov-report/test-utils/nine/models/feature-switch.ts.html +1 -1
  125. package/coverage/lcov-report/test-utils/nine/models/index.html +1 -1
  126. package/coverage/lcov-report/test-utils/nine/orm.ts.html +1 -1
  127. package/coverage/lcov-report/test-utils/order/entities.ts.html +108 -0
  128. package/coverage/lcov-report/test-utils/order/index.html +2 -2
  129. package/coverage/lcov-report/test-utils/order/models/index.html +1 -1
  130. package/coverage/lcov-report/test-utils/order/models/line-item.ts.html +1 -1
  131. package/coverage/lcov-report/test-utils/order/models/order.ts.html +1 -1
  132. package/coverage/lcov-report/test-utils/order/models/product-variant.ts.html +1 -1
  133. package/coverage/lcov-report/test-utils/order/models/product.ts.html +1 -1
  134. package/coverage/lcov-report/test-utils/order/models/utm-source.ts.html +1 -1
  135. package/coverage/lcov-report/test-utils/order/orm.ts.html +1 -1
  136. package/coverage/lcov-report/test-utils/order-more/entities.ts.html +198 -0
  137. package/coverage/lcov-report/test-utils/order-more/index.html +2 -2
  138. package/coverage/lcov-report/test-utils/order-more/models/actual-product-variant.ts.html +1 -1
  139. package/coverage/lcov-report/test-utils/order-more/models/color.ts.html +1 -1
  140. package/coverage/lcov-report/test-utils/order-more/models/customer.ts.html +1 -1
  141. package/coverage/lcov-report/test-utils/order-more/models/gender.ts.html +1 -1
  142. package/coverage/lcov-report/test-utils/order-more/models/index.html +1 -1
  143. package/coverage/lcov-report/test-utils/order-more/models/inventory-level.ts.html +1 -1
  144. package/coverage/lcov-report/test-utils/order-more/models/line-item.ts.html +1 -1
  145. package/coverage/lcov-report/test-utils/order-more/models/order.ts.html +1 -1
  146. package/coverage/lcov-report/test-utils/order-more/models/parcel-event.ts.html +1 -1
  147. package/coverage/lcov-report/test-utils/order-more/models/parcel-line-item.ts.html +1 -1
  148. package/coverage/lcov-report/test-utils/order-more/models/parcel.ts.html +1 -1
  149. package/coverage/lcov-report/test-utils/order-more/models/physical-address.ts.html +1 -1
  150. package/coverage/lcov-report/test-utils/order-more/models/product-variant-image.ts.html +1 -1
  151. package/coverage/lcov-report/test-utils/order-more/models/product-variant.ts.html +1 -1
  152. package/coverage/lcov-report/test-utils/order-more/models/product.ts.html +1 -1
  153. package/coverage/lcov-report/test-utils/order-more/models/refund.ts.html +1 -1
  154. package/coverage/lcov-report/test-utils/order-more/models/shipment-actual-product-variant.ts.html +1 -1
  155. package/coverage/lcov-report/test-utils/order-more/models/shipment.ts.html +1 -1
  156. package/coverage/lcov-report/test-utils/order-more/models/size.ts.html +1 -1
  157. package/coverage/lcov-report/test-utils/order-more/models/utm-medium.ts.html +1 -1
  158. package/coverage/lcov-report/test-utils/order-more/models/utm-source.ts.html +1 -1
  159. package/coverage/lcov-report/test-utils/order-more/orm.ts.html +1 -1
  160. package/coverage/lcov-report/test-utils/six/entities.ts.html +105 -0
  161. package/coverage/lcov-report/test-utils/six/index.html +2 -2
  162. package/coverage/lcov-report/test-utils/six/models/customer.ts.html +1 -1
  163. package/coverage/lcov-report/test-utils/six/models/index.html +1 -1
  164. package/coverage/lcov-report/test-utils/six/models/line-item.ts.html +1 -1
  165. package/coverage/lcov-report/test-utils/six/models/order.ts.html +1 -1
  166. package/coverage/lcov-report/test-utils/six/models/parcel-line-item.ts.html +1 -1
  167. package/coverage/lcov-report/test-utils/six/models/parcel.ts.html +1 -1
  168. package/coverage/lcov-report/test-utils/six/orm.ts.html +1 -1
  169. package/coverage/lcov-report/test-utils/thirteen/entities.ts.html +123 -0
  170. package/coverage/lcov-report/test-utils/thirteen/index.html +2 -2
  171. package/coverage/lcov-report/test-utils/thirteen/models/audience.ts.html +1 -1
  172. package/coverage/lcov-report/test-utils/thirteen/models/brand.ts.html +1 -1
  173. package/coverage/lcov-report/test-utils/thirteen/models/category.ts.html +1 -1
  174. package/coverage/lcov-report/test-utils/thirteen/models/index.html +1 -1
  175. package/coverage/lcov-report/test-utils/thirteen/models/member.ts.html +1 -1
  176. package/coverage/lcov-report/test-utils/thirteen/models/passion.ts.html +1 -1
  177. package/coverage/lcov-report/test-utils/thirteen/models/product.ts.html +1 -1
  178. package/coverage/lcov-report/test-utils/thirteen/models/recommendation-audience.ts.html +1 -1
  179. package/coverage/lcov-report/test-utils/thirteen/models/recommendation.ts.html +1 -1
  180. package/coverage/lcov-report/test-utils/thirteen/orm.ts.html +1 -1
  181. package/coverage/lcov-report/test-utils/three/index.html +1 -1
  182. package/coverage/lcov-report/test-utils/three/results.js.html +1 -1
  183. package/coverage/lcov-report/test-utils/twelve/entities.ts.html +78 -0
  184. package/coverage/lcov-report/test-utils/twelve/index.html +2 -2
  185. package/coverage/lcov-report/test-utils/twelve/models/index.html +1 -1
  186. package/coverage/lcov-report/test-utils/twelve/models/member.ts.html +1 -1
  187. package/coverage/lcov-report/test-utils/twelve/models/prompt.ts.html +1 -1
  188. package/coverage/lcov-report/test-utils/twelve/orm.ts.html +1 -1
  189. package/coverage/lcov-report/test-utils/two/index.html +1 -1
  190. package/coverage/lcov-report/test-utils/two/results.js.html +1 -1
  191. package/coverage/lcov.info +726 -1143
  192. package/dist/example/factories/orm.d.ts +1 -47
  193. package/dist/example/models/employer.d.ts +1 -1
  194. package/dist/example/models/job.d.ts +1 -1
  195. package/dist/example/models/person.d.ts +1 -1
  196. package/dist/src/core.d.ts +66 -0
  197. package/dist/src/{factory.js → core.js} +51 -245
  198. package/dist/src/{factory.spec.d.ts → core.spec.d.ts} +0 -0
  199. package/dist/src/{factory.spec.js → core.spec.js} +56 -43
  200. package/dist/src/driver-integrations/index.d.ts +13 -0
  201. package/dist/src/driver-integrations/index.js +2 -0
  202. package/dist/src/driver-integrations/pgp.d.ts +2 -0
  203. package/dist/src/driver-integrations/pgp.js +57 -0
  204. package/dist/src/index.d.ts +2 -1
  205. package/dist/src/index.js +5 -3
  206. package/dist/src/orm.d.ts +20 -0
  207. package/dist/src/orm.js +190 -0
  208. package/dist/test-utils/blog/entities.d.ts +1 -0
  209. package/dist/test-utils/blog/{orm.js → entities.js} +7 -6
  210. package/dist/test-utils/blog/{orm.ts → entities.ts} +6 -6
  211. package/dist/test-utils/blog/models/article.d.ts +1 -1
  212. package/dist/test-utils/blog/models/article_tag.d.ts +1 -1
  213. package/dist/test-utils/blog/models/person.d.ts +1 -1
  214. package/dist/test-utils/blog/models/tag.d.ts +1 -1
  215. package/dist/test-utils/five/entities.d.ts +6 -0
  216. package/dist/test-utils/five/{orm.js → entities.js} +8 -12
  217. package/dist/test-utils/five/{orm.ts → entities.ts} +7 -12
  218. package/dist/test-utils/five/models/line-item.d.ts +1 -1
  219. package/dist/test-utils/five/models/order.d.ts +1 -1
  220. package/dist/test-utils/five/models/parcel-event.d.ts +1 -1
  221. package/dist/test-utils/five/models/parcel-line-item.d.ts +1 -1
  222. package/dist/test-utils/five/models/parcel.d.ts +1 -1
  223. package/dist/test-utils/nine/entities.d.ts +6 -0
  224. package/dist/test-utils/nine/entities.js +5 -0
  225. package/dist/test-utils/nine/entities.ts +2 -0
  226. package/dist/test-utils/nine/models/feature-switch.d.ts +1 -1
  227. package/dist/test-utils/order/entities.d.ts +26 -0
  228. package/dist/test-utils/order/{orm.js → entities.js} +8 -12
  229. package/{test-utils/order/orm.ts → dist/test-utils/order/entities.ts} +7 -12
  230. package/dist/test-utils/order/models/line-item.d.ts +1 -1
  231. package/dist/test-utils/order/models/order.d.ts +1 -1
  232. package/dist/test-utils/order/models/product-variant.d.ts +1 -1
  233. package/dist/test-utils/order/models/product.d.ts +1 -1
  234. package/dist/test-utils/order/models/utm-source.d.ts +1 -1
  235. package/dist/test-utils/order-more/entities.d.ts +6 -0
  236. package/dist/test-utils/order-more/{orm.js → entities.js} +23 -27
  237. package/dist/test-utils/order-more/{orm.ts → entities.ts} +22 -27
  238. package/dist/test-utils/order-more/models/actual-product-variant.d.ts +1 -1
  239. package/dist/test-utils/order-more/models/color.d.ts +1 -1
  240. package/dist/test-utils/order-more/models/customer.d.ts +1 -1
  241. package/dist/test-utils/order-more/models/gender.d.ts +1 -1
  242. package/dist/test-utils/order-more/models/inventory-level.d.ts +1 -1
  243. package/dist/test-utils/order-more/models/line-item.d.ts +1 -1
  244. package/dist/test-utils/order-more/models/order.d.ts +1 -1
  245. package/dist/test-utils/order-more/models/parcel-event.d.ts +1 -1
  246. package/dist/test-utils/order-more/models/parcel-line-item.d.ts +1 -1
  247. package/dist/test-utils/order-more/models/parcel.d.ts +1 -1
  248. package/dist/test-utils/order-more/models/physical-address.d.ts +1 -1
  249. package/dist/test-utils/order-more/models/product-variant-image.d.ts +1 -1
  250. package/dist/test-utils/order-more/models/product-variant.d.ts +1 -1
  251. package/dist/test-utils/order-more/models/product.d.ts +1 -1
  252. package/dist/test-utils/order-more/models/refund.d.ts +1 -1
  253. package/dist/test-utils/order-more/models/shipment-actual-product-variant.d.ts +1 -1
  254. package/dist/test-utils/order-more/models/shipment.d.ts +1 -1
  255. package/dist/test-utils/order-more/models/size.d.ts +1 -1
  256. package/dist/test-utils/order-more/models/utm-medium.d.ts +1 -1
  257. package/dist/test-utils/order-more/models/utm-source.d.ts +1 -1
  258. package/dist/test-utils/six/entities.d.ts +6 -0
  259. package/dist/test-utils/six/{orm.js → entities.js} +8 -12
  260. package/{test-utils/six/orm.ts → dist/test-utils/six/entities.ts} +7 -12
  261. package/dist/test-utils/six/models/customer.d.ts +1 -1
  262. package/dist/test-utils/six/models/line-item.d.ts +1 -1
  263. package/dist/test-utils/six/models/order.d.ts +1 -1
  264. package/dist/test-utils/six/models/parcel-line-item.d.ts +1 -1
  265. package/dist/test-utils/six/models/parcel.d.ts +1 -1
  266. package/dist/test-utils/thirteen/entities.d.ts +6 -0
  267. package/dist/test-utils/thirteen/{orm.js → entities.js} +11 -15
  268. package/dist/test-utils/thirteen/{orm.ts → entities.ts} +10 -15
  269. package/dist/test-utils/thirteen/models/audience.d.ts +1 -1
  270. package/dist/test-utils/thirteen/models/brand.d.ts +1 -1
  271. package/dist/test-utils/thirteen/models/category.d.ts +1 -1
  272. package/dist/test-utils/thirteen/models/member.d.ts +1 -1
  273. package/dist/test-utils/thirteen/models/passion.d.ts +1 -1
  274. package/dist/test-utils/thirteen/models/product.d.ts +1 -1
  275. package/dist/test-utils/thirteen/models/recommendation-audience.d.ts +1 -1
  276. package/dist/test-utils/thirteen/models/recommendation.d.ts +1 -1
  277. package/dist/test-utils/twelve/entities.d.ts +6 -0
  278. package/dist/test-utils/twelve/entities.js +6 -0
  279. package/dist/test-utils/twelve/entities.ts +3 -0
  280. package/dist/test-utils/twelve/models/member.d.ts +1 -1
  281. package/dist/test-utils/twelve/models/prompt.d.ts +1 -1
  282. package/package.json +4 -3
  283. package/src/{factory.spec.ts → core.spec.ts} +55 -41
  284. package/src/{factory.ts → core.ts} +102 -338
  285. package/src/driver-integrations/index.ts +56 -0
  286. package/src/driver-integrations/pgp.ts +92 -0
  287. package/src/index.ts +5 -3
  288. package/src/orm.ts +291 -0
  289. package/test-utils/blog/{orm.ts → entities.ts} +6 -6
  290. package/test-utils/five/{orm.ts → entities.ts} +7 -12
  291. package/test-utils/nine/entities.ts +2 -0
  292. package/{dist/test-utils/order/orm.ts → test-utils/order/entities.ts} +7 -12
  293. package/test-utils/order-more/{orm.ts → entities.ts} +22 -27
  294. package/{dist/test-utils/six/orm.ts → test-utils/six/entities.ts} +7 -12
  295. package/test-utils/thirteen/{orm.ts → entities.ts} +10 -15
  296. package/test-utils/twelve/entities.ts +3 -0
  297. package/dist/src/factory.d.ts +0 -100
  298. package/dist/test-utils/blog/orm.d.ts +0 -2
  299. package/dist/test-utils/five/orm.d.ts +0 -48
  300. package/dist/test-utils/nine/orm.d.ts +0 -48
  301. package/dist/test-utils/nine/orm.js +0 -9
  302. package/dist/test-utils/nine/orm.ts +0 -7
  303. package/dist/test-utils/order/orm.d.ts +0 -48
  304. package/dist/test-utils/order-more/orm.d.ts +0 -48
  305. package/dist/test-utils/six/orm.d.ts +0 -48
  306. package/dist/test-utils/thirteen/orm.d.ts +0 -48
  307. package/dist/test-utils/twelve/orm.d.ts +0 -48
  308. package/dist/test-utils/twelve/orm.js +0 -10
  309. package/dist/test-utils/twelve/orm.ts +0 -8
  310. package/test-utils/nine/orm.ts +0 -7
  311. package/test-utils/twelve/orm.ts +0 -8
@@ -20,24 +20,24 @@
20
20
  </h1>
21
21
  <div class='clearfix'>
22
22
  <div class='fl pad1y space-right2'>
23
- <span class="strong">62.91% </span>
23
+ <span class="strong">63.73% </span>
24
24
  <span class="quiet">Statements</span>
25
- <span class='fraction'>173/275</span>
25
+ <span class='fraction'>181/284</span>
26
26
  </div>
27
27
  <div class='fl pad1y space-right2'>
28
- <span class="strong">57.27% </span>
28
+ <span class="strong">58.12% </span>
29
29
  <span class="quiet">Branches</span>
30
- <span class='fraction'>63/110</span>
30
+ <span class='fraction'>68/117</span>
31
31
  </div>
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">46.24% </span>
33
+ <span class="strong">46.88% </span>
34
34
  <span class="quiet">Functions</span>
35
- <span class='fraction'>43/93</span>
35
+ <span class='fraction'>45/96</span>
36
36
  </div>
37
37
  <div class='fl pad1y space-right2'>
38
- <span class="strong">62.03% </span>
38
+ <span class="strong">62.91% </span>
39
39
  <span class="quiet">Lines</span>
40
- <span class='fraction'>165/266</span>
40
+ <span class='fraction'>173/275</span>
41
41
  </div>
42
42
  </div>
43
43
  <p class="quiet">
@@ -790,9 +790,69 @@
790
790
  <a name='L742'></a><a href='#L742'>742</a>
791
791
  <a name='L743'></a><a href='#L743'>743</a>
792
792
  <a name='L744'></a><a href='#L744'>744</a>
793
- <a name='L745'></a><a href='#L745'>745</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
794
- <span class="cline-any cline-neutral">&nbsp;</span>
795
- <span class="cline-any cline-neutral">&nbsp;</span>
793
+ <a name='L745'></a><a href='#L745'>745</a>
794
+ <a name='L746'></a><a href='#L746'>746</a>
795
+ <a name='L747'></a><a href='#L747'>747</a>
796
+ <a name='L748'></a><a href='#L748'>748</a>
797
+ <a name='L749'></a><a href='#L749'>749</a>
798
+ <a name='L750'></a><a href='#L750'>750</a>
799
+ <a name='L751'></a><a href='#L751'>751</a>
800
+ <a name='L752'></a><a href='#L752'>752</a>
801
+ <a name='L753'></a><a href='#L753'>753</a>
802
+ <a name='L754'></a><a href='#L754'>754</a>
803
+ <a name='L755'></a><a href='#L755'>755</a>
804
+ <a name='L756'></a><a href='#L756'>756</a>
805
+ <a name='L757'></a><a href='#L757'>757</a>
806
+ <a name='L758'></a><a href='#L758'>758</a>
807
+ <a name='L759'></a><a href='#L759'>759</a>
808
+ <a name='L760'></a><a href='#L760'>760</a>
809
+ <a name='L761'></a><a href='#L761'>761</a>
810
+ <a name='L762'></a><a href='#L762'>762</a>
811
+ <a name='L763'></a><a href='#L763'>763</a>
812
+ <a name='L764'></a><a href='#L764'>764</a>
813
+ <a name='L765'></a><a href='#L765'>765</a>
814
+ <a name='L766'></a><a href='#L766'>766</a>
815
+ <a name='L767'></a><a href='#L767'>767</a>
816
+ <a name='L768'></a><a href='#L768'>768</a>
817
+ <a name='L769'></a><a href='#L769'>769</a>
818
+ <a name='L770'></a><a href='#L770'>770</a>
819
+ <a name='L771'></a><a href='#L771'>771</a>
820
+ <a name='L772'></a><a href='#L772'>772</a>
821
+ <a name='L773'></a><a href='#L773'>773</a>
822
+ <a name='L774'></a><a href='#L774'>774</a>
823
+ <a name='L775'></a><a href='#L775'>775</a>
824
+ <a name='L776'></a><a href='#L776'>776</a>
825
+ <a name='L777'></a><a href='#L777'>777</a>
826
+ <a name='L778'></a><a href='#L778'>778</a>
827
+ <a name='L779'></a><a href='#L779'>779</a>
828
+ <a name='L780'></a><a href='#L780'>780</a>
829
+ <a name='L781'></a><a href='#L781'>781</a>
830
+ <a name='L782'></a><a href='#L782'>782</a>
831
+ <a name='L783'></a><a href='#L783'>783</a>
832
+ <a name='L784'></a><a href='#L784'>784</a>
833
+ <a name='L785'></a><a href='#L785'>785</a>
834
+ <a name='L786'></a><a href='#L786'>786</a>
835
+ <a name='L787'></a><a href='#L787'>787</a>
836
+ <a name='L788'></a><a href='#L788'>788</a>
837
+ <a name='L789'></a><a href='#L789'>789</a>
838
+ <a name='L790'></a><a href='#L790'>790</a>
839
+ <a name='L791'></a><a href='#L791'>791</a>
840
+ <a name='L792'></a><a href='#L792'>792</a>
841
+ <a name='L793'></a><a href='#L793'>793</a>
842
+ <a name='L794'></a><a href='#L794'>794</a>
843
+ <a name='L795'></a><a href='#L795'>795</a>
844
+ <a name='L796'></a><a href='#L796'>796</a>
845
+ <a name='L797'></a><a href='#L797'>797</a>
846
+ <a name='L798'></a><a href='#L798'>798</a>
847
+ <a name='L799'></a><a href='#L799'>799</a>
848
+ <a name='L800'></a><a href='#L800'>800</a>
849
+ <a name='L801'></a><a href='#L801'>801</a>
850
+ <a name='L802'></a><a href='#L802'>802</a>
851
+ <a name='L803'></a><a href='#L803'>803</a>
852
+ <a name='L804'></a><a href='#L804'>804</a>
853
+ <a name='L805'></a><a href='#L805'>805</a>
854
+ <a name='L806'></a><a href='#L806'>806</a>
855
+ <a name='L807'></a><a href='#L807'>807</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
796
856
  <span class="cline-any cline-neutral">&nbsp;</span>
797
857
  <span class="cline-any cline-neutral">&nbsp;</span>
798
858
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -853,10 +913,6 @@
853
913
  <span class="cline-any cline-neutral">&nbsp;</span>
854
914
  <span class="cline-any cline-neutral">&nbsp;</span>
855
915
  <span class="cline-any cline-yes">1x</span>
856
- <span class="cline-any cline-neutral">&nbsp;</span>
857
- <span class="cline-any cline-neutral">&nbsp;</span>
858
- <span class="cline-any cline-neutral">&nbsp;</span>
859
- <span class="cline-any cline-neutral">&nbsp;</span>
860
916
  <span class="cline-any cline-yes">8x</span>
861
917
  <span class="cline-any cline-neutral">&nbsp;</span>
862
918
  <span class="cline-any cline-yes">50x</span>
@@ -954,15 +1010,6 @@
954
1010
  <span class="cline-any cline-yes">38207x</span>
955
1011
  <span class="cline-any cline-neutral">&nbsp;</span>
956
1012
  <span class="cline-any cline-neutral">&nbsp;</span>
957
- <span class="cline-any cline-yes">8x</span>
958
- <span class="cline-any cline-no">&nbsp;</span>
959
- <span class="cline-any cline-no">&nbsp;</span>
960
- <span class="cline-any cline-no">&nbsp;</span>
961
- <span class="cline-any cline-neutral">&nbsp;</span>
962
- <span class="cline-any cline-neutral">&nbsp;</span>
963
- <span class="cline-any cline-no">&nbsp;</span>
964
- <span class="cline-any cline-neutral">&nbsp;</span>
965
- <span class="cline-any cline-neutral">&nbsp;</span>
966
1013
  <span class="cline-any cline-neutral">&nbsp;</span>
967
1014
  <span class="cline-any cline-neutral">&nbsp;</span>
968
1015
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1172,14 +1219,15 @@
1172
1219
  <span class="cline-any cline-yes">3703x</span>
1173
1220
  <span class="cline-any cline-yes">3703x</span>
1174
1221
  <span class="cline-any cline-yes">3703x</span>
1222
+ <span class="cline-any cline-no">&nbsp;</span>
1223
+ <span class="cline-any cline-neutral">&nbsp;</span>
1224
+ <span class="cline-any cline-yes">3703x</span>
1175
1225
  <span class="cline-any cline-yes">3703x</span>
1176
1226
  <span class="cline-any cline-yes">3703x</span>
1177
1227
  <span class="cline-any cline-neutral">&nbsp;</span>
1178
1228
  <span class="cline-any cline-neutral">&nbsp;</span>
1179
1229
  <span class="cline-any cline-neutral">&nbsp;</span>
1180
1230
  <span class="cline-any cline-yes">8x</span>
1181
- <span class="cline-any cline-neutral">&nbsp;</span>
1182
- <span class="cline-any cline-neutral">&nbsp;</span>
1183
1231
  <span class="cline-any cline-yes">13x</span>
1184
1232
  <span class="cline-any cline-yes">13x</span>
1185
1233
  <span class="cline-any cline-yes">13x</span>
@@ -1191,11 +1239,25 @@
1191
1239
  <span class="cline-any cline-neutral">&nbsp;</span>
1192
1240
  <span class="cline-any cline-neutral">&nbsp;</span>
1193
1241
  <span class="cline-any cline-yes">8x</span>
1194
- <span class="cline-any cline-yes">4x</span>
1242
+ <span class="cline-any cline-neutral">&nbsp;</span>
1243
+ <span class="cline-any cline-neutral">&nbsp;</span>
1244
+ <span class="cline-any cline-neutral">&nbsp;</span>
1245
+ <span class="cline-any cline-no">&nbsp;</span>
1246
+ <span class="cline-any cline-neutral">&nbsp;</span>
1247
+ <span class="cline-any cline-no">&nbsp;</span>
1248
+ <span class="cline-any cline-neutral">&nbsp;</span>
1249
+ <span class="cline-any cline-neutral">&nbsp;</span>
1250
+ <span class="cline-any cline-no">&nbsp;</span>
1251
+ <span class="cline-any cline-neutral">&nbsp;</span>
1252
+ <span class="cline-any cline-no">&nbsp;</span>
1253
+ <span class="cline-any cline-neutral">&nbsp;</span>
1254
+ <span class="cline-any cline-neutral">&nbsp;</span>
1255
+ <span class="cline-any cline-yes">8x</span>
1195
1256
  <span class="cline-any cline-yes">4x</span>
1196
1257
  <span class="cline-any cline-no">&nbsp;</span>
1197
1258
  <span class="cline-any cline-neutral">&nbsp;</span>
1198
1259
  <span class="cline-any cline-yes">4x</span>
1260
+ <span class="cline-any cline-yes">4x</span>
1199
1261
  <span class="cline-any cline-no">&nbsp;</span>
1200
1262
  <span class="cline-any cline-yes">4x</span>
1201
1263
  <span class="cline-any cline-no">&nbsp;</span>
@@ -1210,10 +1272,6 @@
1210
1272
  <span class="cline-any cline-no">&nbsp;</span>
1211
1273
  <span class="cline-any cline-neutral">&nbsp;</span>
1212
1274
  <span class="cline-any cline-no">&nbsp;</span>
1213
- <span class="cline-any cline-no">&nbsp;</span>
1214
- <span class="cline-any cline-no">&nbsp;</span>
1215
- <span class="cline-any cline-neutral">&nbsp;</span>
1216
- <span class="cline-any cline-no">&nbsp;</span>
1217
1275
  <span class="cline-any cline-neutral">&nbsp;</span>
1218
1276
  <span class="cline-any cline-neutral">&nbsp;</span>
1219
1277
  <span class="cline-any cline-yes">8x</span>
@@ -1221,65 +1279,57 @@
1221
1279
  <span class="cline-any cline-neutral">&nbsp;</span>
1222
1280
  <span class="cline-any cline-no">&nbsp;</span>
1223
1281
  <span class="cline-any cline-no">&nbsp;</span>
1224
- <span class="cline-any cline-no">&nbsp;</span>
1225
1282
  <span class="cline-any cline-neutral">&nbsp;</span>
1226
1283
  <span class="cline-any cline-no">&nbsp;</span>
1227
1284
  <span class="cline-any cline-neutral">&nbsp;</span>
1228
1285
  <span class="cline-any cline-neutral">&nbsp;</span>
1229
1286
  <span class="cline-any cline-yes">8x</span>
1230
- <span class="cline-any cline-no">&nbsp;</span>
1231
1287
  <span class="cline-any cline-neutral">&nbsp;</span>
1232
1288
  <span class="cline-any cline-neutral">&nbsp;</span>
1233
- <span class="cline-any cline-no">&nbsp;</span>
1234
1289
  <span class="cline-any cline-neutral">&nbsp;</span>
1235
1290
  <span class="cline-any cline-neutral">&nbsp;</span>
1236
1291
  <span class="cline-any cline-neutral">&nbsp;</span>
1237
- <span class="cline-any cline-no">&nbsp;</span>
1238
1292
  <span class="cline-any cline-neutral">&nbsp;</span>
1239
- <span class="cline-any cline-no">&nbsp;</span>
1240
1293
  <span class="cline-any cline-neutral">&nbsp;</span>
1241
- <span class="cline-any cline-no">&nbsp;</span>
1242
1294
  <span class="cline-any cline-neutral">&nbsp;</span>
1243
- <span class="cline-any cline-no">&nbsp;</span>
1244
- <span class="cline-any cline-no">&nbsp;</span>
1245
- <span class="cline-any cline-no">&nbsp;</span>
1295
+ <span class="cline-any cline-yes">50x</span>
1246
1296
  <span class="cline-any cline-neutral">&nbsp;</span>
1247
- <span class="cline-any cline-no">&nbsp;</span>
1248
1297
  <span class="cline-any cline-neutral">&nbsp;</span>
1298
+ <span class="cline-any cline-yes">50x</span>
1249
1299
  <span class="cline-any cline-neutral">&nbsp;</span>
1250
- <span class="cline-any cline-yes">8x</span>
1251
- <span class="cline-any cline-no">&nbsp;</span>
1252
1300
  <span class="cline-any cline-neutral">&nbsp;</span>
1253
1301
  <span class="cline-any cline-neutral">&nbsp;</span>
1254
- <span class="cline-any cline-no">&nbsp;</span>
1255
1302
  <span class="cline-any cline-neutral">&nbsp;</span>
1256
1303
  <span class="cline-any cline-neutral">&nbsp;</span>
1257
1304
  <span class="cline-any cline-neutral">&nbsp;</span>
1258
1305
  <span class="cline-any cline-neutral">&nbsp;</span>
1259
- <span class="cline-any cline-no">&nbsp;</span>
1260
1306
  <span class="cline-any cline-neutral">&nbsp;</span>
1261
- <span class="cline-any cline-no">&nbsp;</span>
1262
- <span class="cline-any cline-no">&nbsp;</span>
1263
- <span class="cline-any cline-no">&nbsp;</span>
1264
1307
  <span class="cline-any cline-neutral">&nbsp;</span>
1265
- <span class="cline-any cline-no">&nbsp;</span>
1266
1308
  <span class="cline-any cline-neutral">&nbsp;</span>
1309
+ <span class="cline-any cline-yes">1x</span>
1310
+ <span class="cline-any cline-neutral">&nbsp;</span>
1311
+ <span class="cline-any cline-neutral">&nbsp;</span>
1312
+ <span class="cline-any cline-neutral">&nbsp;</span>
1313
+ <span class="cline-any cline-neutral">&nbsp;</span>
1314
+ <span class="cline-any cline-yes">8x</span>
1315
+ <span class="cline-any cline-neutral">&nbsp;</span>
1316
+ <span class="cline-any cline-yes">8x</span>
1267
1317
  <span class="cline-any cline-no">&nbsp;</span>
1268
1318
  <span class="cline-any cline-no">&nbsp;</span>
1269
1319
  <span class="cline-any cline-no">&nbsp;</span>
1270
1320
  <span class="cline-any cline-neutral">&nbsp;</span>
1271
1321
  <span class="cline-any cline-neutral">&nbsp;</span>
1272
- <span class="cline-any cline-yes">8x</span>
1273
1322
  <span class="cline-any cline-no">&nbsp;</span>
1274
1323
  <span class="cline-any cline-neutral">&nbsp;</span>
1275
- <span class="cline-any cline-no">&nbsp;</span>
1276
1324
  <span class="cline-any cline-neutral">&nbsp;</span>
1277
1325
  <span class="cline-any cline-neutral">&nbsp;</span>
1278
1326
  <span class="cline-any cline-neutral">&nbsp;</span>
1279
1327
  <span class="cline-any cline-neutral">&nbsp;</span>
1280
1328
  <span class="cline-any cline-neutral">&nbsp;</span>
1281
- <span class="cline-any cline-no">&nbsp;</span>
1282
- <span class="cline-any cline-no">&nbsp;</span>
1329
+ <span class="cline-any cline-yes">8x</span>
1330
+ <span class="cline-any cline-neutral">&nbsp;</span>
1331
+ <span class="cline-any cline-neutral">&nbsp;</span>
1332
+ <span class="cline-any cline-neutral">&nbsp;</span>
1283
1333
  <span class="cline-any cline-neutral">&nbsp;</span>
1284
1334
  <span class="cline-any cline-no">&nbsp;</span>
1285
1335
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1287,23 +1337,21 @@
1287
1337
  <span class="cline-any cline-neutral">&nbsp;</span>
1288
1338
  <span class="cline-any cline-neutral">&nbsp;</span>
1289
1339
  <span class="cline-any cline-neutral">&nbsp;</span>
1290
- <span class="cline-any cline-no">&nbsp;</span>
1291
- <span class="cline-any cline-no">&nbsp;</span>
1340
+ <span class="cline-any cline-yes">8x</span>
1292
1341
  <span class="cline-any cline-neutral">&nbsp;</span>
1293
1342
  <span class="cline-any cline-neutral">&nbsp;</span>
1294
1343
  <span class="cline-any cline-neutral">&nbsp;</span>
1295
1344
  <span class="cline-any cline-neutral">&nbsp;</span>
1296
- <span class="cline-any cline-yes">8x</span>
1297
1345
  <span class="cline-any cline-no">&nbsp;</span>
1298
1346
  <span class="cline-any cline-neutral">&nbsp;</span>
1299
1347
  <span class="cline-any cline-no">&nbsp;</span>
1300
1348
  <span class="cline-any cline-neutral">&nbsp;</span>
1301
1349
  <span class="cline-any cline-neutral">&nbsp;</span>
1302
1350
  <span class="cline-any cline-neutral">&nbsp;</span>
1351
+ <span class="cline-any cline-yes">8x</span>
1352
+ <span class="cline-any cline-neutral">&nbsp;</span>
1303
1353
  <span class="cline-any cline-neutral">&nbsp;</span>
1304
1354
  <span class="cline-any cline-neutral">&nbsp;</span>
1305
- <span class="cline-any cline-no">&nbsp;</span>
1306
- <span class="cline-any cline-no">&nbsp;</span>
1307
1355
  <span class="cline-any cline-neutral">&nbsp;</span>
1308
1356
  <span class="cline-any cline-no">&nbsp;</span>
1309
1357
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1311,7 +1359,9 @@
1311
1359
  <span class="cline-any cline-neutral">&nbsp;</span>
1312
1360
  <span class="cline-any cline-neutral">&nbsp;</span>
1313
1361
  <span class="cline-any cline-neutral">&nbsp;</span>
1314
- <span class="cline-any cline-no">&nbsp;</span>
1362
+ <span class="cline-any cline-yes">8x</span>
1363
+ <span class="cline-any cline-neutral">&nbsp;</span>
1364
+ <span class="cline-any cline-neutral">&nbsp;</span>
1315
1365
  <span class="cline-any cline-neutral">&nbsp;</span>
1316
1366
  <span class="cline-any cline-neutral">&nbsp;</span>
1317
1367
  <span class="cline-any cline-no">&nbsp;</span>
@@ -1320,26 +1370,25 @@
1320
1370
  <span class="cline-any cline-no">&nbsp;</span>
1321
1371
  <span class="cline-any cline-neutral">&nbsp;</span>
1322
1372
  <span class="cline-any cline-neutral">&nbsp;</span>
1373
+ <span class="cline-any cline-neutral">&nbsp;</span>
1374
+ <span class="cline-any cline-neutral">&nbsp;</span>
1375
+ <span class="cline-any cline-neutral">&nbsp;</span>
1376
+ <span class="cline-any cline-neutral">&nbsp;</span>
1377
+ <span class="cline-any cline-neutral">&nbsp;</span>
1323
1378
  <span class="cline-any cline-yes">8x</span>
1324
- <span class="cline-any cline-no">&nbsp;</span>
1325
- <span class="cline-any cline-no">&nbsp;</span>
1326
1379
  <span class="cline-any cline-neutral">&nbsp;</span>
1327
- <span class="cline-any cline-no">&nbsp;</span>
1328
1380
  <span class="cline-any cline-neutral">&nbsp;</span>
1329
1381
  <span class="cline-any cline-neutral">&nbsp;</span>
1330
1382
  <span class="cline-any cline-neutral">&nbsp;</span>
1331
1383
  <span class="cline-any cline-no">&nbsp;</span>
1332
1384
  <span class="cline-any cline-neutral">&nbsp;</span>
1333
1385
  <span class="cline-any cline-no">&nbsp;</span>
1334
- <span class="cline-any cline-no">&nbsp;</span>
1335
1386
  <span class="cline-any cline-neutral">&nbsp;</span>
1336
1387
  <span class="cline-any cline-neutral">&nbsp;</span>
1337
1388
  <span class="cline-any cline-neutral">&nbsp;</span>
1338
- <span class="cline-any cline-no">&nbsp;</span>
1389
+ <span class="cline-any cline-yes">8x</span>
1339
1390
  <span class="cline-any cline-neutral">&nbsp;</span>
1340
1391
  <span class="cline-any cline-neutral">&nbsp;</span>
1341
- <span class="cline-any cline-yes">8x</span>
1342
- <span class="cline-any cline-no">&nbsp;</span>
1343
1392
  <span class="cline-any cline-neutral">&nbsp;</span>
1344
1393
  <span class="cline-any cline-neutral">&nbsp;</span>
1345
1394
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1349,14 +1398,14 @@
1349
1398
  <span class="cline-any cline-neutral">&nbsp;</span>
1350
1399
  <span class="cline-any cline-neutral">&nbsp;</span>
1351
1400
  <span class="cline-any cline-neutral">&nbsp;</span>
1352
- <span class="cline-any cline-yes">8x</span>
1353
1401
  <span class="cline-any cline-neutral">&nbsp;</span>
1354
1402
  <span class="cline-any cline-neutral">&nbsp;</span>
1355
1403
  <span class="cline-any cline-neutral">&nbsp;</span>
1356
1404
  <span class="cline-any cline-neutral">&nbsp;</span>
1357
- <span class="cline-any cline-no">&nbsp;</span>
1358
1405
  <span class="cline-any cline-neutral">&nbsp;</span>
1359
- <span class="cline-any cline-no">&nbsp;</span>
1406
+ <span class="cline-any cline-neutral">&nbsp;</span>
1407
+ <span class="cline-any cline-yes">1x</span>
1408
+ <span class="cline-any cline-neutral">&nbsp;</span>
1360
1409
  <span class="cline-any cline-neutral">&nbsp;</span>
1361
1410
  <span class="cline-any cline-neutral">&nbsp;</span>
1362
1411
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1365,83 +1414,127 @@
1365
1414
  <span class="cline-any cline-neutral">&nbsp;</span>
1366
1415
  <span class="cline-any cline-neutral">&nbsp;</span>
1367
1416
  <span class="cline-any cline-neutral">&nbsp;</span>
1417
+ <span class="cline-any cline-neutral">&nbsp;</span>
1418
+ <span class="cline-any cline-neutral">&nbsp;</span>
1419
+ <span class="cline-any cline-neutral">&nbsp;</span>
1420
+ <span class="cline-any cline-neutral">&nbsp;</span>
1421
+ <span class="cline-any cline-neutral">&nbsp;</span>
1422
+ <span class="cline-any cline-yes">8x</span>
1368
1423
  <span class="cline-any cline-no">&nbsp;</span>
1369
1424
  <span class="cline-any cline-neutral">&nbsp;</span>
1425
+ <span class="cline-any cline-neutral">&nbsp;</span>
1426
+ <span class="cline-any cline-neutral">&nbsp;</span>
1370
1427
  <span class="cline-any cline-no">&nbsp;</span>
1371
1428
  <span class="cline-any cline-neutral">&nbsp;</span>
1372
1429
  <span class="cline-any cline-neutral">&nbsp;</span>
1373
1430
  <span class="cline-any cline-neutral">&nbsp;</span>
1374
- <span class="cline-any cline-yes">8x</span>
1375
1431
  <span class="cline-any cline-neutral">&nbsp;</span>
1376
1432
  <span class="cline-any cline-neutral">&nbsp;</span>
1433
+ <span class="cline-any cline-no">&nbsp;</span>
1434
+ <span class="cline-any cline-neutral">&nbsp;</span>
1435
+ <span class="cline-any cline-no">&nbsp;</span>
1377
1436
  <span class="cline-any cline-neutral">&nbsp;</span>
1378
1437
  <span class="cline-any cline-neutral">&nbsp;</span>
1379
1438
  <span class="cline-any cline-no">&nbsp;</span>
1380
1439
  <span class="cline-any cline-neutral">&nbsp;</span>
1381
1440
  <span class="cline-any cline-no">&nbsp;</span>
1441
+ <span class="cline-any cline-no">&nbsp;</span>
1442
+ <span class="cline-any cline-no">&nbsp;</span>
1382
1443
  <span class="cline-any cline-neutral">&nbsp;</span>
1444
+ <span class="cline-any cline-no">&nbsp;</span>
1383
1445
  <span class="cline-any cline-neutral">&nbsp;</span>
1384
1446
  <span class="cline-any cline-neutral">&nbsp;</span>
1385
1447
  <span class="cline-any cline-yes">8x</span>
1448
+ <span class="cline-any cline-no">&nbsp;</span>
1449
+ <span class="cline-any cline-neutral">&nbsp;</span>
1450
+ <span class="cline-any cline-neutral">&nbsp;</span>
1451
+ <span class="cline-any cline-neutral">&nbsp;</span>
1452
+ <span class="cline-any cline-no">&nbsp;</span>
1453
+ <span class="cline-any cline-neutral">&nbsp;</span>
1454
+ <span class="cline-any cline-neutral">&nbsp;</span>
1455
+ <span class="cline-any cline-neutral">&nbsp;</span>
1386
1456
  <span class="cline-any cline-neutral">&nbsp;</span>
1387
1457
  <span class="cline-any cline-neutral">&nbsp;</span>
1388
1458
  <span class="cline-any cline-neutral">&nbsp;</span>
1459
+ <span class="cline-any cline-no">&nbsp;</span>
1389
1460
  <span class="cline-any cline-neutral">&nbsp;</span>
1390
1461
  <span class="cline-any cline-no">&nbsp;</span>
1462
+ <span class="cline-any cline-no">&nbsp;</span>
1463
+ <span class="cline-any cline-no">&nbsp;</span>
1464
+ <span class="cline-any cline-neutral">&nbsp;</span>
1391
1465
  <span class="cline-any cline-neutral">&nbsp;</span>
1392
1466
  <span class="cline-any cline-no">&nbsp;</span>
1393
1467
  <span class="cline-any cline-neutral">&nbsp;</span>
1468
+ <span class="cline-any cline-no">&nbsp;</span>
1469
+ <span class="cline-any cline-no">&nbsp;</span>
1470
+ <span class="cline-any cline-no">&nbsp;</span>
1394
1471
  <span class="cline-any cline-neutral">&nbsp;</span>
1395
1472
  <span class="cline-any cline-neutral">&nbsp;</span>
1396
1473
  <span class="cline-any cline-yes">8x</span>
1474
+ <span class="cline-any cline-no">&nbsp;</span>
1475
+ <span class="cline-any cline-neutral">&nbsp;</span>
1476
+ <span class="cline-any cline-neutral">&nbsp;</span>
1477
+ <span class="cline-any cline-no">&nbsp;</span>
1397
1478
  <span class="cline-any cline-neutral">&nbsp;</span>
1398
1479
  <span class="cline-any cline-neutral">&nbsp;</span>
1399
1480
  <span class="cline-any cline-neutral">&nbsp;</span>
1400
1481
  <span class="cline-any cline-neutral">&nbsp;</span>
1482
+ <span class="cline-any cline-neutral">&nbsp;</span>
1483
+ <span class="cline-any cline-no">&nbsp;</span>
1401
1484
  <span class="cline-any cline-no">&nbsp;</span>
1402
1485
  <span class="cline-any cline-neutral">&nbsp;</span>
1403
1486
  <span class="cline-any cline-no">&nbsp;</span>
1404
1487
  <span class="cline-any cline-neutral">&nbsp;</span>
1405
1488
  <span class="cline-any cline-neutral">&nbsp;</span>
1489
+ <span class="cline-any cline-no">&nbsp;</span>
1406
1490
  <span class="cline-any cline-neutral">&nbsp;</span>
1407
1491
  <span class="cline-any cline-neutral">&nbsp;</span>
1408
1492
  <span class="cline-any cline-neutral">&nbsp;</span>
1493
+ <span class="cline-any cline-no">&nbsp;</span>
1494
+ <span class="cline-any cline-no">&nbsp;</span>
1495
+ <span class="cline-any cline-neutral">&nbsp;</span>
1409
1496
  <span class="cline-any cline-neutral">&nbsp;</span>
1410
1497
  <span class="cline-any cline-neutral">&nbsp;</span>
1411
1498
  <span class="cline-any cline-neutral">&nbsp;</span>
1412
1499
  <span class="cline-any cline-yes">8x</span>
1413
1500
  <span class="cline-any cline-no">&nbsp;</span>
1501
+ <span class="cline-any cline-neutral">&nbsp;</span>
1502
+ <span class="cline-any cline-neutral">&nbsp;</span>
1414
1503
  <span class="cline-any cline-no">&nbsp;</span>
1415
1504
  <span class="cline-any cline-neutral">&nbsp;</span>
1416
1505
  <span class="cline-any cline-neutral">&nbsp;</span>
1417
1506
  <span class="cline-any cline-neutral">&nbsp;</span>
1418
1507
  <span class="cline-any cline-neutral">&nbsp;</span>
1508
+ <span class="cline-any cline-neutral">&nbsp;</span>
1509
+ <span class="cline-any cline-no">&nbsp;</span>
1419
1510
  <span class="cline-any cline-no">&nbsp;</span>
1420
1511
  <span class="cline-any cline-neutral">&nbsp;</span>
1512
+ <span class="cline-any cline-no">&nbsp;</span>
1421
1513
  <span class="cline-any cline-neutral">&nbsp;</span>
1422
1514
  <span class="cline-any cline-neutral">&nbsp;</span>
1423
- <span class="cline-any cline-yes">8x</span>
1424
- <span class="cline-any cline-no">&nbsp;</span>
1425
1515
  <span class="cline-any cline-no">&nbsp;</span>
1426
1516
  <span class="cline-any cline-neutral">&nbsp;</span>
1427
1517
  <span class="cline-any cline-neutral">&nbsp;</span>
1428
1518
  <span class="cline-any cline-neutral">&nbsp;</span>
1519
+ <span class="cline-any cline-no">&nbsp;</span>
1429
1520
  <span class="cline-any cline-neutral">&nbsp;</span>
1430
1521
  <span class="cline-any cline-neutral">&nbsp;</span>
1431
1522
  <span class="cline-any cline-no">&nbsp;</span>
1432
1523
  <span class="cline-any cline-neutral">&nbsp;</span>
1433
1524
  <span class="cline-any cline-neutral">&nbsp;</span>
1525
+ <span class="cline-any cline-no">&nbsp;</span>
1526
+ <span class="cline-any cline-neutral">&nbsp;</span>
1434
1527
  <span class="cline-any cline-neutral">&nbsp;</span>
1435
1528
  <span class="cline-any cline-yes">8x</span>
1436
1529
  <span class="cline-any cline-no">&nbsp;</span>
1437
1530
  <span class="cline-any cline-no">&nbsp;</span>
1438
1531
  <span class="cline-any cline-neutral">&nbsp;</span>
1532
+ <span class="cline-any cline-no">&nbsp;</span>
1439
1533
  <span class="cline-any cline-neutral">&nbsp;</span>
1440
1534
  <span class="cline-any cline-neutral">&nbsp;</span>
1441
- <span class="cline-any cline-no">&nbsp;</span>
1442
1535
  <span class="cline-any cline-neutral">&nbsp;</span>
1536
+ <span class="cline-any cline-no">&nbsp;</span>
1443
1537
  <span class="cline-any cline-neutral">&nbsp;</span>
1444
- <span class="cline-any cline-yes">8x</span>
1445
1538
  <span class="cline-any cline-no">&nbsp;</span>
1446
1539
  <span class="cline-any cline-no">&nbsp;</span>
1447
1540
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1452,6 +1545,19 @@
1452
1545
  <span class="cline-any cline-neutral">&nbsp;</span>
1453
1546
  <span class="cline-any cline-yes">8x</span>
1454
1547
  <span class="cline-any cline-no">&nbsp;</span>
1548
+ <span class="cline-any cline-neutral">&nbsp;</span>
1549
+ <span class="cline-any cline-neutral">&nbsp;</span>
1550
+ <span class="cline-any cline-neutral">&nbsp;</span>
1551
+ <span class="cline-any cline-neutral">&nbsp;</span>
1552
+ <span class="cline-any cline-neutral">&nbsp;</span>
1553
+ <span class="cline-any cline-neutral">&nbsp;</span>
1554
+ <span class="cline-any cline-neutral">&nbsp;</span>
1555
+ <span class="cline-any cline-neutral">&nbsp;</span>
1556
+ <span class="cline-any cline-neutral">&nbsp;</span>
1557
+ <span class="cline-any cline-neutral">&nbsp;</span>
1558
+ <span class="cline-any cline-neutral">&nbsp;</span>
1559
+ <span class="cline-any cline-yes">8x</span>
1560
+ <span class="cline-any cline-no">&nbsp;</span>
1455
1561
  <span class="cline-any cline-no">&nbsp;</span>
1456
1562
  <span class="cline-any cline-neutral">&nbsp;</span>
1457
1563
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1460,6 +1566,7 @@
1460
1566
  <span class="cline-any cline-no">&nbsp;</span>
1461
1567
  <span class="cline-any cline-neutral">&nbsp;</span>
1462
1568
  <span class="cline-any cline-neutral">&nbsp;</span>
1569
+ <span class="cline-any cline-neutral">&nbsp;</span>
1463
1570
  <span class="cline-any cline-yes">8x</span>
1464
1571
  <span class="cline-any cline-no">&nbsp;</span>
1465
1572
  <span class="cline-any cline-no">&nbsp;</span>
@@ -1467,16 +1574,24 @@
1467
1574
  <span class="cline-any cline-neutral">&nbsp;</span>
1468
1575
  <span class="cline-any cline-neutral">&nbsp;</span>
1469
1576
  <span class="cline-any cline-neutral">&nbsp;</span>
1577
+ <span class="cline-any cline-neutral">&nbsp;</span>
1470
1578
  <span class="cline-any cline-no">&nbsp;</span>
1471
1579
  <span class="cline-any cline-neutral">&nbsp;</span>
1472
1580
  <span class="cline-any cline-neutral">&nbsp;</span>
1581
+ <span class="cline-any cline-neutral">&nbsp;</span>
1473
1582
  <span class="cline-any cline-yes">8x</span>
1583
+ <span class="cline-any cline-no">&nbsp;</span>
1584
+ <span class="cline-any cline-no">&nbsp;</span>
1585
+ <span class="cline-any cline-neutral">&nbsp;</span>
1474
1586
  <span class="cline-any cline-neutral">&nbsp;</span>
1475
1587
  <span class="cline-any cline-neutral">&nbsp;</span>
1476
- <span class="cline-any cline-no">&nbsp;</span>
1477
1588
  <span class="cline-any cline-no">&nbsp;</span>
1478
1589
  <span class="cline-any cline-neutral">&nbsp;</span>
1479
1590
  <span class="cline-any cline-neutral">&nbsp;</span>
1591
+ <span class="cline-any cline-yes">8x</span>
1592
+ <span class="cline-any cline-no">&nbsp;</span>
1593
+ <span class="cline-any cline-no">&nbsp;</span>
1594
+ <span class="cline-any cline-neutral">&nbsp;</span>
1480
1595
  <span class="cline-any cline-neutral">&nbsp;</span>
1481
1596
  <span class="cline-any cline-neutral">&nbsp;</span>
1482
1597
  <span class="cline-any cline-no">&nbsp;</span>
@@ -1493,26 +1608,38 @@
1493
1608
  <span class="cline-any cline-neutral">&nbsp;</span>
1494
1609
  <span class="cline-any cline-neutral">&nbsp;</span>
1495
1610
  <span class="cline-any cline-yes">8x</span>
1611
+ <span class="cline-any cline-no">&nbsp;</span>
1612
+ <span class="cline-any cline-no">&nbsp;</span>
1496
1613
  <span class="cline-any cline-neutral">&nbsp;</span>
1497
1614
  <span class="cline-any cline-neutral">&nbsp;</span>
1498
1615
  <span class="cline-any cline-neutral">&nbsp;</span>
1499
1616
  <span class="cline-any cline-neutral">&nbsp;</span>
1617
+ <span class="cline-any cline-no">&nbsp;</span>
1500
1618
  <span class="cline-any cline-neutral">&nbsp;</span>
1501
1619
  <span class="cline-any cline-neutral">&nbsp;</span>
1620
+ <span class="cline-any cline-yes">8x</span>
1502
1621
  <span class="cline-any cline-neutral">&nbsp;</span>
1503
1622
  <span class="cline-any cline-neutral">&nbsp;</span>
1623
+ <span class="cline-any cline-no">&nbsp;</span>
1624
+ <span class="cline-any cline-no">&nbsp;</span>
1504
1625
  <span class="cline-any cline-neutral">&nbsp;</span>
1505
1626
  <span class="cline-any cline-neutral">&nbsp;</span>
1506
1627
  <span class="cline-any cline-neutral">&nbsp;</span>
1507
1628
  <span class="cline-any cline-neutral">&nbsp;</span>
1629
+ <span class="cline-any cline-no">&nbsp;</span>
1508
1630
  <span class="cline-any cline-neutral">&nbsp;</span>
1509
1631
  <span class="cline-any cline-neutral">&nbsp;</span>
1632
+ <span class="cline-any cline-yes">8x</span>
1633
+ <span class="cline-any cline-no">&nbsp;</span>
1634
+ <span class="cline-any cline-no">&nbsp;</span>
1510
1635
  <span class="cline-any cline-neutral">&nbsp;</span>
1511
1636
  <span class="cline-any cline-neutral">&nbsp;</span>
1512
1637
  <span class="cline-any cline-neutral">&nbsp;</span>
1513
1638
  <span class="cline-any cline-neutral">&nbsp;</span>
1639
+ <span class="cline-any cline-no">&nbsp;</span>
1514
1640
  <span class="cline-any cline-neutral">&nbsp;</span>
1515
1641
  <span class="cline-any cline-neutral">&nbsp;</span>
1642
+ <span class="cline-any cline-yes">8x</span>
1516
1643
  <span class="cline-any cline-neutral">&nbsp;</span>
1517
1644
  <span class="cline-any cline-neutral">&nbsp;</span>
1518
1645
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1525,10 +1652,7 @@
1525
1652
  <span class="cline-any cline-neutral">&nbsp;</span>
1526
1653
  <span class="cline-any cline-neutral">&nbsp;</span>
1527
1654
  <span class="cline-any cline-neutral">&nbsp;</span>
1528
- <span class="cline-any cline-yes">50x</span>
1529
- <span class="cline-any cline-neutral">&nbsp;</span>
1530
1655
  <span class="cline-any cline-neutral">&nbsp;</span>
1531
- <span class="cline-any cline-yes">50x</span>
1532
1656
  <span class="cline-any cline-neutral">&nbsp;</span>
1533
1657
  <span class="cline-any cline-neutral">&nbsp;</span>
1534
1658
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1590,17 +1714,11 @@ export interface IEntityInternal&lt;T extends IModel&gt; {
1590
1714
  }
1591
1715
  export type IEntitiesInternal&lt;T extends IModel&gt; = Array&lt;IEntityInternal&lt;T&gt;&gt;;
1592
1716
  &nbsp;
1593
- export interface CreateOptions {
1717
+ export interface CreateOrmOptions {
1594
1718
  entities: IEntities&lt;IModel&gt;;
1595
- db: any;
1596
- logError?: (err: Error) =&gt; void;
1597
1719
  }
1598
1720
  &nbsp;
1599
- export const create = ({
1600
- entities: externalEntities,
1601
- db,
1602
- logError
1603
- }: CreateOptions) =&gt; {
1721
+ export const createOrm = ({ entities: externalEntities }: CreateOrmOptions) =&gt; {
1604
1722
  const entities: IEntitiesInternal&lt;IModel&gt; = externalEntities.map(
1605
1723
  (d: IEntity&lt;IModel&gt;) =&gt; {
1606
1724
  const tableName = d.tableName;
@@ -1697,15 +1815,6 @@ export const create = ({
1697
1815
  }
1698
1816
  return entity;
1699
1817
  };
1700
- &nbsp;
1701
- const defaultErrorHandler = <span class="fstat-no" title="function not covered" >(e</span>rr: Error) =&gt; {
1702
- <span class="cstat-no" title="statement not covered" > if (!(err.name === 'QueryResultError')) {</span>
1703
- <span class="cstat-no" title="statement not covered" > if (logError) {</span>
1704
- <span class="cstat-no" title="statement not covered" > logError(err);</span>
1705
- }
1706
- }
1707
- <span class="cstat-no" title="statement not covered" > throw err;</span>
1708
- };
1709
1818
  &nbsp;
1710
1819
  /*
1711
1820
  * In:
@@ -1915,72 +2024,222 @@ export const create = ({
1915
2024
  return Object.keys(result).reduce((obj: any, text: string) =&gt; {
1916
2025
  const tableName = text.split('#')[0];
1917
2026
  const column = text.split('#')[1];
2027
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!tableName || !column) {
2028
+ <span class="cstat-no" title="statement not covered" > throw new Error('Column names must be namespaced to table');</span>
2029
+ }
1918
2030
  obj[tableName] = obj[tableName] || {};
1919
2031
  obj[tableName][column] = result[text as keyof typeof result];
1920
2032
  return obj;
1921
2033
  }, {});
1922
2034
  };
1923
2035
  &nbsp;
1924
- const createFromDatabase = &lt;T extends ICollection&lt;IModel&gt;&gt;(
1925
- _result: Array&lt;object&gt; | object
1926
- ): T | undefined =&gt; {
1927
- const result = Array.isArray(_result) ? _result : <span class="branch-1 cbranch-no" title="branch not covered" >[_result];</span>
2036
+ const createFromDatabase = &lt;T extends ICollection&lt;IModel&gt;&gt;(rows: any): T =&gt; {
2037
+ const result = Array.isArray(rows) ? rows : <span class="branch-1 cbranch-no" title="branch not covered" >[rows];</span>
1928
2038
  const objectified = result.map(objectifyDatabaseResult);
1929
2039
  const boified = objectified.map(mapToBos);
1930
2040
  const clumps = clumpIntoGroups(boified);
1931
2041
  const nested = clumps.map(nestClump);
1932
2042
  const models = nested.map((n) =&gt; Object.values(n)[0]);
1933
2043
  const Collection = getEntityByModel(models[0]).Collection;
1934
- return models.length ? (new Collection({ models }) as T) : <span class="branch-1 cbranch-no" title="branch not covered" >void 0;</span>
2044
+ return &lt;T&gt;new Collection({ models });
1935
2045
  };
1936
2046
  &nbsp;
1937
- const createOneFromDatabase = &lt;T extends IModel&gt;(_result: any): T =&gt; {
1938
- const collection = createFromDatabase&lt;ICollection&lt;IModel&gt;&gt;(_result);
1939
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!collection) {
2047
+ const createAnyFromDatabase = <span class="fstat-no" title="function not covered" >&lt;T</span> extends ICollection&lt;IModel&gt;&gt;(
2048
+ rows: any,
2049
+ rootKey: string | IModel
2050
+ ): T =&gt; {
2051
+ <span class="cstat-no" title="statement not covered" > if (!rows || !rows.length) {</span>
2052
+ const Collection =
2053
+ <span class="cstat-no" title="statement not covered" > typeof rootKey === 'string'</span>
2054
+ ? getEntityByTableName(rootKey).Collection
2055
+ : getEntityByModel(rootKey).Collection;
2056
+ <span class="cstat-no" title="statement not covered" > return new Collection({ models: [] }) as T;</span>
2057
+ }
2058
+ <span class="cstat-no" title="statement not covered" > return &lt;T&gt;createFromDatabase&lt;T&gt;(rows);</span>
2059
+ };
2060
+ &nbsp;
2061
+ const createOneFromDatabase = &lt;T extends IModel&gt;(rows: any): T =&gt; {
2062
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!rows || !rows.length) {
1940
2063
  <span class="cstat-no" title="statement not covered" > throw Error('Did not get one.');</span>
1941
2064
  }
1942
- <span class="missing-if-branch" title="if path not taken" >I</span>if (!collection || collection.models.length === 0) {
2065
+ const collection = createFromDatabase&lt;ICollection&lt;IModel&gt;&gt;(rows);
2066
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!collection || !collection.models || collection.models.length === 0) {
1943
2067
  <span class="cstat-no" title="statement not covered" > throw Error('Did not get one.');</span>
1944
2068
  } else <span class="missing-if-branch" title="if path not taken" >I</span>if (collection.models.length &gt; 1) {
1945
2069
  <span class="cstat-no" title="statement not covered" > throw Error('Got more than one.');</span>
1946
2070
  }
1947
- return collection.models[0] as T;
2071
+ return &lt;T&gt;collection.models[0];
1948
2072
  };
1949
2073
  &nbsp;
1950
2074
  const createOneOrNoneFromDatabase = <span class="fstat-no" title="function not covered" >&lt;T</span> extends IModel&gt;(
1951
- _result: any
2075
+ rows: any
1952
2076
  ): T | void =&gt; {
1953
- <span class="cstat-no" title="statement not covered" > if (!_result) {</span>
1954
- <span class="cstat-no" title="statement not covered" > return _result;</span>
1955
- }
1956
- const collection = <span class="cstat-no" title="statement not covered" >createFromDatabase(_result);</span>
1957
- <span class="cstat-no" title="statement not covered" > if (collection &amp;&amp; collection.models.length &gt; 1) {</span>
1958
- <span class="cstat-no" title="statement not covered" > throw Error('Got more than one.');</span>
2077
+ <span class="cstat-no" title="statement not covered" > if (!rows || !rows.length) {</span>
2078
+ <span class="cstat-no" title="statement not covered" > return void 0;</span>
1959
2079
  }
1960
- <span class="cstat-no" title="statement not covered" > return collection &amp;&amp; (collection.models[0] as T);</span>
2080
+ <span class="cstat-no" title="statement not covered" > return &lt;T&gt;createOneFromDatabase(rows);</span>
1961
2081
  };
1962
2082
  &nbsp;
1963
2083
  const createManyFromDatabase = <span class="fstat-no" title="function not covered" >&lt;T</span> extends ICollection&lt;IModel&gt;&gt;(
1964
- _result: any
2084
+ rows: any
1965
2085
  ): T =&gt; {
1966
- const collection = <span class="cstat-no" title="statement not covered" >createFromDatabase(_result);</span>
1967
- <span class="cstat-no" title="statement not covered" > if (!collection || collection.models.length === 0) {</span>
2086
+ <span class="cstat-no" title="statement not covered" > if (!rows || !rows.length) {</span>
1968
2087
  <span class="cstat-no" title="statement not covered" > throw Error('Did not get at least one.');</span>
1969
2088
  }
1970
- <span class="cstat-no" title="statement not covered" > return collection as T;</span>
2089
+ <span class="cstat-no" title="statement not covered" > return &lt;T&gt;createFromDatabase(rows);</span>
2090
+ };
2091
+ &nbsp;
2092
+ return {
2093
+ getEntityByModel,
2094
+ createFromDatabase,
2095
+ createAnyFromDatabase,
2096
+ createOneFromDatabase,
2097
+ createOneOrNoneFromDatabase,
2098
+ createManyFromDatabase,
2099
+ // tables property for access to select columns clause string
2100
+ tables: entities.reduce((accum: any, data: IEntityInternal&lt;IModel&gt;) =&gt; {
2101
+ accum[data.displayName] = {
2102
+ columns: data.selectColumnsClause
2103
+ };
2104
+ return accum;
2105
+ }, {})
2106
+ };
2107
+ };
2108
+ &nbsp;
2109
+ export interface CreateAbstractionLayerOptions {
2110
+ entities: IEntities&lt;IModel&gt;;
2111
+ db: any;
2112
+ logError?: (err: Error) =&gt; void;
2113
+ }
2114
+ &nbsp;
2115
+ export const createAbstractionLayer = ({
2116
+ entities: externalEntities,
2117
+ db,
2118
+ logError
2119
+ }: CreateAbstractionLayerOptions) =&gt; {
2120
+ const orm = createOrm({ entities: externalEntities });
2121
+ &nbsp;
2122
+ const defaultErrorHandler = <span class="fstat-no" title="function not covered" >(e</span>rr: Error) =&gt; {
2123
+ <span class="cstat-no" title="statement not covered" > if (!(err.name === 'QueryResultError')) {</span>
2124
+ <span class="cstat-no" title="statement not covered" > if (logError) {</span>
2125
+ <span class="cstat-no" title="statement not covered" > logError(err);</span>
2126
+ }
2127
+ }
2128
+ <span class="cstat-no" title="statement not covered" > throw err;</span>
1971
2129
  };
2130
+ &nbsp;
2131
+ /* ------------------------------------------------------------------------*/
2132
+ /* Query functions --------------------------------------------------------*/
2133
+ /* ------------------------------------------------------------------------*/
2134
+ &nbsp;
2135
+ const one = <span class="fstat-no" title="function not covered" >&lt;T</span> extends IModel&gt;(
2136
+ query: string,
2137
+ values?: object,
2138
+ errorHandler = <span class="branch-0 cbranch-no" title="branch not covered" >defaultErrorHandler</span>
2139
+ ): T =&gt; {
2140
+ <span class="cstat-no" title="statement not covered" > return db</span>
2141
+ .many(query, values)
2142
+ .then(<span class="fstat-no" title="function not covered" >(r</span>ows: any) =&gt; <span class="cstat-no" title="statement not covered" >orm.createOneFromDatabase(rows))</span>
2143
+ .catch(errorHandler);
2144
+ };
2145
+ &nbsp;
2146
+ const oneOrNone = <span class="fstat-no" title="function not covered" >&lt;T</span> extends IModel&gt;(
2147
+ query: string,
2148
+ values?: object,
2149
+ errorHandler = <span class="branch-0 cbranch-no" title="branch not covered" >defaultErrorHandler</span>
2150
+ ): T | void =&gt; {
2151
+ <span class="cstat-no" title="statement not covered" > return db</span>
2152
+ .any(query, values)
2153
+ .then(<span class="fstat-no" title="function not covered" >(r</span>ows: any) =&gt; <span class="cstat-no" title="statement not covered" >orm.createOneOrNoneFromDatabase(rows))</span>
2154
+ .catch(errorHandler);
2155
+ };
2156
+ &nbsp;
2157
+ const many = <span class="fstat-no" title="function not covered" >&lt;T</span> extends ICollection&lt;IModel&gt;&gt;(
2158
+ query: string,
2159
+ values?: object,
2160
+ errorHandler = <span class="branch-0 cbranch-no" title="branch not covered" >defaultErrorHandler</span>
2161
+ ): T =&gt; {
2162
+ <span class="cstat-no" title="statement not covered" > return db</span>
2163
+ .any(query, values)
2164
+ .then(<span class="fstat-no" title="function not covered" >(r</span>ows: any) =&gt; <span class="cstat-no" title="statement not covered" >orm.createManyFromDatabase(rows))</span>
2165
+ .catch(errorHandler);
2166
+ };
2167
+ &nbsp;
2168
+ const any = <span class="fstat-no" title="function not covered" >&lt;T</span> extends ICollection&lt;IModel&gt;&gt;(
2169
+ query: string,
2170
+ values?: object,
2171
+ errorHandler = <span class="branch-0 cbranch-no" title="branch not covered" >defaultErrorHandler</span>
2172
+ ): T | void =&gt; {
2173
+ <span class="cstat-no" title="statement not covered" > return db</span>
2174
+ .result(query, values)
2175
+ .then(<span class="fstat-no" title="function not covered" >(r</span>esult: any) =&gt;
2176
+ <span class="cstat-no" title="statement not covered" > orm.createAnyFromDatabase(</span>
2177
+ result.rows,
2178
+ result.fields[0].name.split('#')[0]
2179
+ )
2180
+ )
2181
+ .catch(errorHandler);
2182
+ };
2183
+ &nbsp;
2184
+ const none = <span class="fstat-no" title="function not covered" >(</span>
2185
+ query: string,
2186
+ values?: object,
2187
+ errorHandler = <span class="branch-0 cbranch-no" title="branch not covered" >defaultErrorHandler</span>
2188
+ ): void =&gt; {
2189
+ <span class="cstat-no" title="statement not covered" > return db</span>
2190
+ .none(query, values)
2191
+ .then(<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >null)</span>
2192
+ .catch(errorHandler);
2193
+ };
2194
+ &nbsp;
2195
+ return Object.assign({}, orm, {
2196
+ // Query Functions
2197
+ one,
2198
+ oneOrNone,
2199
+ many,
2200
+ any,
2201
+ none,
2202
+ // provide direct access to db
2203
+ db
2204
+ });
2205
+ };
2206
+ &nbsp;
2207
+ export interface CreateOptions {
2208
+ entities: IEntities&lt;IModel&gt;;
2209
+ db: any;
2210
+ logError?: (err: Error) =&gt; void;
2211
+ }
2212
+ &nbsp;
2213
+ export const create = ({
2214
+ entities: externalEntities,
2215
+ db,
2216
+ logError
2217
+ }: CreateOptions) =&gt; {
2218
+ const orm = createAbstractionLayer({
2219
+ entities: externalEntities,
2220
+ db,
2221
+ logError
2222
+ });
2223
+ &nbsp;
2224
+ /* ------------------------------------------------------------------------*/
2225
+ /* Helper Utilities for CRUD functions ------------------------------------*/
2226
+ /* ------------------------------------------------------------------------*/
1972
2227
  &nbsp;
1973
2228
  const getSqlInsertParts = <span class="fstat-no" title="function not covered" >(m</span>odel: IModel) =&gt; {
1974
- const columns = <span class="cstat-no" title="statement not covered" >getEntityByModel(model)</span>
2229
+ const columns = <span class="cstat-no" title="statement not covered" >orm</span>
2230
+ .getEntityByModel(model)
1975
2231
  .columnNames.filter(
1976
2232
  <span class="fstat-no" title="function not covered" > (c</span>olumn: string, index: number) =&gt;
1977
2233
  <span class="cstat-no" title="statement not covered" > model[</span>
1978
- getEntityByModel(model).propertyNames[index] as keyof typeof model
2234
+ orm.getEntityByModel(model).propertyNames[
2235
+ index
2236
+ ] as keyof typeof model
1979
2237
  ] !== void 0
1980
2238
  )
1981
2239
  .map(<span class="fstat-no" title="function not covered" >(c</span>ol: string) =&gt; <span class="cstat-no" title="statement not covered" >`"${col}"`)</span>
1982
2240
  .join(', ');
1983
- const values = <span class="cstat-no" title="statement not covered" >getEntityByModel(model)</span>
2241
+ const values = <span class="cstat-no" title="statement not covered" >orm</span>
2242
+ .getEntityByModel(model)
1984
2243
  .propertyNames.map(
1985
2244
  <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>
1986
2245
  )
@@ -1992,11 +2251,14 @@ export const create = ({
1992
2251
  };
1993
2252
  &nbsp;
1994
2253
  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; {
1995
- const clauseArray = <span class="cstat-no" title="statement not covered" >getEntityByModel(model)</span>
2254
+ const clauseArray = <span class="cstat-no" title="statement not covered" >orm</span>
2255
+ .getEntityByModel(model)
1996
2256
  .columnNames.filter(
1997
2257
  <span class="fstat-no" title="function not covered" > (s</span>qlColumn: string, index: number) =&gt;
1998
2258
  <span class="cstat-no" title="statement not covered" > model[</span>
1999
- getEntityByModel(model).propertyNames[index] as keyof typeof model
2259
+ orm.getEntityByModel(model).propertyNames[
2260
+ index
2261
+ ] as keyof typeof model
2000
2262
  ] !== void 0
2001
2263
  )
2002
2264
  .map(
@@ -2004,7 +2266,8 @@ export const create = ({
2004
2266
  );
2005
2267
  const clause = <span class="cstat-no" title="statement not covered" >clauseArray.join(', ');</span>
2006
2268
  const idVar = <span class="cstat-no" title="statement not covered" >`$${clauseArray.length + 1}`;</span>
2007
- const _values = <span class="cstat-no" title="statement not covered" >getEntityByModel(model)</span>
2269
+ const _values = <span class="cstat-no" title="statement not covered" >orm</span>
2270
+ .getEntityByModel(model)
2008
2271
  .propertyNames.map(
2009
2272
  <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>
2010
2273
  )
@@ -2014,18 +2277,20 @@ export const create = ({
2014
2277
  };
2015
2278
  &nbsp;
2016
2279
  const getMatchingParts = <span class="fstat-no" title="function not covered" >(m</span>odel: IModel) =&gt; {
2017
- const whereClause = <span class="cstat-no" title="statement not covered" >getEntityByModel(model)</span>
2280
+ const whereClause = <span class="cstat-no" title="statement not covered" >orm</span>
2281
+ .getEntityByModel(model)
2018
2282
  .propertyNames.map(<span class="fstat-no" title="function not covered" >(p</span>roperty: string, index: number) =&gt;
2019
2283
  <span class="cstat-no" title="statement not covered" > model[property as keyof typeof model] != null</span>
2020
- ? `"${getEntityByModel(model).tableName}"."${
2021
- getEntityByModel(model).columnNames[index]
2284
+ ? `"${orm.getEntityByModel(model).tableName}"."${
2285
+ orm.getEntityByModel(model).columnNames[index]
2022
2286
  }"`
2023
2287
  : null
2024
2288
  )
2025
2289
  .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>
2026
2290
  .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>
2027
2291
  .join(' AND ');
2028
- const values = <span class="cstat-no" title="statement not covered" >getEntityByModel(model)</span>
2292
+ const values = <span class="cstat-no" title="statement not covered" >orm</span>
2293
+ .getEntityByModel(model)
2029
2294
  .propertyNames.map(<span class="fstat-no" title="function not covered" >(p</span>roperty: string) =&gt;
2030
2295
  <span class="cstat-no" title="statement not covered" > model[property as keyof typeof model] != null</span>
2031
2296
  ? model[property as keyof typeof model]
@@ -2038,18 +2303,20 @@ export const create = ({
2038
2303
  // This one returns an object, which allows it to be more versatile.
2039
2304
  // To-do: make this one even better and use it instead of the one above.
2040
2305
  const getMatchingPartsObject = <span class="fstat-no" title="function not covered" >(m</span>odel: IModel) =&gt; {
2041
- const whereClause = <span class="cstat-no" title="statement not covered" >getEntityByModel(model)</span>
2306
+ const whereClause = <span class="cstat-no" title="statement not covered" >orm</span>
2307
+ .getEntityByModel(model)
2042
2308
  .propertyNames.map(<span class="fstat-no" title="function not covered" >(p</span>roperty: string, index: number) =&gt;
2043
2309
  <span class="cstat-no" title="statement not covered" > model[property as keyof typeof model] != null</span>
2044
- ? `"${getEntityByModel(model).tableName}"."${
2045
- getEntityByModel(model).columnNames[index]
2310
+ ? `"${orm.getEntityByModel(model).tableName}"."${
2311
+ orm.getEntityByModel(model).columnNames[index]
2046
2312
  }"`
2047
2313
  : null
2048
2314
  )
2049
2315
  .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>
2050
2316
  .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>
2051
2317
  .join(' AND ');
2052
- const values = <span class="cstat-no" title="statement not covered" >getEntityByModel(model)</span>
2318
+ const values = <span class="cstat-no" title="statement not covered" >orm</span>
2319
+ .getEntityByModel(model)
2053
2320
  .propertyNames.map(<span class="fstat-no" title="function not covered" >(p</span>roperty: string) =&gt;
2054
2321
  <span class="cstat-no" title="statement not covered" > model[property as keyof typeof model] != null</span>
2055
2322
  ? model[property as keyof typeof model]
@@ -2068,8 +2335,8 @@ export const create = ({
2068
2335
  const Constructor = <span class="cstat-no" title="statement not covered" >model.constructor as any;</span>
2069
2336
  const modelKeys = <span class="cstat-no" title="statement not covered" >sqlColumns.map(</span>
2070
2337
  <span class="fstat-no" title="function not covered" > (k</span>ey: string) =&gt;
2071
- <span class="cstat-no" title="statement not covered" > getEntityByModel(model).propertyNames[</span>
2072
- getEntityByModel(model).columnNames.indexOf(key)
2338
+ <span class="cstat-no" title="statement not covered" > orm.getEntityByModel(model).propertyNames[</span>
2339
+ orm.getEntityByModel(model).columnNames.indexOf(key)
2073
2340
  ]
2074
2341
  );
2075
2342
  const modelData = <span class="cstat-no" title="statement not covered" >modelKeys.reduce(</span>
@@ -2084,69 +2351,11 @@ export const create = ({
2084
2351
  &nbsp;
2085
2352
  const getValueBySqlColumn = <span class="fstat-no" title="function not covered" >(m</span>odel: IModel, sqlColumn: string) =&gt; {
2086
2353
  <span class="cstat-no" title="statement not covered" > return model[</span>
2087
- getEntityByModel(model).propertyNames[
2088
- getEntityByModel(model).columnNames.indexOf(sqlColumn)
2354
+ orm.getEntityByModel(model).propertyNames[
2355
+ orm.getEntityByModel(model).columnNames.indexOf(sqlColumn)
2089
2356
  ] as keyof typeof model
2090
2357
  ];
2091
2358
  };
2092
- /* ------------------------------------------------------------------------*/
2093
- /* Query functions --------------------------------------------------------*/
2094
- /* ------------------------------------------------------------------------*/
2095
- &nbsp;
2096
- const one = <span class="fstat-no" title="function not covered" >&lt;T</span> extends IModel&gt;(
2097
- query: string,
2098
- values?: object,
2099
- errorHandler = <span class="branch-0 cbranch-no" title="branch not covered" >defaultErrorHandler</span>
2100
- ): T =&gt; {
2101
- <span class="cstat-no" title="statement not covered" > return db</span>
2102
- .many(query, values)
2103
- .then(<span class="fstat-no" title="function not covered" >(r</span>ows: any) =&gt; <span class="cstat-no" title="statement not covered" >createOneFromDatabase(rows))</span>
2104
- .catch(errorHandler);
2105
- };
2106
- &nbsp;
2107
- const oneOrNone = <span class="fstat-no" title="function not covered" >&lt;T</span> extends IModel&gt;(
2108
- query: string,
2109
- values?: object,
2110
- errorHandler = <span class="branch-0 cbranch-no" title="branch not covered" >defaultErrorHandler</span>
2111
- ): T | void =&gt; {
2112
- <span class="cstat-no" title="statement not covered" > return db</span>
2113
- .any(query, values)
2114
- .then(<span class="fstat-no" title="function not covered" >(r</span>ows: any) =&gt; <span class="cstat-no" title="statement not covered" >createOneOrNoneFromDatabase(rows))</span>
2115
- .catch(errorHandler);
2116
- };
2117
- &nbsp;
2118
- const many = <span class="fstat-no" title="function not covered" >&lt;T</span> extends ICollection&lt;IModel&gt;&gt;(
2119
- query: string,
2120
- values?: object,
2121
- errorHandler = <span class="branch-0 cbranch-no" title="branch not covered" >defaultErrorHandler</span>
2122
- ): T =&gt; {
2123
- <span class="cstat-no" title="statement not covered" > return db</span>
2124
- .any(query, values)
2125
- .then(<span class="fstat-no" title="function not covered" >(r</span>ows: any) =&gt; <span class="cstat-no" title="statement not covered" >createManyFromDatabase(rows))</span>
2126
- .catch(errorHandler);
2127
- };
2128
- &nbsp;
2129
- const any = <span class="fstat-no" title="function not covered" >&lt;T</span> extends ICollection&lt;IModel&gt;&gt;(
2130
- query: string,
2131
- values?: object,
2132
- errorHandler = <span class="branch-0 cbranch-no" title="branch not covered" >defaultErrorHandler</span>
2133
- ): T | void =&gt; {
2134
- <span class="cstat-no" title="statement not covered" > return db</span>
2135
- .any(query, values)
2136
- .then(<span class="fstat-no" title="function not covered" >(r</span>ows: any) =&gt; <span class="cstat-no" title="statement not covered" >createFromDatabase(rows))</span>
2137
- .catch(errorHandler);
2138
- };
2139
- &nbsp;
2140
- const none = <span class="fstat-no" title="function not covered" >(</span>
2141
- query: string,
2142
- values?: object,
2143
- errorHandler = <span class="branch-0 cbranch-no" title="branch not covered" >defaultErrorHandler</span>
2144
- ): void =&gt; {
2145
- <span class="cstat-no" title="statement not covered" > return db</span>
2146
- .none(query, values)
2147
- .then(<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >null)</span>
2148
- .catch(errorHandler);
2149
- };
2150
2359
  &nbsp;
2151
2360
  /* ------------------------------------------------------------------------*/
2152
2361
  /* Built-in basic CRUD functions ------------------------------------------*/
@@ -2156,62 +2365,62 @@ export const create = ({
2156
2365
  const create = <span class="fstat-no" title="function not covered" >&lt;T</span> extends IModel&gt;(model: T): T =&gt; {
2157
2366
  const { columns, values, valuesVar } = <span class="cstat-no" title="statement not covered" >getSqlInsertParts(model);</span>
2158
2367
  const query = <span class="cstat-no" title="statement not covered" >`</span>
2159
- INSERT INTO "${getEntityByModel(model).tableName}" ( ${columns} )
2368
+ INSERT INTO "${orm.getEntityByModel(model).tableName}" ( ${columns} )
2160
2369
  VALUES ( ${valuesVar} )
2161
- RETURNING ${getEntityByModel(model).selectColumnsClause};
2370
+ RETURNING ${orm.getEntityByModel(model).selectColumnsClause};
2162
2371
  `;
2163
- <span class="cstat-no" title="statement not covered" > return one&lt;T&gt;(query, values);</span>
2372
+ <span class="cstat-no" title="statement not covered" > return orm.one&lt;T&gt;(query, values);</span>
2164
2373
  };
2165
2374
  &nbsp;
2166
2375
  // Standard update
2167
2376
  const update = <span class="fstat-no" title="function not covered" >&lt;T</span> extends IModel&gt;(model: T, { on = <span class="branch-0 cbranch-no" title="branch not covered" >'id' </span>} = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span>: T =&gt; {
2168
2377
  const { clause, idVar, values } = <span class="cstat-no" title="statement not covered" >getSqlUpdateParts(model, on);</span>
2169
2378
  const query = <span class="cstat-no" title="statement not covered" >`</span>
2170
- UPDATE "${getEntityByModel(model).tableName}"
2379
+ UPDATE "${orm.getEntityByModel(model).tableName}"
2171
2380
  SET ${clause}
2172
- WHERE "${getEntityByModel(model).tableName}".${on} = ${idVar}
2173
- RETURNING ${getEntityByModel(model).selectColumnsClause};
2381
+ WHERE "${orm.getEntityByModel(model).tableName}".${on} = ${idVar}
2382
+ RETURNING ${orm.getEntityByModel(model).selectColumnsClause};
2174
2383
  `;
2175
- <span class="cstat-no" title="statement not covered" > return one&lt;T&gt;(query, values);</span>
2384
+ <span class="cstat-no" title="statement not covered" > return orm.one&lt;T&gt;(query, values);</span>
2176
2385
  };
2177
2386
  &nbsp;
2178
2387
  // Standard delete
2179
2388
  const _delete = <span class="fstat-no" title="function not covered" >&lt;T</span> extends IModel&gt;(model: T): void =&gt; {
2180
2389
  const id = <span class="cstat-no" title="statement not covered" >(model as any).id;</span>
2181
2390
  const query = <span class="cstat-no" title="statement not covered" >`</span>
2182
- DELETE FROM "${getEntityByModel(model).tableName}"
2183
- WHERE "${getEntityByModel(model).tableName}".id = $(id)
2391
+ DELETE FROM "${orm.getEntityByModel(model).tableName}"
2392
+ WHERE "${orm.getEntityByModel(model).tableName}".id = $(id)
2184
2393
  `;
2185
- <span class="cstat-no" title="statement not covered" > return none(query, { id });</span>
2394
+ <span class="cstat-no" title="statement not covered" > return orm.none(query, { id });</span>
2186
2395
  };
2187
2396
  &nbsp;
2188
2397
  const deleteMatching = <span class="fstat-no" title="function not covered" >&lt;T</span> extends IModel&gt;(model: T) =&gt; {
2189
2398
  const { whereClause, values } = <span class="cstat-no" title="statement not covered" >getMatchingParts(model);</span>
2190
2399
  const query = <span class="cstat-no" title="statement not covered" >`</span>
2191
- DELETE FROM "${getEntityByModel(model).tableName}"
2400
+ DELETE FROM "${orm.getEntityByModel(model).tableName}"
2192
2401
  WHERE ${whereClause};
2193
2402
  `;
2194
- <span class="cstat-no" title="statement not covered" > return none(query, values);</span>
2403
+ <span class="cstat-no" title="statement not covered" > return orm.none(query, values);</span>
2195
2404
  };
2196
2405
  &nbsp;
2197
2406
  const getMatching = <span class="fstat-no" title="function not covered" >&lt;T</span> extends IModel&gt;(model: T): T =&gt; {
2198
2407
  const { whereClause, values } = <span class="cstat-no" title="statement not covered" >getMatchingParts(model);</span>
2199
2408
  const query = <span class="cstat-no" title="statement not covered" >`</span>
2200
- SELECT ${getEntityByModel(model).selectColumnsClause}
2201
- FROM "${getEntityByModel(model).tableName}"
2409
+ SELECT ${orm.getEntityByModel(model).selectColumnsClause}
2410
+ FROM "${orm.getEntityByModel(model).tableName}"
2202
2411
  WHERE ${whereClause};
2203
2412
  `;
2204
- <span class="cstat-no" title="statement not covered" > return one&lt;T&gt;(query, values);</span>
2413
+ <span class="cstat-no" title="statement not covered" > return orm.one&lt;T&gt;(query, values);</span>
2205
2414
  };
2206
2415
  &nbsp;
2207
2416
  const getOneOrNoneMatching = <span class="fstat-no" title="function not covered" >&lt;T</span> extends IModel&gt;(model: T): T | void =&gt; {
2208
2417
  const { whereClause, values } = <span class="cstat-no" title="statement not covered" >getMatchingParts(model);</span>
2209
2418
  const query = <span class="cstat-no" title="statement not covered" >`</span>
2210
- SELECT ${getEntityByModel(model).selectColumnsClause}
2211
- FROM "${getEntityByModel(model).tableName}"
2419
+ SELECT ${orm.getEntityByModel(model).selectColumnsClause}
2420
+ FROM "${orm.getEntityByModel(model).tableName}"
2212
2421
  WHERE ${whereClause};
2213
2422
  `;
2214
- <span class="cstat-no" title="statement not covered" > return oneOrNone&lt;T&gt;(query, values);</span>
2423
+ <span class="cstat-no" title="statement not covered" > return orm.oneOrNone&lt;T&gt;(query, values);</span>
2215
2424
  };
2216
2425
  &nbsp;
2217
2426
  const getAnyMatching = <span class="fstat-no" title="function not covered" >&lt;T</span> extends ICollection&lt;IModel&gt;&gt;(
@@ -2219,45 +2428,24 @@ export const create = ({
2219
2428
  ): T | void =&gt; {
2220
2429
  const { whereClause, values } = <span class="cstat-no" title="statement not covered" >getMatchingParts(model);</span>
2221
2430
  const query = <span class="cstat-no" title="statement not covered" >`</span>
2222
- SELECT ${getEntityByModel(model).selectColumnsClause}
2223
- FROM "${getEntityByModel(model).tableName}"
2431
+ SELECT ${orm.getEntityByModel(model).selectColumnsClause}
2432
+ FROM "${orm.getEntityByModel(model).tableName}"
2224
2433
  WHERE ${whereClause};
2225
2434
  `;
2226
- <span class="cstat-no" title="statement not covered" > return any&lt;T&gt;(query, values);</span>
2435
+ <span class="cstat-no" title="statement not covered" > return orm.any&lt;T&gt;(query, values);</span>
2227
2436
  };
2228
2437
  &nbsp;
2229
2438
  const getAllMatching = <span class="fstat-no" title="function not covered" >&lt;T</span> extends ICollection&lt;IModel&gt;&gt;(model: IModel): T =&gt; {
2230
2439
  const { whereClause, values } = <span class="cstat-no" title="statement not covered" >getMatchingParts(model);</span>
2231
2440
  const query = <span class="cstat-no" title="statement not covered" >`</span>
2232
- SELECT ${getEntityByModel(model).selectColumnsClause}
2233
- FROM "${getEntityByModel(model).tableName}"
2441
+ SELECT ${orm.getEntityByModel(model).selectColumnsClause}
2442
+ FROM "${orm.getEntityByModel(model).tableName}"
2234
2443
  WHERE ${whereClause};
2235
2444
  `;
2236
- <span class="cstat-no" title="statement not covered" > return many&lt;T&gt;(query, values);</span>
2445
+ <span class="cstat-no" title="statement not covered" > return orm.many&lt;T&gt;(query, values);</span>
2237
2446
  };
2238
2447
  &nbsp;
2239
- return {
2240
- // Query Helper Function
2241
- nestClump,
2242
- clumpIntoGroups,
2243
- mapToBos,
2244
- objectifyDatabaseResult,
2245
- createFromDatabase,
2246
- createOneFromDatabase,
2247
- createOneOrNoneFromDatabase,
2248
- createManyFromDatabase,
2249
- getSqlInsertParts,
2250
- getSqlUpdateParts,
2251
- getMatchingParts,
2252
- getMatchingPartsObject,
2253
- getNewWith,
2254
- getValueBySqlColumn,
2255
- // Query Functions
2256
- one,
2257
- oneOrNone,
2258
- many,
2259
- any,
2260
- none,
2448
+ return Object.assign({}, orm, {
2261
2449
  // Built-in basic CRUD functions
2262
2450
  create,
2263
2451
  update,
@@ -2267,16 +2455,14 @@ export const create = ({
2267
2455
  getOneOrNoneMatching,
2268
2456
  getAnyMatching,
2269
2457
  getAllMatching,
2270
- // tables property for access to select columns clause string
2271
- tables: entities.reduce((accum: any, data: IEntityInternal&lt;IModel&gt;) =&gt; {
2272
- accum[data.displayName] = {
2273
- columns: data.selectColumnsClause
2274
- };
2275
- return accum;
2276
- }, {}),
2277
- // provide direct access to db
2278
- db
2279
- };
2458
+ // Helper Utility functions
2459
+ getSqlInsertParts,
2460
+ getSqlUpdateParts,
2461
+ getMatchingParts,
2462
+ getMatchingPartsObject,
2463
+ getNewWith,
2464
+ getValueBySqlColumn
2465
+ });
2280
2466
  };
2281
2467
  &nbsp;</pre></td></tr>
2282
2468
  </table></pre>
@@ -2284,7 +2470,7 @@ export const create = ({
2284
2470
  </div><!-- /wrapper -->
2285
2471
  <div class='footer quiet pad2 space-top1 center small'>
2286
2472
  Code coverage
2287
- generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Thu May 05 2022 11:10:01 GMT-0400 (Eastern Daylight Time)
2473
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Sat May 07 2022 10:17:08 GMT-0400 (Eastern Daylight Time)
2288
2474
  </div>
2289
2475
  </div>
2290
2476
  <script src="../prettify.js"></script>