{"bugs":{"url":"https://github.com/cartant/rxjs-etc/issues"},"dist":{"shasum":"4dfb49257c5b3f53ed9778695ff39dfade78c2d2","tarball":"https://registry.npmjs.org/rxjs-etc/-/rxjs-etc-6.0.0-rc.1.tgz","fileCount":142,"integrity":"sha512-pzqa8twBp2QZgNqWlaVwihuQmJSHd33FBuHHaLmAFtKokypWKwWfyPuKe0MvHx7Cev57kyuHgpCByeuEU9N+Ww==","signatures":[{"sig":"MEYCIQCn1pNtKscpbZLumd+WSekaKazV+RoSuWjK9FA/La6qFQIhANGNlLrkrBp5SSjL2HZiUaqVyPe8lXVB3CNIpHpu+s+3","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":154067},"main":"./index.js","name":"rxjs-etc","types":"./index.d.ts","unpkg":"./bundles/rxjs-etc.min.umd.js","author":{"name":"Nicholas Jamieson","email":"nicholas@cartant.com"},"es2015":"./esm2015/index.js","module":"./esm5/index.js","readme":"# rxjs-etc\n\n[![GitHub License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/cartant/rxjs-etc/blob/master/LICENSE)\n[![NPM version](https://img.shields.io/npm/v/rxjs-etc.svg)](https://www.npmjs.com/package/rxjs-etc)\n[![Build status](https://img.shields.io/travis/cartant/rxjs-etc.svg)](http://travis-ci.org/cartant/rxjs-etc)\n[![dependency status](https://img.shields.io/david/cartant/rxjs-etc.svg)](https://david-dm.org/cartant/rxjs-etc)\n[![devDependency Status](https://img.shields.io/david/dev/cartant/rxjs-etc.svg)](https://david-dm.org/cartant/rxjs-etc#info=devDependencies)\n[![peerDependency Status](https://img.shields.io/david/peer/cartant/rxjs-etc.svg)](https://david-dm.org/cartant/rxjs-etc#info=peerDependencies)\n[![Greenkeeper badge](https://badges.greenkeeper.io/cartant/rxjs-etc.svg)](https://greenkeeper.io/)\n\n### What is it?\n\nA bunch of observables and operators for RxJS.\n\n### Why might you need it?\n\nI created this package as a place to put additional RxJS observables, operators and methods. If you are looking for something that's not in the RxJS distribution, there might be something suitable in here - if you're lucky.\n\n## Install\n\nInstall the package using NPM:\n\n```\nnpm install rxjs-etc --save\n```\n\n## What's in it?\n\n### `Observable` factories\n\n* [combineLatestArray](./source/observable/combineLatestArray.ts)\n* [concatArray](./source/observable/concatArray.ts)\n* [forkJoinArray](./source/observable/forkJoinArray.ts)\n* [mergeArray](./source/observable/mergeArray.ts)\n* [zipArray](./source/observable/zipArray.ts)\n\n    A bunch of static methods that behave in a predictable manner when passed empty arrays. Some of these are now redundant, but some aren't.\n\n    To see how these methods behave, consult their tests.\n\n* [forkJoinConcurrent](./source/observable/forkJoinConcurrent.ts)\n\n    Like `forkJoin` but only runs the specified number of observables concurrently.\n\n* [traverse](./source/observable/traverse.ts)\n\n    Based on `expand`. Traverses a graph with backpressure applied using either a notifier or a consumer.\n\n* [zipPadded](./source/observable/zipPadded.ts)\n\n    Works like `zipArray`, but if some sources complete whilst others continue to emit values, those the complete are 'padded' with the specified `padValue` (which defaults to `undefined`).\n\n### Instance methods for `Observable`\n\n* [doIndex](./source/operator/doIndex.ts)\n\n    Like [`do`](http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-do), but it receives an index in addition to the emitted value.\n\n### Functions for use with `pipe` or `let`\n\nA bunch of functions that can be passed to the `let` operator. Use them like this:\n\n    source.let(endWith(\"this is the end\"))\n\nThey can also be used with `pipe`, like this:\n\n    source.pipe(endWith(\"this is the end\"))\n\n* [debounceAfter](./source/operators/debounceAfter.ts)\n\n    Debounce the source observable, but only after the notifier emits a value.\n\n* [debounceTimeSubsequent](./source/operators/debounceTimeSubsequent.ts)\n\n    Debounce the source observable, but don't debounce the first `count` notifications - only the subsequent notifications.\n\n* [defaultObservableIfEmpty](./source/operators/defaultObservableIfEmpty.ts)\n\n    Like [`defaultIfEmpty`](http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-defaultIfEmpty), but it takes a default observable instead of a default value.\n\n* [endWith](./source/operators/endWith.ts)\n\n    Like [`startWith`](http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-startWith), but for the other end.\n\n* [guard](./source/operators/guard.ts)\n\n    Applies the specified TypeScript guard to change the source observable's type and perform a runtime check. Emits an error notification if the guard rejects a value.\n\n* [pluck](./source/operators/pluck.ts)\n\n    Like [`pluck`](http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-pluck), but it's type-safe and only lets you valid keys. And it returns the appropriate type.\n\n* [prioritize](./source/operators/prioritize.ts)\n\n    When creating signals from a source observable - for use with operators that take a notifier, like `buffer` and `window` - the order in which subscriptions are made is important. `prioritize` can be used to ensure that the notifier subscribes to the source first.\n\n* [rateLimit](./source/operators/rateLimit.ts)\n\n    A rate limiter with pass through when waiting is not necessary.\n\n* [refCountAuditTime](./source/operators/refCountAuditTime.ts)\n\n    Can be used with a `ConnectableObservable` instead of `refCount`. Works kinda like [`auditTime`](http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-auditTime) does for values, but for unsubscriptions instead. That is, when the reference count drops to zero, it waits the specified duration and then if the reference count is zero, it unsubscribes. If the reference count is incremented within the duration, no unsubscription occurs.\n\n* [reschedule](./source/operators/reschedule.ts)\n\n    Emits values using the specified scheduler.\n\n* [subsequent](./source/operators/subsequent.ts)\n\n    Apply the selector to the source observable, but don't select the first `count` notifications - only the subsequent notifications.\n\n* [takeWhileInclusive](./source/operators/takeWhileInclusive.ts)\n\n    Like [`takeWhile`](http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-takeWhile), but the value that fails the predicate is taken.\n\n* [tapIndex](./source/operators/tagIndex.ts)\n\n    Like [`tap`](https://github.com/ReactiveX/rxjs/blob/5.5.2/src/operators/tap.ts#L54-L60), but it receives an index in addition to the emitted value. (Note that `tap` is the lettable/pipeable version of the `do` operator. It was renamed because `do` is a keyword.)\n\n* [throttleAfter](./source/operators/throttleAfter.ts)\n\n    Throttle the source observable, but only after the notifier emits a value.\n\n### Utility functions\n\nA bunch of utility functions that do what their names suggest:\n\n* [isObservable](./source/util.ts)\n* [isScheduler](./source/util.ts)","license":"MIT","private":false,"scripts":{},"_npmUser":{"name":"cartant","email":"nicholas@cartant.com"},"homepage":"https://github.com/cartant/rxjs-etc","keywords":["observable","rxjs"],"repository":{"url":"git+https://github.com/cartant/rxjs-etc.git","type":"git"},"_npmVersion":"5.6.0","description":"Observables and operators for RxJS","directories":{},"maintainers":[{"name":"cartant","email":"nicholas@cartant.com"}],"_nodeVersion":"8.10.0","dependencies":{},"publishConfig":{"tag":"rc"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{},"peerDependencies":{"rxjs":"^6.0.0-rc.0"},"optionalDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/rxjs-etc_6.0.0-rc.1_1523430250576_0.35333436029245857","host":"s3://npm-registry-packages"},"_id":"rxjs-etc@6.0.0-rc.1","version":"6.0.0-rc.1"}