{"_id":"any-observable","_rev":"4189769","name":"any-observable","description":"Support any Observable library and polyfill","dist-tags":{"latest":"0.6.0"},"maintainers":[{"name":"sindresorhus","email":""}],"time":{"modified":"2026-03-02T02:34:06.000Z","created":"2016-04-27T09:34:17.115Z","0.6.0":"2026-02-02T05:53:10.242Z","0.5.1":"2020-01-25T12:17:50.678Z","0.5.0":"2019-09-23T05:52:10.324Z","0.4.0":"2019-05-28T16:55:33.690Z","0.3.0":"2018-04-19T19:13:24.970Z","0.2.0":"2016-06-27T19:32:15.561Z","0.1.1":"2016-04-27T16:08:43.103Z","0.1.0":"2016-04-27T09:34:17.115Z"},"users":{"chrisyipw":true,"shanewholloway":true},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"repository":{"type":"git","url":"git+https://github.com/sindresorhus/any-observable.git"},"versions":{"0.6.0":{"name":"any-observable","version":"0.6.0","description":"Support any Observable library and polyfill","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/any-observable.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"type":"module","exports":{".":"./index.js","./implementation":"./implementation.js","./loader":"./loader.js","./optional":"./optional.js","./register":{"browser":"./register-shim.js","default":"./register.js"},"./register-shim":"./register-shim.js","./register/*":"./register/*.js"},"sideEffects":true,"engines":{"node":">=20"},"scripts":{"test":"xo && ava"},"keywords":["observable","observables","support","polyfill","any","rxjs"],"devDependencies":{"arrify":"^3.0.0","ava":"^6.4.1","browserify":"^17.0.1","execa":"^9.6.1","karma":"^6.4.4","karma-browserify":"^8.1.0","karma-chrome-launcher":"^3.2.0","karma-mocha":"^2.0.1","mocha":"^11.7.5","rxjs":"^7.8.2","watchify":"^4.0.0","xo":"^1.2.3","zen-observable":"^0.10.0"},"peerDependenciesMeta":{"rxjs":{"optional":true},"zen-observable":{"optional":true}},"browser":{"./register.js":"./register-shim.js"},"xo":[{"files":"browser/tests/**","languageOptions":{"globals":{"it":"readonly"}},"rules":{"unicorn/prefer-node-protocol":"off","import/no-unassigned-import":"off","import/order":"off","import-x/no-unassigned-import":"off","import-x/order":"off"}}],"ava":{"files":["test/**/*.js"]},"gitHead":"38ead9a059810006db530573280d9e36a0562957","_id":"any-observable@0.6.0","bugs":{"url":"https://github.com/sindresorhus/any-observable/issues"},"homepage":"https://github.com/sindresorhus/any-observable#readme","_nodeVersion":"25.3.0","_npmVersion":"11.7.0","dist":{"shasum":"a3c3923a6aa9537960c214df3d457ea7441e6205","size":4740,"noattachment":false,"key":"/any-observable/-/any-observable-0.6.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/any-observable/download/any-observable-0.6.0.tgz"},"_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"directories":{},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/any-observable_0.6.0_1770011590081_0.688420860427386"},"_hasShrinkwrap":false,"_cnpmcore_publish_time":"2026-02-02T05:53:10.242Z","publish_time":1770011590242,"_source_registry_name":"default","_cnpm_publish_time":1770011590242},"0.5.1":{"name":"any-observable","version":"0.5.1","description":"Support any Observable library and polyfill","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/any-observable.git"},"funding":"https://github.com/sponsors/sindresorhus","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava"},"keywords":["observable","observables","support","polyfill","any","rxjs"],"devDependencies":{"arrify":"^2.0.1","ava":"^1.4.1","browserify":"^16.2.0","execa":"^1.0.0","karma":"^4.1.0","karma-browserify":"^6.0.0","karma-chrome-launcher":"^2.2.0","karma-mocha":"^1.3.0","mocha":"^6.1.4","rxjs":"^6.5.3","watchify":"^3.11.0","xo":"^0.24.0","zen-observable":"^0.8.8"},"peerDependenciesMeta":{"rxjs":{"optional":true},"zen-observable":{"optional":true}},"browser":{"./register.js":"./register-shim.js"},"xo":{"overrides":[{"files":"browser/tests/**","envs":["mocha"]}]},"gitHead":"4b49a812d7d885c99c1433b0e68de50ceb95a028","bugs":{"url":"https://github.com/sindresorhus/any-observable/issues"},"homepage":"https://github.com/sindresorhus/any-observable#readme","_id":"any-observable@0.5.1","_nodeVersion":"10.17.0","_npmVersion":"6.11.3","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"ab7d49ff64ebe6dd3ae26760a3f5a881e8db791e","size":3763,"noattachment":false,"key":"/any-observable/-/any-observable-0.5.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/any-observable/download/any-observable-0.5.1.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/any-observable_0.5.1_1579954670509_0.6310931261731465"},"_hasShrinkwrap":false,"publish_time":1579954670678,"_cnpm_publish_time":1579954670678},"0.5.0":{"name":"any-observable","version":"0.5.0","description":"Support any Observable library and polyfill","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/any-observable.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava"},"keywords":["observable","observables","support","polyfill","any","rxjs"],"devDependencies":{"arrify":"^2.0.1","ava":"^1.4.1","browserify":"^16.2.0","execa":"^1.0.0","karma":"^4.1.0","karma-browserify":"^6.0.0","karma-chrome-launcher":"^2.2.0","karma-mocha":"^1.3.0","mocha":"^6.1.4","rxjs":"^6.5.3","watchify":"^3.11.0","xo":"^0.24.0","zen-observable":"^0.8.8"},"browser":{"./register.js":"./register-shim.js"},"xo":{"overrides":[{"files":"browser/tests/**","envs":["mocha"]}]},"gitHead":"d8f6d406bc227e29ed3b9a6a2707908a014be971","bugs":{"url":"https://github.com/sindresorhus/any-observable/issues"},"homepage":"https://github.com/sindresorhus/any-observable#readme","_id":"any-observable@0.5.0","_nodeVersion":"10.16.3","_npmVersion":"6.11.3","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"2dc6af0382b67cfd1a49e1f65e515196d4e32d38","size":3715,"noattachment":false,"key":"/any-observable/-/any-observable-0.5.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/any-observable/download/any-observable-0.5.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/any-observable_0.5.0_1569217930179_0.5182698057857529"},"_hasShrinkwrap":false,"publish_time":1569217930324,"_cnpm_publish_time":1569217930324},"0.4.0":{"name":"any-observable","version":"0.4.0","description":"Support any Observable library and polyfill","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/any-observable.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=8"},"scripts":{"test":"xo && ava"},"keywords":["observable","observables","support","polyfill","any","rxjs"],"devDependencies":{"arrify":"^2.0.1","ava":"^1.4.1","browserify":"^16.2.0","execa":"^1.0.0","karma":"^4.1.0","karma-browserify":"^6.0.0","karma-chrome-launcher":"^2.2.0","karma-mocha":"^1.3.0","mocha":"^6.1.4","rxjs":"^5.5.10","watchify":"^3.11.0","xo":"^0.24.0","zen-observable":"^0.8.8"},"browser":{"./register.js":"./register-shim.js"},"xo":{"overrides":[{"files":"browser/tests/**","envs":["mocha"]}]},"gitHead":"95ed4b3de49bc47737b49147512d746bead4ac0e","bugs":{"url":"https://github.com/sindresorhus/any-observable/issues"},"homepage":"https://github.com/sindresorhus/any-observable#readme","_id":"any-observable@0.4.0","_nodeVersion":"8.16.0","_npmVersion":"6.9.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"5d0458e34da2ee6148c1ed14aebbf575c8b47433","size":3473,"noattachment":false,"key":"/any-observable/-/any-observable-0.4.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/any-observable/download/any-observable-0.4.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/any-observable_0.4.0_1559062533526_0.9504878842858295"},"_hasShrinkwrap":false,"publish_time":1559062533690,"_cnpm_publish_time":1559062533690},"0.3.0":{"name":"any-observable","version":"0.3.0","description":"Support any Observable library and polyfill","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/any-observable.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=6"},"scripts":{"test":"xo && ava"},"files":["index.js","implementation.js","loader.js","register.js","register-shim.js","register"],"keywords":["observable","observables","support","polyfill","any","rxjs"],"devDependencies":{"arrify":"^1.0.1","ava":"*","browserify":"^16.2.0","execa":"^0.10.0","karma":"^2.0.0","karma-browserify":"^5.2.0","karma-chrome-launcher":"^2.2.0","karma-mocha":"^1.3.0","mocha":"^5.1.0","rxjs":"^5.5.10","watchify":"^3.11.0","xo":"*","zen-observable":"^0.8.8"},"browser":{"./register.js":"./register-shim.js"},"xo":{"overrides":[{"files":"browser/tests/**","envs":["mocha"]}]},"gitHead":"10a1fe04108776940d5ab0f4b3e1011d864b0de0","bugs":{"url":"https://github.com/sindresorhus/any-observable/issues"},"homepage":"https://github.com/sindresorhus/any-observable#readme","_id":"any-observable@0.3.0","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"af933475e5806a67d0d7df090dd5e8bef65d119b","size":3524,"noattachment":false,"key":"/any-observable/-/any-observable-0.3.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/any-observable/download/any-observable-0.3.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/any-observable_0.3.0_1524165204881_0.5502018804800937"},"_hasShrinkwrap":false,"publish_time":1524165204970,"_cnpm_publish_time":1524165204970},"0.2.0":{"name":"any-observable","version":"0.2.0","description":"Support any Observable library and polyfill","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/any-observable.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=0.10.0"},"scripts":{"test":"xo && ava"},"files":["index.js","implementation.js","loader.js","register.js","register-shim.js","register"],"keywords":["observable","observables","support","polyfill","any","rxjs"],"devDependencies":{"arrify":"^1.0.1","ava":"*","browserify":"^13.0.0","execa":"^0.4.0","karma":"^1.1.0","karma-browserify":"^5.0.4","karma-chrome-launcher":"^1.0.1","karma-mocha":"^1.0.1","karma-phantomjs-launcher":"^1.0.0","mocha":"^2.4.5","phantomjs-prebuilt":"^2.1.7","rxjs":"^5.0.0-beta.9","watchify":"^3.7.0","xo":"*","zen-observable":"^0.3.0"},"browser":{"./register.js":"./register-shim.js"},"xo":{"overrides":[{"files":"browser/tests/**","envs":["mocha"]}]},"gitHead":"6ccd5f822fdb6768e6d402f95ba87d1b118a018f","bugs":{"url":"https://github.com/sindresorhus/any-observable/issues"},"homepage":"https://github.com/sindresorhus/any-observable#readme","_id":"any-observable@0.2.0","_shasum":"c67870058003579009083f54ac0abafb5c33d242","_from":".","_npmVersion":"2.15.5","_nodeVersion":"4.4.5","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"c67870058003579009083f54ac0abafb5c33d242","size":3571,"noattachment":false,"key":"/any-observable/-/any-observable-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/any-observable/download/any-observable-0.2.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/any-observable-0.2.0.tgz_1467055934393_0.3519887304864824"},"directories":{},"publish_time":1467055935561,"_cnpm_publish_time":1467055935561,"_hasShrinkwrap":false},"0.1.1":{"name":"any-observable","version":"0.1.1","description":"Support any Observable library and polyfill","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/any-observable.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=0.10.0"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["observable","observables","support","polyfill","any"],"devDependencies":{"ava":"*","xo":"*","zen-observable":"^0.2.1"},"gitHead":"4f506aec34b32c4865e862b11b757a6ca7942a12","bugs":{"url":"https://github.com/sindresorhus/any-observable/issues"},"homepage":"https://github.com/sindresorhus/any-observable#readme","_id":"any-observable@0.1.1","_shasum":"132d7dd7a20d0583d3e003e4ca1ccbed98939609","_from":".","_npmVersion":"2.15.0","_nodeVersion":"4.4.2","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"132d7dd7a20d0583d3e003e4ca1ccbed98939609","size":1597,"noattachment":false,"key":"/any-observable/-/any-observable-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/any-observable/download/any-observable-0.1.1.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/any-observable-0.1.1.tgz_1461773322684_0.05493554729036987"},"directories":{},"publish_time":1461773323103,"_cnpm_publish_time":1461773323103,"_hasShrinkwrap":false},"0.1.0":{"name":"any-observable","version":"0.1.0","description":"Support any Observable library and polyfill","license":"MIT","repository":{"type":"git","url":"git+https://github.com/sindresorhus/any-observable.git"},"author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"engines":{"node":">=0.10.0"},"scripts":{"test":"xo && ava"},"files":["index.js"],"keywords":["observable","observables","support","polyfill","any"],"devDependencies":{"ava":"*","xo":"*","zen-observable":"^0.2.1"},"gitHead":"3830fd00b29d2e7d5321e19b9963eb7f79038030","bugs":{"url":"https://github.com/sindresorhus/any-observable/issues"},"homepage":"https://github.com/sindresorhus/any-observable#readme","_id":"any-observable@0.1.0","_shasum":"6a0e859d9c24fc398ed1de6ab00c8d3f4d10612c","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"sindresorhus","email":"sindresorhus@gmail.com"},"dist":{"shasum":"6a0e859d9c24fc398ed1de6ab00c8d3f4d10612c","size":1524,"noattachment":false,"key":"/any-observable/-/any-observable-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/any-observable/download/any-observable-0.1.0.tgz"},"maintainers":[{"name":"sindresorhus","email":""}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/any-observable-0.1.0.tgz_1461749656707_0.3174991032574326"},"directories":{},"publish_time":1461749657115,"_cnpm_publish_time":1461749657115,"_hasShrinkwrap":false}},"readme":"# any-observable\n\n> Support any [Observable](https://github.com/zenparsing/es-observable) library and polyfill\n\n## Install\n\n```sh\nnpm install any-observable\n```\n\nYou must also install the Observable library you want:\n\n```sh\nnpm install zen-observable\n```\n\n## Usage\n\n```js\nimport Observable from 'any-observable'; // Using `zen-observable` since it's installed\n\nObservable.of(1, 2).forEach(value => {\n\tconsole.log(value);\n});\n//=> 1\n//=> 2\n```\n\n## Optional import\n\nIf you want to attempt loading without throwing, use the optional entrypoint. It returns `undefined` when no implementation is available:\n\n```js\nimport Observable from 'any-observable/optional';\n\nif (Observable === undefined) {\n\tconsole.log('No Observable implementation available');\n}\n```\n\n## Registration Shortcuts\n\nThis adds the following shortcut registrations:\n\n- `rxjs-min`: Bare bones [RxJs](https://github.com/ReactiveX/rxjs) Observable implementation. See the [RxJs Installation Instructions](http://reactivex.io/rxjs/manual/installation.html) for details on patching additional methods into that implementation.\n- `rxjs`: Same as `rxjs-min`, but adds the somewhat standard `Observable.of` and `Observable.from`.\n- `rxjs-all`: The kitchen sink approach to Observables.\n- `zen`: The [`zen-observable`](https://github.com/zenparsing/zen-observable) implementation.\n\nShortcut registration can be done as follows:\n\n```js\nimport 'any-observable/register/zen';\n```\n\nIt's especially handy for environments that support preloading ESM modules:\n\n```sh\nnode --import=any-observable/register/zen test.js\n```\n\n## Browser native ESM registration\n\nUse the async helper when you want to probe multiple implementations in a browser native ESM setup:\n\n```js\nimport registerAsync from 'any-observable/register/async';\n\nawait registerAsync([\n\t'rxjs',\n\t'zen-observable'\n]);\n\nconst {default: Observable} = await import('any-observable');\n```\n\nThis requires import maps or URL specifiers for the implementations you probe, and it must run before any `import 'any-observable'`.\n\n## Compatibility and interop\n\n`any-observable` expects an ES Observable implementation (a constructor), not just interop on stream instances. Libraries like most, Kefir, Bacon, xstream, and Flyd are not supported directly unless they provide an ES Observable constructor. If your library can convert to an ES Observable, use that and register explicitly:\n\n```js\nimport register from 'any-observable/register';\n\nregister('custom', {Observable: YourObservable});\n```\n\n## For library authors\n\nIf your library depends on Observables via `any-observable`, follow these guidelines:\n\n- **Do not call `register` yourself.** Leave Observable implementation choice to the end user.\n- **Do not rely on non-standard features.** Stick to the [ES Observable spec](https://github.com/zenparsing/es-observable) so any compliant implementation works.\n- **Document `any-observable` support prominently.** Let users know they need to install and register an Observable implementation.\n\n## Related\n\n- [is-observable](https://github.com/sindresorhus/is-observable) - Check if a value is an Observable\n- [observable-to-promise](https://github.com/sindresorhus/observable-to-promise) - Convert an Observable to a Promise\n","_attachments":{},"homepage":"https://github.com/sindresorhus/any-observable#readme","bugs":{"url":"https://github.com/sindresorhus/any-observable/issues"},"license":"MIT"}