pure-orm 4.0.0-2 → 4.0.0-5

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 (260) hide show
  1. package/README.md +49 -6
  2. package/coverage/clover.xml +273 -289
  3. package/coverage/coverage-final.json +18 -18
  4. package/coverage/lcov-report/dist/src/factory.js.html +24 -9
  5. package/coverage/lcov-report/dist/src/index.html +5 -5
  6. package/coverage/lcov-report/dist/src/index.js.html +1 -1
  7. package/coverage/lcov-report/dist/test-utils/blog/index.html +7 -7
  8. package/coverage/lcov-report/dist/test-utils/blog/models/article.js.html +1 -1
  9. package/coverage/lcov-report/dist/test-utils/blog/models/article_tag.js.html +1 -1
  10. package/coverage/lcov-report/dist/test-utils/blog/models/index.html +1 -1
  11. package/coverage/lcov-report/dist/test-utils/blog/models/person.js.html +1 -1
  12. package/coverage/lcov-report/dist/test-utils/blog/models/tag.js.html +1 -1
  13. package/coverage/lcov-report/dist/test-utils/blog/orm.js.html +6 -6
  14. package/coverage/lcov-report/dist/test-utils/five/index.html +7 -7
  15. package/coverage/lcov-report/dist/test-utils/five/models/index.html +1 -1
  16. package/coverage/lcov-report/dist/test-utils/five/models/line-item.js.html +1 -1
  17. package/coverage/lcov-report/dist/test-utils/five/models/order.js.html +1 -1
  18. package/coverage/lcov-report/dist/test-utils/five/models/parcel-event.js.html +1 -1
  19. package/coverage/lcov-report/dist/test-utils/five/models/parcel-line-item.js.html +1 -1
  20. package/coverage/lcov-report/dist/test-utils/five/models/parcel.js.html +1 -1
  21. package/coverage/lcov-report/dist/test-utils/five/orm.js.html +6 -6
  22. package/coverage/lcov-report/dist/test-utils/nine/index.html +7 -7
  23. package/coverage/lcov-report/dist/test-utils/nine/models/feature-switch.js.html +1 -1
  24. package/coverage/lcov-report/dist/test-utils/nine/models/index.html +1 -1
  25. package/coverage/lcov-report/dist/test-utils/nine/orm.js.html +6 -6
  26. package/coverage/lcov-report/dist/test-utils/order/index.html +7 -7
  27. package/coverage/lcov-report/dist/test-utils/order/models/index.html +1 -1
  28. package/coverage/lcov-report/dist/test-utils/order/models/line-item.js.html +1 -1
  29. package/coverage/lcov-report/dist/test-utils/order/models/order.js.html +1 -1
  30. package/coverage/lcov-report/dist/test-utils/order/models/product-variant.js.html +1 -1
  31. package/coverage/lcov-report/dist/test-utils/order/models/product.js.html +1 -1
  32. package/coverage/lcov-report/dist/test-utils/order/models/utm-source.js.html +1 -1
  33. package/coverage/lcov-report/dist/test-utils/order/orm.js.html +6 -6
  34. package/coverage/lcov-report/dist/test-utils/order-more/index.html +7 -7
  35. package/coverage/lcov-report/dist/test-utils/order-more/models/actual-product-variant.js.html +1 -1
  36. package/coverage/lcov-report/dist/test-utils/order-more/models/color.js.html +1 -1
  37. package/coverage/lcov-report/dist/test-utils/order-more/models/customer.js.html +1 -1
  38. package/coverage/lcov-report/dist/test-utils/order-more/models/gender.js.html +1 -1
  39. package/coverage/lcov-report/dist/test-utils/order-more/models/index.html +1 -1
  40. package/coverage/lcov-report/dist/test-utils/order-more/models/inventory-level.js.html +1 -1
  41. package/coverage/lcov-report/dist/test-utils/order-more/models/line-item.js.html +1 -1
  42. package/coverage/lcov-report/dist/test-utils/order-more/models/order.js.html +1 -1
  43. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-event.js.html +1 -1
  44. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-line-item.js.html +1 -1
  45. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel.js.html +1 -1
  46. package/coverage/lcov-report/dist/test-utils/order-more/models/physical-address.js.html +1 -1
  47. package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant-image.js.html +1 -1
  48. package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant.js.html +1 -1
  49. package/coverage/lcov-report/dist/test-utils/order-more/models/product.js.html +1 -1
  50. package/coverage/lcov-report/dist/test-utils/order-more/models/refund.js.html +1 -1
  51. package/coverage/lcov-report/dist/test-utils/order-more/models/shipment-actual-product-variant.js.html +1 -1
  52. package/coverage/lcov-report/dist/test-utils/order-more/models/shipment.js.html +1 -1
  53. package/coverage/lcov-report/dist/test-utils/order-more/models/size.js.html +1 -1
  54. package/coverage/lcov-report/dist/test-utils/order-more/models/utm-medium.js.html +1 -1
  55. package/coverage/lcov-report/dist/test-utils/order-more/models/utm-source.js.html +1 -1
  56. package/coverage/lcov-report/dist/test-utils/order-more/orm.js.html +6 -6
  57. package/coverage/lcov-report/dist/test-utils/six/index.html +7 -7
  58. package/coverage/lcov-report/dist/test-utils/six/models/customer.js.html +1 -1
  59. package/coverage/lcov-report/dist/test-utils/six/models/index.html +1 -1
  60. package/coverage/lcov-report/dist/test-utils/six/models/line-item.js.html +1 -1
  61. package/coverage/lcov-report/dist/test-utils/six/models/order.js.html +1 -1
  62. package/coverage/lcov-report/dist/test-utils/six/models/parcel-line-item.js.html +1 -1
  63. package/coverage/lcov-report/dist/test-utils/six/models/parcel.js.html +1 -1
  64. package/coverage/lcov-report/dist/test-utils/six/orm.js.html +6 -6
  65. package/coverage/lcov-report/dist/test-utils/thirteen/index.html +7 -7
  66. package/coverage/lcov-report/dist/test-utils/thirteen/models/audience.js.html +1 -1
  67. package/coverage/lcov-report/dist/test-utils/thirteen/models/brand.js.html +1 -1
  68. package/coverage/lcov-report/dist/test-utils/thirteen/models/category.js.html +1 -1
  69. package/coverage/lcov-report/dist/test-utils/thirteen/models/index.html +1 -1
  70. package/coverage/lcov-report/dist/test-utils/thirteen/models/member.js.html +1 -1
  71. package/coverage/lcov-report/dist/test-utils/thirteen/models/passion.js.html +1 -1
  72. package/coverage/lcov-report/dist/test-utils/thirteen/models/product.js.html +1 -1
  73. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation-audience.js.html +1 -1
  74. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation.js.html +1 -1
  75. package/coverage/lcov-report/dist/test-utils/thirteen/orm.js.html +6 -6
  76. package/coverage/lcov-report/dist/test-utils/three/index.html +1 -1
  77. package/coverage/lcov-report/dist/test-utils/three/results.js.html +1 -1
  78. package/coverage/lcov-report/dist/test-utils/twelve/index.html +7 -7
  79. package/coverage/lcov-report/dist/test-utils/twelve/models/index.html +1 -1
  80. package/coverage/lcov-report/dist/test-utils/twelve/models/member.js.html +1 -1
  81. package/coverage/lcov-report/dist/test-utils/twelve/models/prompt.js.html +1 -1
  82. package/coverage/lcov-report/dist/test-utils/twelve/orm.js.html +6 -6
  83. package/coverage/lcov-report/dist/test-utils/two/index.html +1 -1
  84. package/coverage/lcov-report/dist/test-utils/two/results.js.html +1 -1
  85. package/coverage/lcov-report/index.html +61 -61
  86. package/coverage/lcov-report/src/factory.ts.html +48 -15
  87. package/coverage/lcov-report/src/index.html +5 -5
  88. package/coverage/lcov-report/src/index.ts.html +1 -1
  89. package/coverage/lcov-report/test-utils/blog/index.html +7 -7
  90. package/coverage/lcov-report/test-utils/blog/models/article.ts.html +1 -1
  91. package/coverage/lcov-report/test-utils/blog/models/article_tag.ts.html +1 -1
  92. package/coverage/lcov-report/test-utils/blog/models/index.html +1 -1
  93. package/coverage/lcov-report/test-utils/blog/models/person.ts.html +1 -1
  94. package/coverage/lcov-report/test-utils/blog/models/tag.ts.html +1 -1
  95. package/coverage/lcov-report/test-utils/blog/orm.ts.html +6 -6
  96. package/coverage/lcov-report/test-utils/five/index.html +7 -7
  97. package/coverage/lcov-report/test-utils/five/models/index.html +1 -1
  98. package/coverage/lcov-report/test-utils/five/models/line-item.ts.html +1 -1
  99. package/coverage/lcov-report/test-utils/five/models/order.ts.html +1 -1
  100. package/coverage/lcov-report/test-utils/five/models/parcel-event.ts.html +1 -1
  101. package/coverage/lcov-report/test-utils/five/models/parcel-line-item.ts.html +1 -1
  102. package/coverage/lcov-report/test-utils/five/models/parcel.ts.html +1 -1
  103. package/coverage/lcov-report/test-utils/five/orm.ts.html +6 -6
  104. package/coverage/lcov-report/test-utils/nine/index.html +7 -7
  105. package/coverage/lcov-report/test-utils/nine/models/feature-switch.ts.html +1 -1
  106. package/coverage/lcov-report/test-utils/nine/models/index.html +1 -1
  107. package/coverage/lcov-report/test-utils/nine/orm.ts.html +6 -6
  108. package/coverage/lcov-report/test-utils/order/index.html +7 -7
  109. package/coverage/lcov-report/test-utils/order/models/index.html +1 -1
  110. package/coverage/lcov-report/test-utils/order/models/line-item.ts.html +1 -1
  111. package/coverage/lcov-report/test-utils/order/models/order.ts.html +1 -1
  112. package/coverage/lcov-report/test-utils/order/models/product-variant.ts.html +1 -1
  113. package/coverage/lcov-report/test-utils/order/models/product.ts.html +1 -1
  114. package/coverage/lcov-report/test-utils/order/models/utm-source.ts.html +1 -1
  115. package/coverage/lcov-report/test-utils/order/orm.ts.html +6 -6
  116. package/coverage/lcov-report/test-utils/order-more/index.html +7 -7
  117. package/coverage/lcov-report/test-utils/order-more/models/actual-product-variant.ts.html +1 -1
  118. package/coverage/lcov-report/test-utils/order-more/models/color.ts.html +1 -1
  119. package/coverage/lcov-report/test-utils/order-more/models/customer.ts.html +1 -1
  120. package/coverage/lcov-report/test-utils/order-more/models/gender.ts.html +1 -1
  121. package/coverage/lcov-report/test-utils/order-more/models/index.html +1 -1
  122. package/coverage/lcov-report/test-utils/order-more/models/inventory-level.ts.html +1 -1
  123. package/coverage/lcov-report/test-utils/order-more/models/line-item.ts.html +1 -1
  124. package/coverage/lcov-report/test-utils/order-more/models/order.ts.html +1 -1
  125. package/coverage/lcov-report/test-utils/order-more/models/parcel-event.ts.html +1 -1
  126. package/coverage/lcov-report/test-utils/order-more/models/parcel-line-item.ts.html +1 -1
  127. package/coverage/lcov-report/test-utils/order-more/models/parcel.ts.html +1 -1
  128. package/coverage/lcov-report/test-utils/order-more/models/physical-address.ts.html +1 -1
  129. package/coverage/lcov-report/test-utils/order-more/models/product-variant-image.ts.html +1 -1
  130. package/coverage/lcov-report/test-utils/order-more/models/product-variant.ts.html +1 -1
  131. package/coverage/lcov-report/test-utils/order-more/models/product.ts.html +1 -1
  132. package/coverage/lcov-report/test-utils/order-more/models/refund.ts.html +1 -1
  133. package/coverage/lcov-report/test-utils/order-more/models/shipment-actual-product-variant.ts.html +1 -1
  134. package/coverage/lcov-report/test-utils/order-more/models/shipment.ts.html +1 -1
  135. package/coverage/lcov-report/test-utils/order-more/models/size.ts.html +1 -1
  136. package/coverage/lcov-report/test-utils/order-more/models/utm-medium.ts.html +1 -1
  137. package/coverage/lcov-report/test-utils/order-more/models/utm-source.ts.html +1 -1
  138. package/coverage/lcov-report/test-utils/order-more/orm.ts.html +6 -6
  139. package/coverage/lcov-report/test-utils/six/index.html +7 -7
  140. package/coverage/lcov-report/test-utils/six/models/customer.ts.html +1 -1
  141. package/coverage/lcov-report/test-utils/six/models/index.html +1 -1
  142. package/coverage/lcov-report/test-utils/six/models/line-item.ts.html +1 -1
  143. package/coverage/lcov-report/test-utils/six/models/order.ts.html +1 -1
  144. package/coverage/lcov-report/test-utils/six/models/parcel-line-item.ts.html +1 -1
  145. package/coverage/lcov-report/test-utils/six/models/parcel.ts.html +1 -1
  146. package/coverage/lcov-report/test-utils/six/orm.ts.html +6 -6
  147. package/coverage/lcov-report/test-utils/thirteen/index.html +7 -7
  148. package/coverage/lcov-report/test-utils/thirteen/models/audience.ts.html +1 -1
  149. package/coverage/lcov-report/test-utils/thirteen/models/brand.ts.html +1 -1
  150. package/coverage/lcov-report/test-utils/thirteen/models/category.ts.html +1 -1
  151. package/coverage/lcov-report/test-utils/thirteen/models/index.html +1 -1
  152. package/coverage/lcov-report/test-utils/thirteen/models/member.ts.html +1 -1
  153. package/coverage/lcov-report/test-utils/thirteen/models/passion.ts.html +1 -1
  154. package/coverage/lcov-report/test-utils/thirteen/models/product.ts.html +1 -1
  155. package/coverage/lcov-report/test-utils/thirteen/models/recommendation-audience.ts.html +1 -1
  156. package/coverage/lcov-report/test-utils/thirteen/models/recommendation.ts.html +1 -1
  157. package/coverage/lcov-report/test-utils/thirteen/orm.ts.html +6 -6
  158. package/coverage/lcov-report/test-utils/three/index.html +1 -1
  159. package/coverage/lcov-report/test-utils/three/results.js.html +1 -1
  160. package/coverage/lcov-report/test-utils/twelve/index.html +7 -7
  161. package/coverage/lcov-report/test-utils/twelve/models/index.html +1 -1
  162. package/coverage/lcov-report/test-utils/twelve/models/member.ts.html +1 -1
  163. package/coverage/lcov-report/test-utils/twelve/models/prompt.ts.html +1 -1
  164. package/coverage/lcov-report/test-utils/twelve/orm.ts.html +6 -6
  165. package/coverage/lcov-report/test-utils/two/index.html +1 -1
  166. package/coverage/lcov-report/test-utils/two/results.js.html +1 -1
  167. package/coverage/lcov.info +591 -635
  168. package/dist/example/factories/orm.d.ts +2 -1
  169. package/dist/example/factories/orm.js +1 -1
  170. package/dist/example/models/employer.d.ts +1 -1
  171. package/dist/example/models/job.d.ts +1 -1
  172. package/dist/example/models/person.d.ts +1 -1
  173. package/dist/src/factory.d.ts +5 -4
  174. package/dist/src/factory.js +10 -5
  175. package/dist/src/factory.spec.js +5 -5
  176. package/dist/test-utils/blog/models/article.d.ts +1 -1
  177. package/dist/test-utils/blog/models/article_tag.d.ts +1 -1
  178. package/dist/test-utils/blog/models/person.d.ts +1 -1
  179. package/dist/test-utils/blog/models/tag.d.ts +1 -1
  180. package/dist/test-utils/blog/orm.js +1 -1
  181. package/dist/test-utils/blog/orm.ts +1 -1
  182. package/dist/test-utils/five/models/line-item.d.ts +1 -1
  183. package/dist/test-utils/five/models/order.d.ts +1 -1
  184. package/dist/test-utils/five/models/parcel-event.d.ts +1 -1
  185. package/dist/test-utils/five/models/parcel-line-item.d.ts +1 -1
  186. package/dist/test-utils/five/models/parcel.d.ts +1 -1
  187. package/dist/test-utils/five/orm.d.ts +2 -1
  188. package/dist/test-utils/five/orm.js +1 -1
  189. package/dist/test-utils/five/orm.ts +1 -1
  190. package/dist/test-utils/nine/models/feature-switch.d.ts +1 -1
  191. package/dist/test-utils/nine/orm.d.ts +2 -1
  192. package/dist/test-utils/nine/orm.js +1 -1
  193. package/dist/test-utils/nine/orm.ts +1 -1
  194. package/dist/test-utils/order/models/line-item.d.ts +1 -1
  195. package/dist/test-utils/order/models/order.d.ts +1 -1
  196. package/dist/test-utils/order/models/product-variant.d.ts +1 -1
  197. package/dist/test-utils/order/models/product.d.ts +1 -1
  198. package/dist/test-utils/order/models/utm-source.d.ts +1 -1
  199. package/dist/test-utils/order/orm.d.ts +2 -1
  200. package/dist/test-utils/order/orm.js +1 -1
  201. package/dist/test-utils/order/orm.ts +1 -1
  202. package/dist/test-utils/order-more/models/actual-product-variant.d.ts +1 -1
  203. package/dist/test-utils/order-more/models/color.d.ts +1 -1
  204. package/dist/test-utils/order-more/models/customer.d.ts +1 -1
  205. package/dist/test-utils/order-more/models/gender.d.ts +1 -1
  206. package/dist/test-utils/order-more/models/inventory-level.d.ts +1 -1
  207. package/dist/test-utils/order-more/models/line-item.d.ts +1 -1
  208. package/dist/test-utils/order-more/models/order.d.ts +1 -1
  209. package/dist/test-utils/order-more/models/parcel-event.d.ts +1 -1
  210. package/dist/test-utils/order-more/models/parcel-line-item.d.ts +1 -1
  211. package/dist/test-utils/order-more/models/parcel.d.ts +1 -1
  212. package/dist/test-utils/order-more/models/physical-address.d.ts +1 -1
  213. package/dist/test-utils/order-more/models/product-variant-image.d.ts +1 -1
  214. package/dist/test-utils/order-more/models/product-variant.d.ts +1 -1
  215. package/dist/test-utils/order-more/models/product.d.ts +1 -1
  216. package/dist/test-utils/order-more/models/refund.d.ts +1 -1
  217. package/dist/test-utils/order-more/models/shipment-actual-product-variant.d.ts +1 -1
  218. package/dist/test-utils/order-more/models/shipment.d.ts +1 -1
  219. package/dist/test-utils/order-more/models/size.d.ts +1 -1
  220. package/dist/test-utils/order-more/models/utm-medium.d.ts +1 -1
  221. package/dist/test-utils/order-more/models/utm-source.d.ts +1 -1
  222. package/dist/test-utils/order-more/orm.d.ts +2 -1
  223. package/dist/test-utils/order-more/orm.js +1 -1
  224. package/dist/test-utils/order-more/orm.ts +1 -1
  225. package/dist/test-utils/six/models/customer.d.ts +1 -1
  226. package/dist/test-utils/six/models/line-item.d.ts +1 -1
  227. package/dist/test-utils/six/models/order.d.ts +1 -1
  228. package/dist/test-utils/six/models/parcel-line-item.d.ts +1 -1
  229. package/dist/test-utils/six/models/parcel.d.ts +1 -1
  230. package/dist/test-utils/six/orm.d.ts +2 -1
  231. package/dist/test-utils/six/orm.js +1 -1
  232. package/dist/test-utils/six/orm.ts +1 -1
  233. package/dist/test-utils/thirteen/models/audience.d.ts +1 -1
  234. package/dist/test-utils/thirteen/models/brand.d.ts +1 -1
  235. package/dist/test-utils/thirteen/models/category.d.ts +1 -1
  236. package/dist/test-utils/thirteen/models/member.d.ts +1 -1
  237. package/dist/test-utils/thirteen/models/passion.d.ts +1 -1
  238. package/dist/test-utils/thirteen/models/product.d.ts +1 -1
  239. package/dist/test-utils/thirteen/models/recommendation-audience.d.ts +1 -1
  240. package/dist/test-utils/thirteen/models/recommendation.d.ts +1 -1
  241. package/dist/test-utils/thirteen/orm.d.ts +2 -1
  242. package/dist/test-utils/thirteen/orm.js +1 -1
  243. package/dist/test-utils/thirteen/orm.ts +1 -1
  244. package/dist/test-utils/twelve/models/member.d.ts +1 -1
  245. package/dist/test-utils/twelve/models/prompt.d.ts +1 -1
  246. package/dist/test-utils/twelve/orm.d.ts +2 -1
  247. package/dist/test-utils/twelve/orm.js +1 -1
  248. package/dist/test-utils/twelve/orm.ts +1 -1
  249. package/example/factories/orm.ts +1 -1
  250. package/package.json +1 -1
  251. package/src/factory.spec.ts +5 -5
  252. package/src/factory.ts +22 -11
  253. package/test-utils/blog/orm.ts +1 -1
  254. package/test-utils/five/orm.ts +1 -1
  255. package/test-utils/nine/orm.ts +1 -1
  256. package/test-utils/order/orm.ts +1 -1
  257. package/test-utils/order-more/orm.ts +1 -1
  258. package/test-utils/six/orm.ts +1 -1
  259. package/test-utils/thirteen/orm.ts +1 -1
  260. package/test-utils/twelve/orm.ts +1 -1
