{"_id":"@aviellv/async-request-rxjs-pipe","_rev":"2-1b1c9b102fc420b7a9f86ff9815990db","name":"@aviellv/async-request-rxjs-pipe","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@aviellv/async-request-rxjs-pipe","version":"1.0.0","description":"A pipe functions for rxjs 6+ which emits a three-state 'async-request' with a typed loading/sucess/error status object","main":"./dist/index.js","scripts":{"test":"jest","build":"tsc","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/avilv/async-request.git"},"keywords":["rxjs","rxjs6","rxjs6+","rxjs-pipe","pipe","rxjs6-pipe","rxjs6+-pipe","rxjs-async-request","async-request","async","observable"],"author":{"name":"Aviel Lavie","email":"avielbt@gmail.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/avilv/async-request/issues"},"homepage":"https://github.com/avilv/async-request#readme","dependencies":{"rxjs":"^6.0.0"},"devDependencies":{"@types/jest":"^23.3.1","@types/node":"^10.9.1","del-cli":"^1.1.0","jest":"^23.5.0","jest-preset-typescript":"^1.2.0","ts-jest":"^23.1.4","typescript":"^3.0.1"},"gitHead":"a91f5bea98ecc2d4cfa6034b4dff62fba27400d8","_id":"@aviellv/async-request-rxjs-pipe@1.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"aviellv","email":"avielbt@gmail.com"},"dist":{"integrity":"sha512-OGoYVpvf6YzTyn3lJZeheVhUapQ8xUWSIP/sFGPS/732ujOU2wtylGvboLpHCZ/IxFhz4aaYh1KPpOzEuCejNQ==","shasum":"e13b8eb9f3770b05cedc6870ec971747f7b267b3","tarball":"https://registry.npmjs.org/@aviellv/async-request-rxjs-pipe/-/async-request-rxjs-pipe-1.0.0.tgz","fileCount":5,"unpackedSize":3420,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcjQRfCRA9TVsSAnZWagAAXKwQAJ32Nq4CrVY3NIY8byCR\nLQEUZsv+ORAbjBgRnFyWGTeVupTslqRGjtfC32RjBrqpf8TGQPIowf6oijIq\ncamsFaxcqJmiIzU36f20k/8uzosuokRRKvwBXMlvVYMOVIetIAkgWbf89qSH\nzhABrvERf4k+YKmKHGw1gVfxDl/RLjsteEaRk8nkUh0A86zlnrTbe5Ic/QDf\nNk+mfRj+bdsd/nlHB0mXQNzrAadYw/8W+tXGxkWbakaiPkW90nh3DjLauEZ8\niokMcbcGcyui+6egL/azjAoFN7MBVVcWf11EKFAXBFqqhKyXz0B0tZaeCh8Z\nc6ItkzJEhtxSQYdX6SOzKKYxVqFhXzWI08cqHc6ojn5QIQngdi2dQmfdqGbZ\n3gc0cAkD8jf8sTEPPop+mKJs+guWPvI/TTdYUcvNTYUwp9iGicKJB3SzTHld\npMoS7Fp+vI5U6SDyj8V6pmRO//s6laj2TFzBqmxjIQHdPlgZyIzA9a0jKrik\ntr1kAgXYXrN5ystWD9r4OW+fk1l64j+bvohB2Cli+rm7dwTF0fIpJzwMZSpM\nSD7BpR2ThsX63FK9R8dUj7dHZ3w7WoZkbUEV5eaQBe4Suqxh3+7k9J7EvE/9\nFblaauF5y1E8e42j2aEDOQr9u0ph9WZoXvrMgdg1lqpWpf501AUSuDGpUT61\nxGx/\r\n=J4mA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3qG9daDsOH3oPEk265xsHI91+p16lU/0nGjcdTYHmDgIhAPf+BI2kvlm8Onj+vXz9PwQsBy8Nj9M1etcCh5OA0Hbx"}]},"maintainers":[{"name":"aviellv","email":"avielbt@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-request-rxjs-pipe_1.0.0_1552745566741_0.8005631824249129"},"_hasShrinkwrap":false},"1.0.1":{"name":"@aviellv/async-request-rxjs-pipe","version":"1.0.1","description":"A pipe functions for rxjs 6+ which emits a three-state 'async-request' with a typed loading/sucess/error status object","main":"./dist/index.js","scripts":{"test":"jest","build":"tsc","prepare":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/avilv/async-request.git"},"keywords":["rxjs","rxjs6","rxjs6+","rxjs-pipe","pipe","rxjs6-pipe","rxjs6+-pipe","rxjs-async-request","async-request","async","observable"],"author":{"name":"Aviel Lavie","email":"avielbt@gmail.com"},"license":"Apache-2.0","bugs":{"url":"https://github.com/avilv/async-request/issues"},"homepage":"https://github.com/avilv/async-request#readme","dependencies":{"rxjs":"^6.0.0"},"devDependencies":{"@types/jest":"^23.3.14","@types/node":"^10.9.1","del-cli":"^1.1.0","jest":"^23.5.0","jest-preset-typescript":"^1.2.0","ts-jest":"^23.10.5","typescript":"^3.0.1"},"gitHead":"d9c2b347ef73a1d38e312ea8b460b263ed0bbdd5","_id":"@aviellv/async-request-rxjs-pipe@1.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"aviellv","email":"avielbt@gmail.com"},"dist":{"integrity":"sha512-6xwqmVWpG6MiAMBQM8Z2rZ9EE+r1JA4ssLM8yL/WdOexVwBSv2ZRUgphZtSzj0ex8Qof6Tc7Eb8CK6bWRUpzPw==","shasum":"28c613e5a2842fd9fe8938ecdc2bccb3827935f2","tarball":"https://registry.npmjs.org/@aviellv/async-request-rxjs-pipe/-/async-request-rxjs-pipe-1.0.1.tgz","fileCount":6,"unpackedSize":5081,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcjXqECRA9TVsSAnZWagAA2xMP/R5DvL62tZaODeEprD2c\nG4csVJB2PKtBYi5n6CyZ3M/m78H5wGihYAC8h0W5JFaZf4ShQSxztEg2P5LY\nl++sfolZYImq8f+0EwXbSp0em9bMKRN9SmYPWLRSC+Lo7jJvC4kLwAL6OWQb\nx6uV4KZMuijN2qqlQiMPy6XuPa+YJVnxS5yYoOCQg3oOC3OsWpq6muN5/AtQ\nun6DO89T74ccFxCi01QvmmhEbu3L3pk9cs2wT7+t9awR57GroKiCr/LtAD8b\nclhN1ODJGVsGMsC0UyJl7D5LTaLOMdwZ/w36/HOuUzeJDxkv06bwGCpShPx5\n5PTeJsxXe6dPOcLb9RIhLOVgd2Ky1MmGnS+ZUk6r/z6w6yFys/Bcf1I+twBX\nuM0BiUDdLJxBl+mwgqLG2eyrVaVgBMwXLJUnUerNuw9iGe4XMhWz3IJ5aXUH\nQufAZeMS79Y6dtndDt9JYfaTjLLNOPT2GBKXgHTmm9eSbky9KzIUAptw52JS\nC/IdY3v1JE2zuRnR/LAWi6I72V45FcxkYr1f/UlGxH0KmuinLWhnhWLGvfE1\no3xa1evFz8SL7v92/cTdCU9o/sMsSU8QHJy4sSbv3kzRk95UF1qldoSKNFEf\n0SOqD7e0mS1COuJG/kecRoxrKwhuq+Vo9j6h9WsB4MfnCl+QxT/yitHkPyD/\nSK22\r\n=xN7G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHIpXLjJod+X4HujcvbEE7zRNvsFK0ESEGUOLc5s11FpAiEAiqfVHHCAe2GFcTN4eKQp+mrHdVKLU7xOJDJ7IKSD6Ec="}]},"maintainers":[{"name":"aviellv","email":"avielbt@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/async-request-rxjs-pipe_1.0.1_1552775811393_0.2350865331252141"},"_hasShrinkwrap":false}},"time":{"created":"2019-03-16T14:12:46.556Z","1.0.0":"2019-03-16T14:12:46.861Z","modified":"2022-04-04T16:47:27.757Z","1.0.1":"2019-03-16T22:36:51.801Z"},"maintainers":[{"name":"aviellv","email":"avielbt@gmail.com"}],"description":"A pipe functions for rxjs 6+ which emits a three-state 'async-request' with a typed loading/sucess/error status object","homepage":"https://github.com/avilv/async-request#readme","keywords":["rxjs","rxjs6","rxjs6+","rxjs-pipe","pipe","rxjs6-pipe","rxjs6+-pipe","rxjs-async-request","async-request","async","observable"],"repository":{"type":"git","url":"git+https://github.com/avilv/async-request.git"},"author":{"name":"Aviel Lavie","email":"avielbt@gmail.com"},"bugs":{"url":"https://github.com/avilv/async-request/issues"},"license":"Apache-2.0","readme":"# async-request\r\n\r\n[![npm version](https://badge.fury.io/js/%40aviellv%2Fasync-request-rxjs-pipe.svg)](https://badge.fury.io/js/%40aviellv%2Fasync-request-rxjs-pipe)\r\n[![Build Status](https://travis-ci.org/avilv/async-request.svg?branch=master)](https://travis-ci.org/avilv/async-request)\r\n\r\nA pipe function for rxjs 6+ which emits a three-state 'async-request' with a typed loading/success/error  status object\r\n\r\n## Motivation\r\n\r\nA common use case for consuming streams is displaying a loading animation, the data itself on success or a failure message when it errors.\r\nThis pipe is meant to reduce boiler-plate to a minimum and expose these three states in an easy to consume way.\r\n\r\n## Example usage\r\n \r\n \r\n```ts\r\n\r\n    this.httpQuery$ = this.http.get<string>(\"./api/text\").pipe(asAsyncRequest<string, HttpErrorResponse>());\r\n\r\n    this.httpQuery$.subscribe(response => {\r\n      switch (response.state) {\r\n        case \"loading\":\r\n          showLoadingAnimation();\r\n          break;\r\n        case \"success\":\r\n          showData(response.value);\r\n          break;\r\n        case \"error\":\r\n          showError(response.value.message);\r\n          break;\r\n      }\r\n    });\r\n```\r\nit gets even better when binding in views like in angular with the async pipe:\r\n\r\n```html\r\n\r\n    <span *ngIf=\"(httpQuery$ | async) as response\">\r\n      <ng-container [ngSwitch]=\"response.state\">\r\n        <ng-container *ngSwitchCase=\"'loading'\">loading data...</ng-container>\r\n        <ng-container *ngSwitchCase=\"'success'\">{{response.value}}</ng-container>\r\n        <ng-container *ngSwitchCase=\"'error'\">{{response.value}}</ng-container>\r\n      </ng-container>\r\n    </span>\r\n```\r\n","readmeFilename":"README.md"}