{"_id":"polkadot-middleware","_rev":"2-267513729ab8f5a0c08964b10e66d128","name":"polkadot-middleware","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"polkadot-middleware","version":"1.0.0","description":"A middleware pattern for polkadot","main":"index.js","scripts":{"test":"node test.js | tap-color"},"repository":{"type":"git","url":"git+https://github.com/TehShrike/polkadot-middleware.git"},"keywords":["polkadot","http","middleware","server"],"author":{"name":"TehShrike"},"license":"WTFPL","bugs":{"url":"https://github.com/TehShrike/polkadot-middleware/issues"},"homepage":"https://github.com/TehShrike/polkadot-middleware#readme","devDependencies":{"tap-color":"^1.1.0","zora":"^2.0.1"},"dependencies":{},"gitHead":"983d5869cd17d8f77b7e0b60149360e0bd948327","_id":"polkadot-middleware@1.0.0","_nodeVersion":"10.14.0","_npmVersion":"6.8.0","dist":{"integrity":"sha512-fK7TE0FOX/bFIFYhiHcjrGJF8RID4HCM2O898fm40Lv0DLWoehFHVDBsJP4yCJpCiUCzo+W/fPm+RmNlJakLhQ==","shasum":"e8fd51ba31850db83a2264fca30cd77ff182ff1d","tarball":"https://registry.npmjs.org/polkadot-middleware/-/polkadot-middleware-1.0.0.tgz","fileCount":4,"unpackedSize":2340,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdHT6CRA9TVsSAnZWagAAMlAP/0dq+uEVRI8ZPHYtl7h1\n5t1e46LZ9gU4wzxxRyBWXwoVjOEfnI6eSrZC5oArsobC/FEjBlxl4iEzELK3\nT+28GKZcvj/+NpAb/m08PNiO7WGqyXVKSeY6wCLxKpdl5P1z4EhaHUZaIa6Z\nfg7eYGvhHBzpsdbQaX9BY2+Bfi01wGIaS9F8LLX6z9sJv/qMEsklIhQSK4V4\n/3dow1dwqIrPWPHxrpiALgw65M+wz4KKggkut8SJ8L6XfcKn95lVJGzY68oK\nOKE7TLqzNQqr10D4RjAvR8wHsDny26iGXiY6StyVKPPKl1/Ja7OQR8XqmTVm\n7zXgrU4JPllzID/0GctfrH3z46tHHWTD/2leAsrtjIMO7a/9ZuYbNw/K/Uxc\nw+l3DdduXKgy5EudnBLjUXhIWMbeAzYoWVeceCrHiaoUH++mcdPcEII3j5Xu\n8WKzvCx5EagLod86+qFqCATDIcveDlbeo6ws/XbBNITMq8Bz7Tos9EOBhOBd\ntIH0xOvt+q7UPYXoqXvGWoBvlmA58YIozUViFP/NUQOX6czTA6FRoLOZihqR\nepfvRB40+NDYxsCjlaoxRa50kF6vejiLml149fgdzf5hBK604M74aSEx/Mhb\nX4tDto3KFtrBLlxVj0WPSLnDZoFRJV8y8k4YognMLfG9Y5k91weH/i0Pr0at\n0ZVE\r\n=DgtK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHs1z/NVYppPZxVXD8we/Lwdd8tlU2u/J/BX0ZyEIRjTAiEA/u1k18aqkN6QbhWVxN6PORTg7Hjn/jUefO0XONYp/TM="}]},"maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/polkadot-middleware_1.0.0_1551135993661_0.4563057535027837"},"_hasShrinkwrap":false},"1.0.1":{"name":"polkadot-middleware","version":"1.0.1","description":"A middleware pattern for polkadot","main":"index.js","scripts":{"test":"node test.js | tap-color"},"repository":{"type":"git","url":"git+https://github.com/TehShrike/polkadot-middleware.git"},"keywords":["polkadot","http","middleware","server"],"author":{"name":"TehShrike"},"license":"WTFPL","bugs":{"url":"https://github.com/TehShrike/polkadot-middleware/issues"},"homepage":"https://github.com/TehShrike/polkadot-middleware#readme","devDependencies":{"tap-color":"^1.1.0","zora":"^2.0.1"},"dependencies":{},"gitHead":"8d603758f0ff064f5ac3734193a3e2f82dc96072","_id":"polkadot-middleware@1.0.1","_nodeVersion":"10.14.0","_npmVersion":"6.8.0","dist":{"integrity":"sha512-wziJiePfHwv6Oi02shX+gANS6zQoCdNbi0sQABGZOMw+GkQVW58+3U3gdLVQvMATW5VXUksOP4Hc0CACFy2GuQ==","shasum":"873c7c76a0fdab7907926ba4e1d340100e63dd77","tarball":"https://registry.npmjs.org/polkadot-middleware/-/polkadot-middleware-1.0.1.tgz","fileCount":4,"unpackedSize":2376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdHaZCRA9TVsSAnZWagAAfJgP/jl9cUeX8EBIVosXNTa9\nsL/pWRjfQ4rlA/c8GUNN68EhMAjuAi6VCTQL3PfNlQXYj9ZifooEV5aZNn61\n5pjj00rO17q3OXptRZC7zz4bObwKlqI5FRHadQZ6M4eItKS/IwKlxIo1wFZY\nQCa973owRycbCd3DAUrTxpA/7cFIlFvV5Q4sy1KC9ihLgwOidss2Qs4/KENd\n7mkycA5oD5Y0JyD0wgE1rS/QyLHJtF+vdXMoBQDzdZH7GIo2qr7eeE13XWrA\nDG4aFTxLsZNMqntZ5J0xVatfGbImE80rlQF9lz+MQ0s4EXUXZlIhlHsi8Kt4\n2sV1KNSHMClYh+U0tjMzKx23yXWyz0dPjRonmpSD/t1gLP6pXwVK4YcLVV1X\n7N1QetMLnxJm/FzHFXvgRrxj8Kgor/i7N1bQ/mX3fWfdtmPiOMb3OsQmW4cK\nl4Qh54EreiSQR0na7rYiC1ntWKFc3Gg/T/Xpki2KA1YP5Gx6EUKgtPHRVHr3\nOPVeOlZRodVt5oYG1E0tTnAl7Emb8mQqbRo98TrHlgKUe6+MFahzXXKM0hD3\n/O3tvn1vJOMklj1dSGP9j8j0xXaBG8YHGJrM27kTARMmj1zUKzsUs8/sag2J\nvM06qXh4hakh5boo2Ey8t0oALkWM2iRtQ7Frc1V1FRDIVLI0w7WXlg0/6Aoy\ns6Z8\r\n=Ukgb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDwvy4GzoQLtA/ZNUjwZaxSrYUXTE3o4i2IxmABipMUcAiEApyrRHL+eIQW5liVyVhfmYzBvIQZF5hETF93KSvx8T5I="}]},"maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"_npmUser":{"name":"tehshrike","email":"me@JoshDuff.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/polkadot-middleware_1.0.1_1551136409078_0.6782203901868984"},"_hasShrinkwrap":false}},"time":{"created":"2019-02-25T23:06:33.661Z","1.0.0":"2019-02-25T23:06:33.798Z","modified":"2022-05-13T04:23:01.840Z","1.0.1":"2019-02-25T23:13:29.280Z"},"maintainers":[{"name":"tehshrike","email":"me@JoshDuff.com"}],"description":"A middleware pattern for polkadot","homepage":"https://github.com/TehShrike/polkadot-middleware#readme","keywords":["polkadot","http","middleware","server"],"repository":{"type":"git","url":"git+https://github.com/TehShrike/polkadot-middleware.git"},"author":{"name":"TehShrike"},"bugs":{"url":"https://github.com/TehShrike/polkadot-middleware/issues"},"license":"WTFPL","readme":"```js\nnpm i polkadot-middleware\n```\n\nSo you're using the awesome [polkadot](https://github.com/lukeed/polkadot) server, but you're missing that sweet middleware action – it's a pain to have to compose all those functions yourself, isn't it?\n\n```js\npolkadot(\n\thandleErrors(\n\t\tsetCacheControl(\n\t\t\t(req, res) => 'Sup dawg'\n\t\t)\n\t)\n).listen(8080)\n\nfunction handleErrors(next) {\n\treturn async(req, res) => {\n\t\ttry {\n\t\t\treturn await next(req, res)\n\t\t} catch (err) {\n\t\t\tres.statusCode = 500\n\n\t\t\treturn err.message || err\n\t\t}\n\t}\n}\n\nfunction setCacheControl(next) {\n\treturn async(req, res) => {\n\t\tres.setHeader(`Cache-Control`, `public, max-age=` + 3600)\n\t\treturn next(req, res)\n\t}\n}\n```\n\nWell, until TC39 figures out the [pipeline operator](https://github.com/tc39/proposal-pipeline-operator), you can use this library to give yourself that sweet linear middleware experience.\n\n```js\nconst polkadot = require('polkadot')\nconst middleware = require('polkadot-middleware')\n\nmiddleware(\n\tpolkadot,\n\thandleErrors,\n\tsetCacheControl,\n\t(req, res) => 'Sup dawg'\n).listen(8080)\n```\n\n# License\n\n[WTFPL](https://wtfpl2.com)\n","readmeFilename":"readme.md"}