{"_id":"@drmikehopper/express-knex-auto-trx","_rev":"5-25cf036d8b790e961c149f335364f73a","name":"@drmikehopper/express-knex-auto-trx","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.0":{"name":"@drmikehopper/express-knex-auto-trx","version":"0.1.0","description":"Express middleware for automatically managing Knex.js database transactions.","main":"src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","prepare":"husky install","postinstall":"husky install","prettier:check":"prettier --check .","prettier:fix":"prettier --write .","eslint:check":"eslint src","eslint:fix":"eslint --fix src","publish":"npm publish --access public"},"repository":{"type":"git","url":"git+https://github.com/drmikeh/express-knex-auto-trx.git"},"keywords":["express","knex","transaction"],"author":{"name":"Dr. Mike Hopper","email":"drmikeh@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/drmikeh/express-knex-auto-trx/issues"},"homepage":"https://github.com/drmikeh/express-knex-auto-trx#readme","dependencies":{"cls-hooked":"4.2.2","on-finished":"2.3.0"},"devDependencies":{"eslint":"7.29.0","eslint-config-airbnb":"18.2.1","eslint-config-prettier":"8.3.0","eslint-plugin-import":"2.23.4","eslint-plugin-jest":"24.3.6","eslint-plugin-jsx-a11y":"6.4.1","eslint-plugin-prettier":"3.4.0","eslint-plugin-react":"7.24.0","eslint-plugin-react-hooks":"1.7.0","husky":"6.0.0","prettier":"2.3.1"},"gitHead":"cc033407d4ea18a020875380f430186a385194f3","_id":"@drmikehopper/express-knex-auto-trx@0.1.0","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-07TFO0UTxeDKgVsEfg9ueqWwQbTJ/uu9UTrZEDAx5nM3NfIFFPqXVmkwg2RqLHz1YzfQP5pRznnOJjMAuCDgsw==","shasum":"7b6d2a51d0c501734c0c31d97b30fa14e83ed30c","tarball":"https://registry.npmjs.org/@drmikehopper/express-knex-auto-trx/-/express-knex-auto-trx-0.1.0.tgz","fileCount":8,"unpackedSize":8310,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg095wCRA9TVsSAnZWagAALEcQAI+3rqaUKEmTQDU+uM1f\nx76/oCBNgCSQ6zOQS+9166sPL3gk4UILItenaK20PVpRm0r5zemD6bZtCpIs\nKHxxpkLu3HP1uLgk/Ffn1fof1/F39ll+RguaqMkK74A63S7HYW4qMXSwVWjZ\nGeAxR230kyERwzu/lLVDZlS+tYfhRX9JYpx5ps8wRArUdESjV+24kBRuDYQU\ndJmfm6M9+FTKOPMnNL2nVcVILmf9UusqDsne7WkWHi+be9K6Gkwh+vRSKZDa\no/gZI0tebN8pTSvYGuxl+jcSSCfBWZbopgExcckf5AsuiJP9UjWRfxB/q/Um\n4LuYPRcoCwEBAuvNV3CHCpgxf2Y4c7ejNFsyGr0ZcpdwAcc2YQwB4Wz37wPx\n2clBpxghOBx3I1wXqm9LhWs1obnXA1esGU12TKnh6hIJhNrmXEOfCg2EgVlO\nKe2dmqG6i3iOeFCTUPMyBEVFJOnsBcASiZEz7iipXtiVCds0wR9W5g/FoR6r\nDG7L42oz+pQhHCG4z0GYsFkOYimO0yep3TG8oZI0MpLakgGQWKnMfM3yVbHU\nas0Wz3YU/LKxn5AWt9Tk9AYZbxiOGRoYYx0hLDwg7LxHx5QMKvhnmsyhOQZE\nFF0a1FFaqkalGSieAtKVcqgxCAxrEJGCJ0z4tTzSoBpmIwhtZX/yZhvSS4RJ\ntW9v\r\n=lTwg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEg+MSzvT/pwPn9oroIYdvrEAsq5UolgvqQ96Ips3O+jAiEA8Rmwne/lWKrjUNgF3oNWlfRR1lHv9NmzaF2B3DkFJz8="}]},"_npmUser":{"name":"drmikehopper","email":"drmikeh@gmail.com"},"directories":{},"maintainers":[{"name":"drmikehopper","email":"drmikeh@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-knex-auto-trx_0.1.0_1624497775819_0.11132587197424315"},"_hasShrinkwrap":false},"0.1.1":{"name":"@drmikehopper/express-knex-auto-trx","version":"0.1.1","description":"Express middleware for automatically managing Knex.js database transactions.","main":"src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","prepare":"husky install","postinstall":"husky install","prettier:check":"prettier --check .","prettier:fix":"prettier --write .","eslint:check":"eslint src","eslint:fix":"eslint --fix src","publish":"npm publish --access public"},"repository":{"type":"git","url":"git+https://github.com/drmikeh/express-knex-auto-trx.git"},"keywords":["express","knex","transaction"],"author":{"name":"Dr. Mike Hopper","email":"drmikeh@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/drmikeh/express-knex-auto-trx/issues"},"homepage":"https://github.com/drmikeh/express-knex-auto-trx#readme","dependencies":{"cls-hooked":"4.2.2","on-finished":"2.3.0"},"devDependencies":{"eslint":"7.29.0","eslint-config-airbnb":"18.2.1","eslint-config-prettier":"8.3.0","eslint-plugin-import":"2.23.4","eslint-plugin-jest":"24.3.6","eslint-plugin-jsx-a11y":"6.4.1","eslint-plugin-prettier":"3.4.0","eslint-plugin-react":"7.24.0","eslint-plugin-react-hooks":"1.7.0","husky":"6.0.0","prettier":"2.3.1"},"gitHead":"cc033407d4ea18a020875380f430186a385194f3","_id":"@drmikehopper/express-knex-auto-trx@0.1.1","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-mRztn0JJ2VYR5dYSDuZhP7GBZEkxxTsnZ23rHMgb2USQaawOLei8MFb2X3Wi5jxTGmXqEgusDTZw1FrfwnyIlA==","shasum":"82d34eac46de624fc6696efe5d853e7ddb440daa","tarball":"https://registry.npmjs.org/@drmikehopper/express-knex-auto-trx/-/express-knex-auto-trx-0.1.1.tgz","fileCount":8,"unpackedSize":8310,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg096NCRA9TVsSAnZWagAAq5gQAJS804MoDQ0qK3hz0Rw2\n5KrmzMnUJMOt+ETr1klA2X4+pI+RFve7zW6QOPGLvpL16ZjwlQYixHmTx8qQ\n3zan8DOud6EdzIQYpljwfaQAn9EzJ/2pZ6VnwLTMWcXUxkC0n/V5H+AHSdkc\nuuPfVBNRm5pIFpHAhqo4u7WJdkf87sW/u13IJzyRhDw4blCNh2Nj/eCXY3f5\nCgwP9428lros/RDF7NL5wJWeK1V+StmQiSedvwhaQHNTBTsdCSzkHqoQgTjD\n0LeEKrTuXafCeRAyfibl6lvCmt/ZUUGxDEOctF8v4ALPZ+w3lmTFRZWuAu+7\nYxaljiO22+CosnYM84ENZETpKtzta4zBR9aUF+2aU/VAqu+wf2b7d3inNWSI\n2Dn8A7qXFlPvX2gBhz8OvgkVvXfaSq7kZc3XiLWvcmtOpa36+uzv1ONjXdZj\n7gcdl6CducWrkPvqz68ux5NaJUL/oD30+HylDk3bbBLTKLdR90X1VVHJqxFM\nDq+YibSD4vZLImV6fcQaGLO620VNRAL4gQBW5spy6+4Sg1UEZrTlHkhEb9ST\n5YnKp/Fs+UR96NyxZNhU9kFSpofO46MVfG2/EKe3AvuP41+jJal0Lp88Fwg6\n7vdZY5egtoGiWi+2TIrIl9xyBsNAmybMRwadRQoOMLH4L38dc/qIael1hwDd\nnRpW\r\n=ERg6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPNVF6I+Tt14IheRIZ5NVJSlhOiCsof72jLYh/9AT7BgIgV3fBZk50Wr2s7LGjxf3EvdggqBxZT0wFoV6JOntsbPM="}]},"_npmUser":{"name":"drmikehopper","email":"drmikeh@gmail.com"},"directories":{},"maintainers":[{"name":"drmikehopper","email":"drmikeh@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-knex-auto-trx_0.1.1_1624497805538_0.6575496019194949"},"_hasShrinkwrap":false},"0.1.2":{"name":"@drmikehopper/express-knex-auto-trx","version":"0.1.2","description":"Express middleware for automatically managing Knex.js database transactions.","main":"src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","prepare":"husky install","postinstall":"husky install","prettier:check":"prettier --check .","prettier:fix":"prettier --write .","eslint:check":"eslint src","eslint:fix":"eslint --fix src","pub":"npm publish --access public"},"repository":{"type":"git","url":"git+https://github.com/drmikeh/express-knex-auto-trx.git"},"keywords":["express","knex","transaction"],"author":{"name":"Dr. Mike Hopper","email":"drmikeh@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/drmikeh/express-knex-auto-trx/issues"},"homepage":"https://github.com/drmikeh/express-knex-auto-trx#readme","dependencies":{"cls-hooked":"4.2.2","on-finished":"2.3.0"},"devDependencies":{"eslint":"7.29.0","eslint-config-airbnb":"18.2.1","eslint-config-prettier":"8.3.0","eslint-plugin-import":"2.23.4","eslint-plugin-jest":"24.3.6","eslint-plugin-jsx-a11y":"6.4.1","eslint-plugin-prettier":"3.4.0","eslint-plugin-react":"7.24.0","eslint-plugin-react-hooks":"1.7.0","husky":"6.0.0","prettier":"2.3.1"},"gitHead":"cc033407d4ea18a020875380f430186a385194f3","_id":"@drmikehopper/express-knex-auto-trx@0.1.2","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-ZpUCpUIaBtjq85yQqjqVUDg33YlVpLV20neCKEdsKVl42xxLs4bohNciPacyyV4J1DpLTLeCYKyT90slT9GASQ==","shasum":"8ccfd21ccddd78b021e6a07717f44d5d62bef490","tarball":"https://registry.npmjs.org/@drmikehopper/express-knex-auto-trx/-/express-knex-auto-trx-0.1.2.tgz","fileCount":8,"unpackedSize":8306,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0984CRA9TVsSAnZWagAArkcP/jGoidnadPQ64dvfBS3n\n4hypQ5BuO3qL/R0CeO8i9jExAoDu2x+bN2vmYDs+MPWMmc1hTTFReMEUDqVg\nAZlC+/5xOMJ+yk26n2DxUzBJ+xyjJw/G6dBFTRBq7rxlLkWbqHH9OjkAOlaV\ne/cAtwlb3nInP2Nsqyqa7uovZUPqKzoSwVG+qZg02P4PG/sN+NGcj9RRHDUo\nPvg1flqj3Py6JU4eDtKnuQMBu1bQxbvriToSuhdO1hN6h66EJEyiY9RAy941\nzc+Tev+PX4a6qyBR6uNrfbtpXlTB2TRrPO8aUAvFxYrhQ8sIFhHGxqMztAE4\n2jTnn9jud6IkioNHmYQeZyMPwyuTelhdrtE/0gvK/JgUKyge31Kw+UEkitBT\n3eat7jdzOatv6sPBe7HoQlGPPuoUNoCaM8DUOxjryPscEBLI8iJwV8OpaeXE\nwYcZE+0VnTFeZVvGjUg5J29+HstjJUuprKDjfLf0kgkkE5o0sKM3f9crUdd6\na9SKSc3p1DD1iz9JJqJUSWs0nFx0/hnNNeWpplN3wF0HzNl8jANptcYU+WHB\nNjYg/tbS+AnGxsDcXySEPcwYRM/hqjRhAzC9tQs97CMv6sJ2MvwOvKcA9Xc3\nzFSeC+wH63m6CUCOL5Q1/KIVoGBkwuRrWCKd4INWS+XCjBDZuqoy1QjQ32f2\n8fH2\r\n=/bYf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBEABcOp4I8oJU78c67ih+SmqZ3S+uTNZ7GKPAtl824gAiAzBl1NPAUAM4nhZOHaxi4MMGDOWwMNUEAQevumWIopHg=="}]},"_npmUser":{"name":"drmikehopper","email":"drmikeh@gmail.com"},"directories":{},"maintainers":[{"name":"drmikehopper","email":"drmikeh@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-knex-auto-trx_0.1.2_1624497976164_0.76061937820964"},"_hasShrinkwrap":false},"0.1.3":{"name":"@drmikehopper/express-knex-auto-trx","version":"0.1.3","description":"Express middleware for automatically managing Knex.js database transactions.","main":"src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","prepare":"husky install","prettier:check":"prettier --check .","prettier:fix":"prettier --write .","eslint:check":"eslint src","eslint:fix":"eslint --fix src","pub":"npm publish --access public"},"repository":{"type":"git","url":"git+https://github.com/drmikeh/express-knex-auto-trx.git"},"keywords":["express","knex","transaction"],"author":{"name":"Dr. Mike Hopper","email":"drmikeh@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/drmikeh/express-knex-auto-trx/issues"},"homepage":"https://github.com/drmikeh/express-knex-auto-trx#readme","dependencies":{"cls-hooked":"4.2.2","on-finished":"2.3.0"},"devDependencies":{"eslint":"7.29.0","eslint-config-airbnb":"18.2.1","eslint-config-prettier":"8.3.0","eslint-plugin-import":"2.23.4","eslint-plugin-jest":"24.3.6","eslint-plugin-jsx-a11y":"6.4.1","eslint-plugin-prettier":"3.4.0","eslint-plugin-react":"7.24.0","eslint-plugin-react-hooks":"1.7.0","husky":"6.0.0","prettier":"2.3.1"},"gitHead":"cc033407d4ea18a020875380f430186a385194f3","_id":"@drmikehopper/express-knex-auto-trx@0.1.3","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-h0htiCDmEoHiSnGDjVxuExtaflWC829GFUBpGUS7PuSnnkPLs8eskyv46coxSDhAODOT08rDlJ5zdFjo6paDww==","shasum":"f8143fdebe0a0335c8a1018f2cc35b450bc5ae42","tarball":"https://registry.npmjs.org/@drmikehopper/express-knex-auto-trx/-/express-knex-auto-trx-0.1.3.tgz","fileCount":8,"unpackedSize":8266,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0+LpCRA9TVsSAnZWagAAhk0P+wQ3i4fb/BSpAYHF9W2L\nSRndXShWnntCyLdRyqwZcWiButMrU/U7b/L0LsLnnhgDtCTQjTtcMvaUzQzu\ngF9AoACme65lykCMP64Q0oW+dZ0XcBhjNDJuXvjE5EqKJNAZGQZLMI6l5VCE\ntMI1Ibz9goU9uRO9BHFkcYXw3mMIw7FDchAbOUU+rb5GoyEYBC4M326k1bgv\ncyhnlnybjvCsR5VpvPAyJcjzLDctWAWa4h856WiDNwlWROsiBhtoqTgIo9rL\nTuJ1gwhc540mjK34owtC3AZkbfW8h4OtMsonP+/qpNh6F292H7p8K2dXYMlt\nzOwk6wlpFTAWHKzwAL7/WrwOZlSbR7fdnpTbNXjAItcIp/OYWWG3n7jpcyfI\nFNkQ+buEBas7UbSjg78EKGU2g+mgdFzDFgpfI7gSfIUc+OQPnwRZuGZlAtqe\neB3/xmBCaX0mCWYzwsd1x7XIpnp6jx74fBH0Rfoak79OSnylL4TzvZaLJcBk\nSkmQ30XfY7rsrS7oILmuvwnJ0IVR2h+8X8Tn3DcjJ6MLH3R2+g/gkkPSGYbb\ncMmgWfJRwhK74a3xWBB08MpZGfQS1ijqPrYUR+84ibLGN/JLpCACMdPebXVz\nOgPwkdR+QghOfvImlEvU6D82QOc4VSqZsKpExcUdpJAG1Nk2Ln7EnPYS508+\nNmEm\r\n=OSR8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxOk0HeG7ImL87d89lxBNo6yLJPSnutT7+0A3zF9892AIgRZ6CpE7WlXBXGIyEkeQzdR9zPyT0LASMWHQQp/dYN5Y="}]},"_npmUser":{"name":"drmikehopper","email":"drmikeh@gmail.com"},"directories":{},"maintainers":[{"name":"drmikehopper","email":"drmikeh@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-knex-auto-trx_0.1.3_1624498920821_0.26397542487652714"},"_hasShrinkwrap":false},"0.1.5":{"name":"@drmikehopper/express-knex-auto-trx","version":"0.1.5","description":"Express middleware for automatically managing Knex.js database transactions.","main":"src/index.js","scripts":{"test:watch":"jest --watch src","test:ci":"jest src","prepare":"husky install","prettier:check":"prettier --check .","prettier:fix":"prettier --write .","eslint:check":"eslint src","eslint:fix":"eslint --fix src","pub":"npm publish --access public"},"repository":{"type":"git","url":"git+https://github.com/drmikeh/express-knex-auto-trx.git"},"keywords":["express","knex","transaction"],"author":{"name":"Dr. Mike Hopper","email":"drmikeh@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/drmikeh/express-knex-auto-trx/issues"},"homepage":"https://github.com/drmikeh/express-knex-auto-trx#readme","dependencies":{"cls-hooked":"4.2.2","on-finished":"2.3.0"},"devDependencies":{"eslint":"7.29.0","eslint-config-airbnb":"18.2.1","eslint-config-prettier":"8.3.0","eslint-plugin-import":"2.23.4","eslint-plugin-jest":"24.3.6","eslint-plugin-jsx-a11y":"6.4.1","eslint-plugin-prettier":"3.4.0","eslint-plugin-react":"7.24.0","eslint-plugin-react-hooks":"1.7.0","husky":"6.0.0","jest-extended":"0.11.5","knex":"0.95.6","mock-knex":"0.4.10","node-mocks-http":"1.10.1","prettier":"2.3.1"},"gitHead":"e66987fda33b79f1190310d48a825790f67790cb","_id":"@drmikehopper/express-knex-auto-trx@0.1.5","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-nrAY8y5Aeu4K2MuCMQZtMy0kvuxAgWXPRYa6LGINMK1+ooDOwwHRsJ81EMd2PpQV2Q+KiVMEuVTDAgBliT+y9Q==","shasum":"27de5b18cbc202d61d860d9679c8e5cd187d1624","tarball":"https://registry.npmjs.org/@drmikehopper/express-knex-auto-trx/-/express-knex-auto-trx-0.1.5.tgz","fileCount":9,"unpackedSize":11275,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg1SVMCRA9TVsSAnZWagAA3joP/2d5y6Pb2OgGoyRpjx+v\nO9u+sInLASiV4vyUMiRJ6q6jcLRb+HNVeRQJPgJtFR/Wq0R0ZrDFu1eqsJuy\n0QDsE5MgL15EEeFTb68LxTwfU7PqMHKy70dKn67qLhyBpio6/LV+mhcd/aWu\n3XJRRfhAqQIDnB02wdRhSiMZrhJdJqE+NxDhgXGwcjDq/NJ7E/At25IZUg6E\n8ClFfh/ezRsg52IUzW2qJUiVSDUO2LkuRF/U9NT18huLSmwSWxe0rJ0EcjuU\n7xgbzawOot9rm2vd64a3m/Pt6FiNzj1BstC91oP5K7DTaDvr8MQ+j+jAEoNW\n+D2QEMlJPxhl79752ivMy5+fDQJ3Ztft28VnF4FnOPppEvchwCv2vbWTMmXA\nwVvDPZtrXglBtyaSDDiR93Lyp4xC4KcVXhirjja5/EpkpgU8dqLeGNA9K5ch\nB8p3Rd2d/wnduEqyiKKBYeHWkR4Z0YNYDeVe2Ya3jOtIlYpaDYF9vPdhbgGq\nXJ1XaztnTCXB37zOBjlPujXsvOI/suTKm3XqPHeFPrJeV8jl31TXgYNGT8E/\nF6UWBGTjVRieE7y7GNNcts5A3vcvcYxPtDwWSZUDWvHU1/3KAMduhUjhRxSE\nO7HRUxKc9DZCwIdC0EojAHyUUO2b8vkuzDqbH9+OGiy7JYhfxIOip83u06jh\njuMH\r\n=s80r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8Ku4pyQvvb3xiXr9lC3fWU5cT9nHvZNiyfghf3SEIDAIhAJE5QGYZZt4VJ6dpwTLUA/jbyU/a+EEB4DNTckHugoVm"}]},"_npmUser":{"name":"drmikehopper","email":"drmikeh@gmail.com"},"directories":{},"maintainers":[{"name":"drmikehopper","email":"drmikeh@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-knex-auto-trx_0.1.5_1624581451403_0.015071828537871923"},"_hasShrinkwrap":false}},"time":{"created":"2021-06-24T01:22:55.771Z","0.1.0":"2021-06-24T01:22:55.939Z","modified":"2022-04-05T05:41:09.898Z","0.1.1":"2021-06-24T01:23:25.656Z","0.1.2":"2021-06-24T01:26:16.303Z","0.1.3":"2021-06-24T01:42:00.949Z","0.1.5":"2021-06-25T00:37:31.564Z"},"maintainers":[{"name":"drmikehopper","email":"drmikeh@gmail.com"}],"description":"Express middleware for automatically managing Knex.js database transactions.","homepage":"https://github.com/drmikeh/express-knex-auto-trx#readme","keywords":["express","knex","transaction"],"repository":{"type":"git","url":"git+https://github.com/drmikeh/express-knex-auto-trx.git"},"author":{"name":"Dr. Mike Hopper","email":"drmikeh@gmail.com"},"bugs":{"url":"https://github.com/drmikeh/express-knex-auto-trx/issues"},"license":"MIT","readme":"# express-knex-auto-trx\n\nExpress middleware for automatically managing Knex.js database transactions.\n\n## Motivation\n\nThis middleware will automatically:\n\n- Start a `knex` database transaction for each inbound request.\n- Provide a `getTrx()` function that can be `required` by your Express route handlers.\n  - Your code can get the current transaction without needing the `req` object, which is helpful when using data service layers that are decoupled from Express.\n- Automatically `commit` or `rollback` each transaction based on the HTTP response status code:\n  - responses with a `400` or above will `rollback`\n  - all other responses will `commit`.\n\n## How It Works\n\n- Uses [cls-hooked](https://www.npmjs.com/package/cls-hooked) to assign a unique transaction to each request\n- Uses [on-finished](https://www.npmjs.com/package/on-finished) to inspect the response `statusCode` and either `commit` or `rollback` the transaction\n\n## Usage\n\nConnect the Middleware:\n\n```js\nconst express = require('express');\nconst { knexAutoTrx } = require('./middleware/express-knex-auto-trx');\nconst knex = require('knex')(\n  require('knexfile')[process.env.NODE_ENV || 'development']\n);\n\napp.use(knexAutoTrx(knex));\n```\n\nThen use the `getTrx` function as a replacement for the `knex` object/function:\n\n```js\nconst { getTrx } = require('../middleware/express-knex-auto-trx');\nconst express = require('express');\nconst router = express.Router();\n\nrouter.post('/users', (req, res, next) => {\n  try {\n    const [savedUser] = await getTrx() // each request will get its own transaction\n      .insert(userData)\n      .into('users')\n      .returning('*');\n    res.status(200).json(savedUser);\n  } catch (err) {\n    next(err);\n  }\n});\n\nmodule.exports = router;\n```\n","readmeFilename":"README.md"}