package/README.md CHANGED
@@ -257,7 +257,7 @@ import { personEntity } from '../models/person';
257
257
  import { jobEntity } from '../models/job';
258
258
  import { employerEntity } from '../models/employer';
259
259
  const orm = create({
260
- getEntities: () => [personEntity, jobEntity, employerEntity],
260
+ entities: [personEntity, jobEntity, employerEntity],
261
261
  db
262
262
  });
263
263
  export default orm;
@@ -381,7 +381,7 @@ That's it! This controller code now works! The `getPerson` function returns a pr
381
381
 
382
382
  ```typescript
383
383
  function create(options: {
384
- getEntities: () => Array<IEntity>;
384
+ entities: Array<IEntity>;
385
385
  db: DataBaseDriver;
386
386
  }): PureORM;
387
387
  ```
@@ -390,7 +390,50 @@ The factory function for creating your ORM.
390
390
 
391
391
  **Parameters**
392
392
 
393
- - `getEntities: () => Array<IEntity>` - A function which returns an array of all the business object class entity configuration objects.
393
+ - `entities: Array<IEntity>` - An array of all the business object class entity configuration objects.
394
+
395
+ ```typescript
396
+ interface IEntity<T extends IModel> {
397
+ // the tablename in the database for the entity (EG: article_tag)
398
+ tableName: string;
399
+ // the name to use for the model in the structured results of other models
400
+ // defaults to the camelcase of the tableName (EG: articleTag)
401
+ displayName?: string;
402
+ // the name to use for the collection in the structured results of other models
403
+ // defaults to adding an "s" to the displayName (EG: articleTags)
404
+ collectionDisplayName?: string;
405
+ // the column specs for the table (see interferface below)
406
+ columns: IColumns;
407
+ // the pure business object to use for result data
408
+ Model: new (props: any) => T;
409
+ // the pure business object to use for result collection data
410
+ Collection: new ({ models }: any) => ICollection<T>;
411
+ }
412
+
413
+ // the interface for the `columns` property of the Entity interface.
414
+ // is usually an array of the column data, but can be a function which
415
+ // returns they array of column data (which is used to avoid circular
416
+ // dependency issues when two entities reference each other).
417
+ type IColumns = Array<IColumn> | (() => Array<IColumn>);
418
+
419
+ // the column can just be a string (EG: 'id', 'value, 'label') which is
420
+ // understood to be the column name, or it can be an IColumnData object.
421
+ type IColumn = string | IColumnData;
422
+
423
+ // an object to specify more than just the column name
424
+ interface IColumnData {
425
+ // the name of the column (EG: is_active)
426
+ column: string;
427
+ // the name to be used in the pure business object model
428
+ // (defaults to the camelcase of the column, EG: isActive)
429
+ property?: string;
430
+ // the model this column references as a foreign key
431
+ references?: new (props: any) => IModel;
432
+ // whether this column is a primary key
433
+ primaryKey?: boolean;
434
+ }
435
+ ```
436
+
394
437
  - `db: <DataBaseDriverInstance>` - A database driver instance.
395
438
 
396
439
  **Return Value**
@@ -467,7 +510,7 @@ interface PureORM {
467
510
  deleteMatching: <T extends IModel>(model => T);
468
511
 
469
512
  /* ------------------------------------------------------------------------*/
470
- /* Built-in basic CRUD functions ------------------------------------------*/
513
+ /* Helpful Properties -----------------------------------------------------*/
471
514
  /* ------------------------------------------------------------------------*/
472
515
 
473
516
  /* The tables property gives access to the sql select clause string for
@@ -476,8 +519,8 @@ interface PureORM {
476
519
  * and namespacing them to the table to avoid collisions and as required
477
520
  * for PureORM mapping.
478
521
  */
479
-
480
- tables: { [key:string]: { [key: string]: string; }};
522
+ tables: { [key:string]: { 'columns': string; }};
523
+ db: DataBaseDriver;
481
524
  }
482
525
  ```
483
526