pure-orm 4.0.0-4 → 4.0.0-7
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.
- package/README.md +11 -11
- package/coverage/clover.xml +367 -581
- package/coverage/coverage-final.json +18 -20
- package/coverage/lcov-report/dist/src/core.js.html +1014 -0
- package/coverage/lcov-report/dist/src/drivers/index.html +97 -0
- package/coverage/lcov-report/dist/src/drivers/pgp.js.html +240 -0
- package/coverage/lcov-report/dist/src/factory.js.html +298 -187
- package/coverage/lcov-report/dist/src/index.html +20 -33
- package/coverage/lcov-report/dist/src/index.js.html +16 -10
- package/coverage/lcov-report/dist/src/orm.js.html +645 -0
- package/coverage/lcov-report/dist/test-utils/blog/entities.js.html +108 -0
- package/coverage/lcov-report/dist/test-utils/blog/index.html +6 -6
- package/coverage/lcov-report/dist/test-utils/blog/models/article.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/blog/models/article_tag.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/blog/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/blog/models/person.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/blog/models/tag.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/blog/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/five/entities.js.html +114 -0
- package/coverage/lcov-report/dist/test-utils/five/index.html +6 -6
- package/coverage/lcov-report/dist/test-utils/five/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/five/models/line-item.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/five/models/order.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/five/models/parcel-event.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/five/models/parcel-line-item.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/five/models/parcel.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/five/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/nine/entities.js.html +84 -0
- package/coverage/lcov-report/dist/test-utils/nine/index.html +6 -6
- package/coverage/lcov-report/dist/test-utils/nine/models/feature-switch.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/nine/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/nine/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order/entities.js.html +114 -0
- package/coverage/lcov-report/dist/test-utils/order/index.html +6 -6
- package/coverage/lcov-report/dist/test-utils/order/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order/models/line-item.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order/models/order.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order/models/product-variant.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order/models/product.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order/models/utm-source.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/entities.js.html +204 -0
- package/coverage/lcov-report/dist/test-utils/order-more/index.html +6 -6
- package/coverage/lcov-report/dist/test-utils/order-more/models/actual-product-variant.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/color.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/customer.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/gender.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/inventory-level.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/line-item.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/order.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-event.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-line-item.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/parcel.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/physical-address.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant-image.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/product.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/refund.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/shipment-actual-product-variant.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/shipment.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/size.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/utm-medium.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/models/utm-source.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/order-more/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/six/entities.js.html +114 -0
- package/coverage/lcov-report/dist/test-utils/six/index.html +6 -6
- package/coverage/lcov-report/dist/test-utils/six/models/customer.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/six/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/six/models/line-item.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/six/models/order.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/six/models/parcel-line-item.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/six/models/parcel.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/six/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/entities.js.html +132 -0
- package/coverage/lcov-report/dist/test-utils/thirteen/index.html +6 -6
- package/coverage/lcov-report/dist/test-utils/thirteen/models/audience.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/brand.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/category.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/member.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/passion.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/product.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation-audience.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/thirteen/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/three/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/three/results.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/twelve/entities.js.html +87 -0
- package/coverage/lcov-report/dist/test-utils/twelve/index.html +6 -6
- package/coverage/lcov-report/dist/test-utils/twelve/models/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/twelve/models/member.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/twelve/models/prompt.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/twelve/orm.js.html +1 -1
- package/coverage/lcov-report/dist/test-utils/two/index.html +1 -1
- package/coverage/lcov-report/dist/test-utils/two/results.js.html +1 -1
- package/coverage/lcov-report/index.html +47 -47
- package/coverage/lcov-report/src/core.ts.html +1527 -0
- package/coverage/lcov-report/src/drivers/index.html +97 -0
- package/coverage/lcov-report/src/drivers/pgp.ts.html +516 -0
- package/coverage/lcov-report/src/factory.ts.html +448 -247
- package/coverage/lcov-report/src/index.html +20 -33
- package/coverage/lcov-report/src/index.ts.html +23 -5
- package/coverage/lcov-report/src/orm.ts.html +954 -0
- package/coverage/lcov-report/test-utils/blog/entities.ts.html +102 -0
- package/coverage/lcov-report/test-utils/blog/index.html +6 -6
- package/coverage/lcov-report/test-utils/blog/models/article.ts.html +1 -1
- package/coverage/lcov-report/test-utils/blog/models/article_tag.ts.html +1 -1
- package/coverage/lcov-report/test-utils/blog/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/blog/models/person.ts.html +1 -1
- package/coverage/lcov-report/test-utils/blog/models/tag.ts.html +1 -1
- package/coverage/lcov-report/test-utils/blog/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/five/entities.ts.html +105 -0
- package/coverage/lcov-report/test-utils/five/index.html +2 -2
- package/coverage/lcov-report/test-utils/five/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/five/models/line-item.ts.html +1 -1
- package/coverage/lcov-report/test-utils/five/models/order.ts.html +1 -1
- package/coverage/lcov-report/test-utils/five/models/parcel-event.ts.html +1 -1
- package/coverage/lcov-report/test-utils/five/models/parcel-line-item.ts.html +1 -1
- package/coverage/lcov-report/test-utils/five/models/parcel.ts.html +1 -1
- package/coverage/lcov-report/test-utils/five/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/nine/entities.ts.html +75 -0
- package/coverage/lcov-report/test-utils/nine/index.html +2 -2
- package/coverage/lcov-report/test-utils/nine/models/feature-switch.ts.html +1 -1
- package/coverage/lcov-report/test-utils/nine/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/nine/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order/entities.ts.html +108 -0
- package/coverage/lcov-report/test-utils/order/index.html +2 -2
- package/coverage/lcov-report/test-utils/order/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/order/models/line-item.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order/models/order.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order/models/product-variant.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order/models/product.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order/models/utm-source.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/entities.ts.html +198 -0
- package/coverage/lcov-report/test-utils/order-more/index.html +2 -2
- package/coverage/lcov-report/test-utils/order-more/models/actual-product-variant.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/color.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/customer.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/gender.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/inventory-level.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/line-item.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/order.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/parcel-event.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/parcel-line-item.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/parcel.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/physical-address.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/product-variant-image.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/product-variant.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/product.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/refund.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/shipment-actual-product-variant.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/shipment.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/size.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/utm-medium.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/models/utm-source.ts.html +1 -1
- package/coverage/lcov-report/test-utils/order-more/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/six/entities.ts.html +105 -0
- package/coverage/lcov-report/test-utils/six/index.html +2 -2
- package/coverage/lcov-report/test-utils/six/models/customer.ts.html +1 -1
- package/coverage/lcov-report/test-utils/six/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/six/models/line-item.ts.html +1 -1
- package/coverage/lcov-report/test-utils/six/models/order.ts.html +1 -1
- package/coverage/lcov-report/test-utils/six/models/parcel-line-item.ts.html +1 -1
- package/coverage/lcov-report/test-utils/six/models/parcel.ts.html +1 -1
- package/coverage/lcov-report/test-utils/six/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/entities.ts.html +123 -0
- package/coverage/lcov-report/test-utils/thirteen/index.html +2 -2
- package/coverage/lcov-report/test-utils/thirteen/models/audience.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/brand.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/category.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/member.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/passion.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/product.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/recommendation-audience.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/models/recommendation.ts.html +1 -1
- package/coverage/lcov-report/test-utils/thirteen/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/three/index.html +1 -1
- package/coverage/lcov-report/test-utils/three/results.js.html +1 -1
- package/coverage/lcov-report/test-utils/twelve/entities.ts.html +78 -0
- package/coverage/lcov-report/test-utils/twelve/index.html +2 -2
- package/coverage/lcov-report/test-utils/twelve/models/index.html +1 -1
- package/coverage/lcov-report/test-utils/twelve/models/member.ts.html +1 -1
- package/coverage/lcov-report/test-utils/twelve/models/prompt.ts.html +1 -1
- package/coverage/lcov-report/test-utils/twelve/orm.ts.html +1 -1
- package/coverage/lcov-report/test-utils/two/index.html +1 -1
- package/coverage/lcov-report/test-utils/two/results.js.html +1 -1
- package/coverage/lcov.info +713 -1142
- package/dist/example/factories/orm.d.ts +1 -46
- package/dist/example/models/employer.d.ts +1 -1
- package/dist/example/models/job.d.ts +1 -1
- package/dist/example/models/person.d.ts +1 -1
- package/dist/src/core.d.ts +66 -0
- package/dist/src/{factory.js → core.js} +43 -240
- package/dist/src/{factory.spec.d.ts → core.spec.d.ts} +0 -0
- package/dist/src/{factory.spec.js → core.spec.js} +56 -43
- package/dist/src/driver-integrations/index.d.ts +13 -0
- package/dist/src/driver-integrations/index.js +2 -0
- package/dist/src/driver-integrations/pgp.d.ts +2 -0
- package/dist/src/driver-integrations/pgp.js +57 -0
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.js +5 -3
- package/dist/src/orm.d.ts +20 -0
- package/dist/src/orm.js +190 -0
- package/dist/test-utils/blog/entities.d.ts +1 -0
- package/dist/test-utils/blog/{orm.js → entities.js} +7 -6
- package/dist/test-utils/blog/{orm.ts → entities.ts} +6 -6
- package/dist/test-utils/blog/models/article.d.ts +1 -1
- package/dist/test-utils/blog/models/article_tag.d.ts +1 -1
- package/dist/test-utils/blog/models/person.d.ts +1 -1
- package/dist/test-utils/blog/models/tag.d.ts +1 -1
- package/dist/test-utils/five/entities.d.ts +6 -0
- package/dist/test-utils/five/{orm.js → entities.js} +8 -12
- package/dist/test-utils/five/{orm.ts → entities.ts} +7 -12
- package/dist/test-utils/five/models/line-item.d.ts +1 -1
- package/dist/test-utils/five/models/order.d.ts +1 -1
- package/dist/test-utils/five/models/parcel-event.d.ts +1 -1
- package/dist/test-utils/five/models/parcel-line-item.d.ts +1 -1
- package/dist/test-utils/five/models/parcel.d.ts +1 -1
- package/dist/test-utils/nine/entities.d.ts +6 -0
- package/dist/test-utils/nine/entities.js +5 -0
- package/dist/test-utils/nine/entities.ts +2 -0
- package/dist/test-utils/nine/models/feature-switch.d.ts +1 -1
- package/dist/test-utils/order/entities.d.ts +26 -0
- package/dist/test-utils/order/{orm.js → entities.js} +8 -12
- package/{test-utils/order/orm.ts → dist/test-utils/order/entities.ts} +7 -12
- package/dist/test-utils/order/models/line-item.d.ts +1 -1
- package/dist/test-utils/order/models/order.d.ts +1 -1
- package/dist/test-utils/order/models/product-variant.d.ts +1 -1
- package/dist/test-utils/order/models/product.d.ts +1 -1
- package/dist/test-utils/order/models/utm-source.d.ts +1 -1
- package/dist/test-utils/order-more/entities.d.ts +6 -0
- package/dist/test-utils/order-more/{orm.js → entities.js} +23 -27
- package/dist/test-utils/order-more/{orm.ts → entities.ts} +22 -27
- package/dist/test-utils/order-more/models/actual-product-variant.d.ts +1 -1
- package/dist/test-utils/order-more/models/color.d.ts +1 -1
- package/dist/test-utils/order-more/models/customer.d.ts +1 -1
- package/dist/test-utils/order-more/models/gender.d.ts +1 -1
- package/dist/test-utils/order-more/models/inventory-level.d.ts +1 -1
- package/dist/test-utils/order-more/models/line-item.d.ts +1 -1
- package/dist/test-utils/order-more/models/order.d.ts +1 -1
- package/dist/test-utils/order-more/models/parcel-event.d.ts +1 -1
- package/dist/test-utils/order-more/models/parcel-line-item.d.ts +1 -1
- package/dist/test-utils/order-more/models/parcel.d.ts +1 -1
- package/dist/test-utils/order-more/models/physical-address.d.ts +1 -1
- package/dist/test-utils/order-more/models/product-variant-image.d.ts +1 -1
- package/dist/test-utils/order-more/models/product-variant.d.ts +1 -1
- package/dist/test-utils/order-more/models/product.d.ts +1 -1
- package/dist/test-utils/order-more/models/refund.d.ts +1 -1
- package/dist/test-utils/order-more/models/shipment-actual-product-variant.d.ts +1 -1
- package/dist/test-utils/order-more/models/shipment.d.ts +1 -1
- package/dist/test-utils/order-more/models/size.d.ts +1 -1
- package/dist/test-utils/order-more/models/utm-medium.d.ts +1 -1
- package/dist/test-utils/order-more/models/utm-source.d.ts +1 -1
- package/dist/test-utils/six/entities.d.ts +6 -0
- package/dist/test-utils/six/{orm.js → entities.js} +8 -12
- package/{test-utils/six/orm.ts → dist/test-utils/six/entities.ts} +7 -12
- package/dist/test-utils/six/models/customer.d.ts +1 -1
- package/dist/test-utils/six/models/line-item.d.ts +1 -1
- package/dist/test-utils/six/models/order.d.ts +1 -1
- package/dist/test-utils/six/models/parcel-line-item.d.ts +1 -1
- package/dist/test-utils/six/models/parcel.d.ts +1 -1
- package/dist/test-utils/thirteen/entities.d.ts +6 -0
- package/dist/test-utils/thirteen/{orm.js → entities.js} +11 -15
- package/dist/test-utils/thirteen/{orm.ts → entities.ts} +10 -15
- package/dist/test-utils/thirteen/models/audience.d.ts +1 -1
- package/dist/test-utils/thirteen/models/brand.d.ts +1 -1
- package/dist/test-utils/thirteen/models/category.d.ts +1 -1
- package/dist/test-utils/thirteen/models/member.d.ts +1 -1
- package/dist/test-utils/thirteen/models/passion.d.ts +1 -1
- package/dist/test-utils/thirteen/models/product.d.ts +1 -1
- package/dist/test-utils/thirteen/models/recommendation-audience.d.ts +1 -1
- package/dist/test-utils/thirteen/models/recommendation.d.ts +1 -1
- package/dist/test-utils/twelve/entities.d.ts +6 -0
- package/dist/test-utils/twelve/entities.js +6 -0
- package/dist/test-utils/twelve/entities.ts +3 -0
- package/dist/test-utils/twelve/models/member.d.ts +1 -1
- package/dist/test-utils/twelve/models/prompt.d.ts +1 -1
- package/package.json +4 -3
- package/src/{factory.spec.ts → core.spec.ts} +55 -41
- package/src/{factory.ts → core.ts} +86 -339
- package/src/driver-integrations/index.ts +56 -0
- package/src/driver-integrations/pgp.ts +92 -0
- package/src/index.ts +5 -3
- package/src/orm.ts +291 -0
- package/test-utils/blog/{orm.ts → entities.ts} +6 -6
- package/test-utils/five/{orm.ts → entities.ts} +7 -12
- package/test-utils/nine/entities.ts +2 -0
- package/{dist/test-utils/order/orm.ts → test-utils/order/entities.ts} +7 -12
- package/test-utils/order-more/{orm.ts → entities.ts} +22 -27
- package/{dist/test-utils/six/orm.ts → test-utils/six/entities.ts} +7 -12
- package/test-utils/thirteen/{orm.ts → entities.ts} +10 -15
- package/test-utils/twelve/entities.ts +3 -0
- package/dist/src/factory.d.ts +0 -99
- package/dist/test-utils/blog/orm.d.ts +0 -2
- package/dist/test-utils/five/orm.d.ts +0 -47
- package/dist/test-utils/nine/orm.d.ts +0 -47
- package/dist/test-utils/nine/orm.js +0 -9
- package/dist/test-utils/nine/orm.ts +0 -7
- package/dist/test-utils/order/orm.d.ts +0 -47
- package/dist/test-utils/order-more/orm.d.ts +0 -47
- package/dist/test-utils/six/orm.d.ts +0 -47
- package/dist/test-utils/thirteen/orm.d.ts +0 -47
- package/dist/test-utils/twelve/orm.d.ts +0 -47
- package/dist/test-utils/twelve/orm.js +0 -10
- package/dist/test-utils/twelve/orm.ts +0 -8
- package/test-utils/nine/orm.ts +0 -7
- package/test-utils/twelve/orm.ts +0 -8
|
@@ -1,47 +1,2 @@
|
|
|
1
|
-
declare const orm:
|
|
2
|
-
nestClump: (clump: import("../../src/factory").IModel[][]) => object;
|
|
3
|
-
clumpIntoGroups: (processed: import("../../src/factory").IModel[][]) => import("../../src/factory").IModel[][][];
|
|
4
|
-
mapToBos: (objectified: any) => any[];
|
|
5
|
-
objectifyDatabaseResult: (result: object) => any;
|
|
6
|
-
createFromDatabase: <T extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: object | object[]) => T | undefined;
|
|
7
|
-
createOneFromDatabase: <T_1 extends import("../../src/factory").IModel>(_result: any) => T_1;
|
|
8
|
-
createOneOrNoneFromDatabase: <T_2 extends import("../../src/factory").IModel>(_result: any) => void | T_2;
|
|
9
|
-
createManyFromDatabase: <T_3 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: any) => T_3;
|
|
10
|
-
getSqlInsertParts: (model: import("../../src/factory").IModel) => {
|
|
11
|
-
columns: string;
|
|
12
|
-
values: any[];
|
|
13
|
-
valuesVar: string[];
|
|
14
|
-
};
|
|
15
|
-
getSqlUpdateParts: (model: import("../../src/factory").IModel, on?: string) => {
|
|
16
|
-
clause: string;
|
|
17
|
-
idVar: string;
|
|
18
|
-
values: any[];
|
|
19
|
-
};
|
|
20
|
-
getMatchingParts: (model: import("../../src/factory").IModel) => {
|
|
21
|
-
whereClause: string;
|
|
22
|
-
values: any[];
|
|
23
|
-
};
|
|
24
|
-
getMatchingPartsObject: (model: import("../../src/factory").IModel) => {
|
|
25
|
-
whereClause: string;
|
|
26
|
-
values: any;
|
|
27
|
-
};
|
|
28
|
-
getNewWith: (model: import("../../src/factory").IModel, sqlColumns: any, values: any) => any;
|
|
29
|
-
getValueBySqlColumn: (model: import("../../src/factory").IModel, sqlColumn: string) => any;
|
|
30
|
-
one: <T_4 extends import("../../src/factory").IModel>(query: string, values?: object | undefined, errorHandler?: (err: Error) => never) => T_4;
|
|
31
|
-
oneOrNone: <T_5 extends import("../../src/factory").IModel>(query: string, values?: object | undefined, errorHandler?: (err: Error) => never) => void | T_5;
|
|
32
|
-
many: <T_6 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(query: string, values?: object | undefined, errorHandler?: (err: Error) => never) => T_6;
|
|
33
|
-
any: <T_7 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(query: string, values?: object | undefined, errorHandler?: (err: Error) => never) => void | T_7;
|
|
34
|
-
none: (query: string, values?: object | undefined, errorHandler?: (err: Error) => never) => void;
|
|
35
|
-
create: <T_8 extends import("../../src/factory").IModel>(model: T_8) => T_8;
|
|
36
|
-
update: <T_9 extends import("../../src/factory").IModel>(model: T_9, { on }?: {
|
|
37
|
-
on?: string | undefined;
|
|
38
|
-
}) => T_9;
|
|
39
|
-
delete: <T_10 extends import("../../src/factory").IModel>(model: T_10) => void;
|
|
40
|
-
deleteMatching: <T_11 extends import("../../src/factory").IModel>(model: T_11) => void;
|
|
41
|
-
getMatching: <T_12 extends import("../../src/factory").IModel>(model: T_12) => T_12;
|
|
42
|
-
getOneOrNoneMatching: <T_13 extends import("../../src/factory").IModel>(model: T_13) => void | T_13;
|
|
43
|
-
getAnyMatching: <T_14 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => void | T_14;
|
|
44
|
-
getAllMatching: <T_15 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => T_15;
|
|
45
|
-
tables: any;
|
|
46
|
-
};
|
|
1
|
+
declare const orm: import("../../src/orm").IPureORM;
|
|
47
2
|
export default orm;
|
|
@@ -16,7 +16,7 @@ export declare class Employers implements ICollection<Employer> {
|
|
|
16
16
|
}
|
|
17
17
|
export declare const employerEntity: {
|
|
18
18
|
tableName: string;
|
|
19
|
-
columns: import("../../src/
|
|
19
|
+
columns: import("../../src/core").IColumn[];
|
|
20
20
|
Model: typeof Employer;
|
|
21
21
|
Collection: typeof Employers;
|
|
22
22
|
};
|
|
@@ -28,7 +28,7 @@ export declare class Jobs implements ICollection<Job> {
|
|
|
28
28
|
}
|
|
29
29
|
export declare const jobEntity: {
|
|
30
30
|
tableName: string;
|
|
31
|
-
columns: import("../../src/
|
|
31
|
+
columns: import("../../src/core").IColumn[];
|
|
32
32
|
Model: typeof Job;
|
|
33
33
|
Collection: typeof Jobs;
|
|
34
34
|
};
|
|
@@ -18,7 +18,7 @@ export declare class Persons implements ICollection<Person> {
|
|
|
18
18
|
}
|
|
19
19
|
export declare const personEntity: {
|
|
20
20
|
tableName: string;
|
|
21
|
-
columns: import("../../src/
|
|
21
|
+
columns: import("../../src/core").IColumn[];
|
|
22
22
|
Model: typeof Person;
|
|
23
23
|
Collection: typeof Persons;
|
|
24
24
|
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
export interface IColumnData {
|
|
2
|
+
column: string;
|
|
3
|
+
property?: string;
|
|
4
|
+
references?: IModelClass;
|
|
5
|
+
primaryKey?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare type IColumn = IColumnData | string;
|
|
8
|
+
export declare type IColumns = Array<IColumn> | (() => Array<IColumn>);
|
|
9
|
+
export interface IColumnInternalData {
|
|
10
|
+
column: string;
|
|
11
|
+
property: string;
|
|
12
|
+
references?: IModelClass;
|
|
13
|
+
primaryKey: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare type IColumnInternal = IColumnInternalData;
|
|
16
|
+
export declare type IColumnsInternal = Array<IColumnInternal>;
|
|
17
|
+
export interface IModel {
|
|
18
|
+
[key: string]: any;
|
|
19
|
+
}
|
|
20
|
+
export declare type IModelClass = new (props: any) => IModel;
|
|
21
|
+
export interface ICollection<T extends IModel> {
|
|
22
|
+
models: Array<T>;
|
|
23
|
+
}
|
|
24
|
+
export interface IEntity<T extends IModel> {
|
|
25
|
+
tableName: string;
|
|
26
|
+
displayName?: string;
|
|
27
|
+
collectionDisplayName?: string;
|
|
28
|
+
columns: IColumns;
|
|
29
|
+
Model: new (props: any) => T;
|
|
30
|
+
Collection: new ({ models }: any) => ICollection<T>;
|
|
31
|
+
}
|
|
32
|
+
export declare type IEntities<T extends IModel> = Array<IEntity<T>>;
|
|
33
|
+
export interface IEntityInternal<T extends IModel> {
|
|
34
|
+
tableName: string;
|
|
35
|
+
displayName: string;
|
|
36
|
+
collectionDisplayName: string;
|
|
37
|
+
columns: IColumnsInternal;
|
|
38
|
+
propertyNames: Array<string>;
|
|
39
|
+
Model: new (props: any) => T;
|
|
40
|
+
Collection: new ({ models }: any) => ICollection<T>;
|
|
41
|
+
columnNames: Array<string>;
|
|
42
|
+
prefixedColumnNames: Array<string>;
|
|
43
|
+
primaryKeys: Array<string>;
|
|
44
|
+
references: object;
|
|
45
|
+
selectColumnsClause: string;
|
|
46
|
+
getPkId: (model: IModel) => string;
|
|
47
|
+
}
|
|
48
|
+
export declare type IEntitiesInternal<T extends IModel> = Array<IEntityInternal<T>>;
|
|
49
|
+
export interface ICreateCoreOptions {
|
|
50
|
+
entities: IEntities<IModel>;
|
|
51
|
+
}
|
|
52
|
+
export interface ICore {
|
|
53
|
+
createFromDatabase: <T extends ICollection<IModel>>(rows: any) => T;
|
|
54
|
+
createAnyFromDatabase: <T extends ICollection<IModel>>(rows: any, rootKey: string | IModel) => T;
|
|
55
|
+
createOneFromDatabase: <T extends IModel>(rows: any) => T;
|
|
56
|
+
createOneOrNoneFromDatabase: <T extends IModel>(rows: any) => T | void;
|
|
57
|
+
createManyFromDatabase: <T extends ICollection<IModel>>(rows: any) => T;
|
|
58
|
+
tables: {
|
|
59
|
+
[key: string]: {
|
|
60
|
+
columns: string;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
getEntityByModel: (model: IModel) => IEntityInternal<IModel>;
|
|
64
|
+
getEntityByTableName: (tableName: string) => IEntityInternal<IModel>;
|
|
65
|
+
}
|
|
66
|
+
export declare const createCore: ({ entities: externalEntities }: ICreateCoreOptions) => ICore;
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
+
exports.createCore = void 0;
|
|
7
|
+
const camelcase_1 = __importDefault(require("camelcase"));
|
|
8
|
+
const createCore = ({ entities: externalEntities }) => {
|
|
6
9
|
const entities = externalEntities.map((d) => {
|
|
7
10
|
const tableName = d.tableName;
|
|
8
|
-
const displayName = d.displayName ||
|
|
11
|
+
const displayName = d.displayName || (0, camelcase_1.default)(d.tableName);
|
|
9
12
|
const collectionDisplayName = d.collectionDisplayName || `${displayName}s`;
|
|
10
13
|
const columns = (typeof d.columns === 'function' ? d.columns() : d.columns).map((d) => {
|
|
11
14
|
if (typeof d === 'string') {
|
|
12
15
|
return {
|
|
13
16
|
column: d,
|
|
14
|
-
property:
|
|
17
|
+
property: (0, camelcase_1.default)(d),
|
|
15
18
|
primaryKey: false
|
|
16
19
|
};
|
|
17
20
|
}
|
|
18
|
-
return Object.assign({ column: d.column, property: d.property ||
|
|
21
|
+
return Object.assign({ column: d.column, property: d.property || (0, camelcase_1.default)(d.column), primaryKey: d.primaryKey || false }, (d.references ? { references: d.references } : {}));
|
|
19
22
|
});
|
|
20
23
|
const propertyNames = columns.map((x) => x.property);
|
|
21
24
|
const columnNames = columns.map((x) => x.column);
|
|
@@ -69,14 +72,6 @@ const create = ({ entities: externalEntities, db, logError }) => {
|
|
|
69
72
|
}
|
|
70
73
|
return entity;
|
|
71
74
|
};
|
|
72
|
-
const defaultErrorHandler = (err) => {
|
|
73
|
-
if (!(err.name === 'QueryResultError')) {
|
|
74
|
-
if (logError) {
|
|
75
|
-
logError(err);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
throw err;
|
|
79
|
-
};
|
|
80
75
|
/*
|
|
81
76
|
* In:
|
|
82
77
|
* [
|
|
@@ -229,7 +224,7 @@ const create = ({ entities: externalEntities, db, logError }) => {
|
|
|
229
224
|
let propertyName = entity.propertyNames[entity.columnNames.indexOf(column)];
|
|
230
225
|
if (!propertyName) {
|
|
231
226
|
if (column.startsWith('meta_')) {
|
|
232
|
-
propertyName =
|
|
227
|
+
propertyName = (0, camelcase_1.default)(column);
|
|
233
228
|
}
|
|
234
229
|
else {
|
|
235
230
|
throw Error(`No property name for "${column}" in business object "${entity.displayName}". Non-spec'd columns must begin with "meta_".`);
|
|
@@ -249,27 +244,39 @@ const create = ({ entities: externalEntities, db, logError }) => {
|
|
|
249
244
|
return Object.keys(result).reduce((obj, text) => {
|
|
250
245
|
const tableName = text.split('#')[0];
|
|
251
246
|
const column = text.split('#')[1];
|
|
247
|
+
if (!tableName || !column) {
|
|
248
|
+
throw new Error('Column names must be namespaced to table');
|
|
249
|
+
}
|
|
252
250
|
obj[tableName] = obj[tableName] || {};
|
|
253
251
|
obj[tableName][column] = result[text];
|
|
254
252
|
return obj;
|
|
255
253
|
}, {});
|
|
256
254
|
};
|
|
257
|
-
const createFromDatabase = (
|
|
258
|
-
const result = Array.isArray(
|
|
255
|
+
const createFromDatabase = (rows) => {
|
|
256
|
+
const result = Array.isArray(rows) ? rows : [rows];
|
|
259
257
|
const objectified = result.map(objectifyDatabaseResult);
|
|
260
258
|
const boified = objectified.map(mapToBos);
|
|
261
259
|
const clumps = clumpIntoGroups(boified);
|
|
262
260
|
const nested = clumps.map(nestClump);
|
|
263
261
|
const models = nested.map((n) => Object.values(n)[0]);
|
|
264
262
|
const Collection = getEntityByModel(models[0]).Collection;
|
|
265
|
-
return
|
|
263
|
+
return new Collection({ models });
|
|
264
|
+
};
|
|
265
|
+
const createAnyFromDatabase = (rows, rootKey) => {
|
|
266
|
+
if (!rows || !rows.length) {
|
|
267
|
+
const Collection = typeof rootKey === 'string'
|
|
268
|
+
? getEntityByTableName(rootKey).Collection
|
|
269
|
+
: getEntityByModel(rootKey).Collection;
|
|
270
|
+
return new Collection({ models: [] });
|
|
271
|
+
}
|
|
272
|
+
return createFromDatabase(rows);
|
|
266
273
|
};
|
|
267
|
-
const createOneFromDatabase = (
|
|
268
|
-
|
|
269
|
-
if (!collection) {
|
|
274
|
+
const createOneFromDatabase = (rows) => {
|
|
275
|
+
if (!rows || !rows.length) {
|
|
270
276
|
throw Error('Did not get one.');
|
|
271
277
|
}
|
|
272
|
-
|
|
278
|
+
const collection = createFromDatabase(rows);
|
|
279
|
+
if (!collection || !collection.models || collection.models.length === 0) {
|
|
273
280
|
throw Error('Did not get one.');
|
|
274
281
|
}
|
|
275
282
|
else if (collection.models.length > 1) {
|
|
@@ -277,236 +284,32 @@ const create = ({ entities: externalEntities, db, logError }) => {
|
|
|
277
284
|
}
|
|
278
285
|
return collection.models[0];
|
|
279
286
|
};
|
|
280
|
-
const createOneOrNoneFromDatabase = (
|
|
281
|
-
if (!
|
|
282
|
-
return
|
|
287
|
+
const createOneOrNoneFromDatabase = (rows) => {
|
|
288
|
+
if (!rows || !rows.length) {
|
|
289
|
+
return void 0;
|
|
283
290
|
}
|
|
284
|
-
|
|
285
|
-
if (collection && collection.models.length > 1) {
|
|
286
|
-
throw Error('Got more than one.');
|
|
287
|
-
}
|
|
288
|
-
return collection && collection.models[0];
|
|
291
|
+
return createOneFromDatabase(rows);
|
|
289
292
|
};
|
|
290
|
-
const createManyFromDatabase = (
|
|
291
|
-
|
|
292
|
-
if (!collection || collection.models.length === 0) {
|
|
293
|
+
const createManyFromDatabase = (rows) => {
|
|
294
|
+
if (!rows || !rows.length) {
|
|
293
295
|
throw Error('Did not get at least one.');
|
|
294
296
|
}
|
|
295
|
-
return
|
|
296
|
-
};
|
|
297
|
-
const getSqlInsertParts = (model) => {
|
|
298
|
-
const columns = getEntityByModel(model)
|
|
299
|
-
.columnNames.filter((column, index) => model[getEntityByModel(model).propertyNames[index]] !== void 0)
|
|
300
|
-
.map((col) => `"${col}"`)
|
|
301
|
-
.join(', ');
|
|
302
|
-
const values = getEntityByModel(model)
|
|
303
|
-
.propertyNames.map((property) => model[property])
|
|
304
|
-
.filter((value) => value !== void 0);
|
|
305
|
-
const valuesVar = values.map((value, index) => `$${index + 1}`);
|
|
306
|
-
return { columns, values, valuesVar };
|
|
307
|
-
};
|
|
308
|
-
const getSqlUpdateParts = (model, on = 'id') => {
|
|
309
|
-
const clauseArray = getEntityByModel(model)
|
|
310
|
-
.columnNames.filter((sqlColumn, index) => model[getEntityByModel(model).propertyNames[index]] !== void 0)
|
|
311
|
-
.map((sqlColumn, index) => `"${sqlColumn}" = $${index + 1}`);
|
|
312
|
-
const clause = clauseArray.join(', ');
|
|
313
|
-
const idVar = `$${clauseArray.length + 1}`;
|
|
314
|
-
const _values = getEntityByModel(model)
|
|
315
|
-
.propertyNames.map((property) => model[property])
|
|
316
|
-
.filter((value) => value !== void 0);
|
|
317
|
-
const values = [..._values, model[on]];
|
|
318
|
-
return { clause, idVar, values };
|
|
319
|
-
};
|
|
320
|
-
const getMatchingParts = (model) => {
|
|
321
|
-
const whereClause = getEntityByModel(model)
|
|
322
|
-
.propertyNames.map((property, index) => model[property] != null
|
|
323
|
-
? `"${getEntityByModel(model).tableName}"."${getEntityByModel(model).columnNames[index]}"`
|
|
324
|
-
: null)
|
|
325
|
-
.filter((x) => x != null)
|
|
326
|
-
.map((x, i) => `${x} = $${i + 1}`)
|
|
327
|
-
.join(' AND ');
|
|
328
|
-
const values = getEntityByModel(model)
|
|
329
|
-
.propertyNames.map((property) => model[property] != null
|
|
330
|
-
? model[property]
|
|
331
|
-
: null)
|
|
332
|
-
.filter((x) => x != null);
|
|
333
|
-
return { whereClause, values };
|
|
334
|
-
};
|
|
335
|
-
// This one returns an object, which allows it to be more versatile.
|
|
336
|
-
// To-do: make this one even better and use it instead of the one above.
|
|
337
|
-
const getMatchingPartsObject = (model) => {
|
|
338
|
-
const whereClause = getEntityByModel(model)
|
|
339
|
-
.propertyNames.map((property, index) => model[property] != null
|
|
340
|
-
? `"${getEntityByModel(model).tableName}"."${getEntityByModel(model).columnNames[index]}"`
|
|
341
|
-
: null)
|
|
342
|
-
.filter((x) => x != null)
|
|
343
|
-
.map((x, i) => `${x} = $(${i + 1})`)
|
|
344
|
-
.join(' AND ');
|
|
345
|
-
const values = getEntityByModel(model)
|
|
346
|
-
.propertyNames.map((property) => model[property] != null
|
|
347
|
-
? model[property]
|
|
348
|
-
: null)
|
|
349
|
-
.filter((x) => x != null)
|
|
350
|
-
.reduce((accum, val, index) => Object.assign({}, accum, { [index + 1]: val }), {});
|
|
351
|
-
return { whereClause, values };
|
|
352
|
-
};
|
|
353
|
-
const getNewWith = (model, sqlColumns, values) => {
|
|
354
|
-
const Constructor = model.constructor;
|
|
355
|
-
const modelKeys = sqlColumns.map((key) => getEntityByModel(model).propertyNames[getEntityByModel(model).columnNames.indexOf(key)]);
|
|
356
|
-
const modelData = modelKeys.reduce((data, key, index) => {
|
|
357
|
-
data[key] = values[index];
|
|
358
|
-
return data;
|
|
359
|
-
}, {});
|
|
360
|
-
return new Constructor(modelData);
|
|
361
|
-
};
|
|
362
|
-
const getValueBySqlColumn = (model, sqlColumn) => {
|
|
363
|
-
return model[getEntityByModel(model).propertyNames[getEntityByModel(model).columnNames.indexOf(sqlColumn)]];
|
|
364
|
-
};
|
|
365
|
-
/* ------------------------------------------------------------------------*/
|
|
366
|
-
/* Query functions --------------------------------------------------------*/
|
|
367
|
-
/* ------------------------------------------------------------------------*/
|
|
368
|
-
const one = (query, values, errorHandler = defaultErrorHandler) => {
|
|
369
|
-
return db
|
|
370
|
-
.many(query, values)
|
|
371
|
-
.then((rows) => createOneFromDatabase(rows))
|
|
372
|
-
.catch(errorHandler);
|
|
373
|
-
};
|
|
374
|
-
const oneOrNone = (query, values, errorHandler = defaultErrorHandler) => {
|
|
375
|
-
return db
|
|
376
|
-
.any(query, values)
|
|
377
|
-
.then((rows) => createOneOrNoneFromDatabase(rows))
|
|
378
|
-
.catch(errorHandler);
|
|
379
|
-
};
|
|
380
|
-
const many = (query, values, errorHandler = defaultErrorHandler) => {
|
|
381
|
-
return db
|
|
382
|
-
.any(query, values)
|
|
383
|
-
.then((rows) => createManyFromDatabase(rows))
|
|
384
|
-
.catch(errorHandler);
|
|
385
|
-
};
|
|
386
|
-
const any = (query, values, errorHandler = defaultErrorHandler) => {
|
|
387
|
-
return db
|
|
388
|
-
.any(query, values)
|
|
389
|
-
.then((rows) => createFromDatabase(rows))
|
|
390
|
-
.catch(errorHandler);
|
|
391
|
-
};
|
|
392
|
-
const none = (query, values, errorHandler = defaultErrorHandler) => {
|
|
393
|
-
return db
|
|
394
|
-
.none(query, values)
|
|
395
|
-
.then(() => null)
|
|
396
|
-
.catch(errorHandler);
|
|
397
|
-
};
|
|
398
|
-
/* ------------------------------------------------------------------------*/
|
|
399
|
-
/* Built-in basic CRUD functions ------------------------------------------*/
|
|
400
|
-
/* ------------------------------------------------------------------------*/
|
|
401
|
-
// Standard create
|
|
402
|
-
const create = (model) => {
|
|
403
|
-
const { columns, values, valuesVar } = getSqlInsertParts(model);
|
|
404
|
-
const query = `
|
|
405
|
-
INSERT INTO "${getEntityByModel(model).tableName}" ( ${columns} )
|
|
406
|
-
VALUES ( ${valuesVar} )
|
|
407
|
-
RETURNING ${getEntityByModel(model).selectColumnsClause};
|
|
408
|
-
`;
|
|
409
|
-
return one(query, values);
|
|
410
|
-
};
|
|
411
|
-
// Standard update
|
|
412
|
-
const update = (model, { on = 'id' } = {}) => {
|
|
413
|
-
const { clause, idVar, values } = getSqlUpdateParts(model, on);
|
|
414
|
-
const query = `
|
|
415
|
-
UPDATE "${getEntityByModel(model).tableName}"
|
|
416
|
-
SET ${clause}
|
|
417
|
-
WHERE "${getEntityByModel(model).tableName}".${on} = ${idVar}
|
|
418
|
-
RETURNING ${getEntityByModel(model).selectColumnsClause};
|
|
419
|
-
`;
|
|
420
|
-
return one(query, values);
|
|
421
|
-
};
|
|
422
|
-
// Standard delete
|
|
423
|
-
const _delete = (model) => {
|
|
424
|
-
const id = model.id;
|
|
425
|
-
const query = `
|
|
426
|
-
DELETE FROM "${getEntityByModel(model).tableName}"
|
|
427
|
-
WHERE "${getEntityByModel(model).tableName}".id = $(id)
|
|
428
|
-
`;
|
|
429
|
-
return none(query, { id });
|
|
430
|
-
};
|
|
431
|
-
const deleteMatching = (model) => {
|
|
432
|
-
const { whereClause, values } = getMatchingParts(model);
|
|
433
|
-
const query = `
|
|
434
|
-
DELETE FROM "${getEntityByModel(model).tableName}"
|
|
435
|
-
WHERE ${whereClause};
|
|
436
|
-
`;
|
|
437
|
-
return none(query, values);
|
|
438
|
-
};
|
|
439
|
-
const getMatching = (model) => {
|
|
440
|
-
const { whereClause, values } = getMatchingParts(model);
|
|
441
|
-
const query = `
|
|
442
|
-
SELECT ${getEntityByModel(model).selectColumnsClause}
|
|
443
|
-
FROM "${getEntityByModel(model).tableName}"
|
|
444
|
-
WHERE ${whereClause};
|
|
445
|
-
`;
|
|
446
|
-
return one(query, values);
|
|
447
|
-
};
|
|
448
|
-
const getOneOrNoneMatching = (model) => {
|
|
449
|
-
const { whereClause, values } = getMatchingParts(model);
|
|
450
|
-
const query = `
|
|
451
|
-
SELECT ${getEntityByModel(model).selectColumnsClause}
|
|
452
|
-
FROM "${getEntityByModel(model).tableName}"
|
|
453
|
-
WHERE ${whereClause};
|
|
454
|
-
`;
|
|
455
|
-
return oneOrNone(query, values);
|
|
456
|
-
};
|
|
457
|
-
const getAnyMatching = (model) => {
|
|
458
|
-
const { whereClause, values } = getMatchingParts(model);
|
|
459
|
-
const query = `
|
|
460
|
-
SELECT ${getEntityByModel(model).selectColumnsClause}
|
|
461
|
-
FROM "${getEntityByModel(model).tableName}"
|
|
462
|
-
WHERE ${whereClause};
|
|
463
|
-
`;
|
|
464
|
-
return any(query, values);
|
|
465
|
-
};
|
|
466
|
-
const getAllMatching = (model) => {
|
|
467
|
-
const { whereClause, values } = getMatchingParts(model);
|
|
468
|
-
const query = `
|
|
469
|
-
SELECT ${getEntityByModel(model).selectColumnsClause}
|
|
470
|
-
FROM "${getEntityByModel(model).tableName}"
|
|
471
|
-
WHERE ${whereClause};
|
|
472
|
-
`;
|
|
473
|
-
return many(query, values);
|
|
297
|
+
return createFromDatabase(rows);
|
|
474
298
|
};
|
|
475
299
|
return {
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
clumpIntoGroups,
|
|
479
|
-
mapToBos,
|
|
480
|
-
objectifyDatabaseResult,
|
|
300
|
+
getEntityByModel,
|
|
301
|
+
getEntityByTableName,
|
|
481
302
|
createFromDatabase,
|
|
303
|
+
createAnyFromDatabase,
|
|
482
304
|
createOneFromDatabase,
|
|
483
305
|
createOneOrNoneFromDatabase,
|
|
484
306
|
createManyFromDatabase,
|
|
485
|
-
getSqlInsertParts,
|
|
486
|
-
getSqlUpdateParts,
|
|
487
|
-
getMatchingParts,
|
|
488
|
-
getMatchingPartsObject,
|
|
489
|
-
getNewWith,
|
|
490
|
-
getValueBySqlColumn,
|
|
491
|
-
// Query Functions
|
|
492
|
-
one,
|
|
493
|
-
oneOrNone,
|
|
494
|
-
many,
|
|
495
|
-
any,
|
|
496
|
-
none,
|
|
497
|
-
// Built-in basic CRUD functions
|
|
498
|
-
create,
|
|
499
|
-
update,
|
|
500
|
-
delete: _delete,
|
|
501
|
-
deleteMatching,
|
|
502
|
-
getMatching,
|
|
503
|
-
getOneOrNoneMatching,
|
|
504
|
-
getAnyMatching,
|
|
505
|
-
getAllMatching,
|
|
506
307
|
tables: entities.reduce((accum, data) => {
|
|
507
|
-
accum[data.displayName] =
|
|
308
|
+
accum[data.displayName] = {
|
|
309
|
+
columns: data.selectColumnsClause
|
|
310
|
+
};
|
|
508
311
|
return accum;
|
|
509
312
|
}, {})
|
|
510
313
|
};
|
|
511
314
|
};
|
|
512
|
-
exports.
|
|
315
|
+
exports.createCore = createCore;
|
|
File without changes
|