Product
Introducing SSO
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
indefinite-observable
Advanced tools
Readme
There are a lot of great Observable implementations, but they're baked into featureful libraries which contribute to both complexity and filesize. We wanted the simplest-possible Observable implementation, with no operators, no fancy scheduling. The entire thing is basically three statements in subscribe
.
Indefinite Observable is a subset of the TC39 Observable proposal that never complete
s or error
s. It implements the minimal-necessary functionality, but it should be completely interchangeable with the TC39 proposal for the subset that it does implement.
If you want a complete Observables library that works out-of-the-box, check out xstream, RxJS, Most, Bacon, or Kefir. If you want to build your own Observables library that includes just the functionality you need, try Indefinite Observable.
import { IndefiniteObservable } from 'indefinite-observable';
const moveEvent$ = new IndefiniteObservable(
(observer) => {
// Whenever you want the observable to dispatch a value, call
// observer.next(value).
element.addEventListener('pointermove', observer.next);
// Return a function that will perform any necessary clean up when the
// observable is unsubscribed from.
return () => {
element.removeEventListener('pointermove', observer.next);
}
}
);
// To receive the values dispatched by an observable, pass an observer to its
// subscribe method. An observer is just an object with a next method.
//
// subscribe returns a unsubscribe function. Call that when you no longer want
// to receive dispatches from the observable.
const unsubscribe = moveEvent$.subscribe({
next(moveEvent) {
console.log('got a pointer event: ', moveEvent);
}
});
Learn more about How Indefinite Observables work.
yarn add indefinite-observable
or include as a script tag:
<script type = "module">
import { IndefiniteObservable } from "https://ajax.googleapis.com/ajax/libs/indefinite-observable/2.0.1/indefinite-observable.bundle.js"
</script>
This library aims to be as simple as possible, so modifications will be rare. Reasons we might make changes are limited to:
If you'd like to add operators, static methods, or other features, we invite you to depend upon us subclassing IndefiniteObservable
in your own module. In fact, that's how we add features too.
Of course, we welcome improvements to the examples and documentation in this repo.
Our source is available in 3 flavors: a TypeScript module, a JavaScript module, and a JavaScript bundle. Any changes made to the first need to be reflected in the other two. This should be handled for you automatically via a pre-commit hook. If you have a clean working copy after committing, you're good. If not, amend the commit with the new build before pushing.
If you need to bundle it independently, run
yarn run build
yarn run test
FAQs
<!-- TODO: update version number before releasing, here and in the script tag --> [![Current version:](https://img.shields.io/badge/v2.0.1:-222222.svg?logo=npm)](https://www.npmjs.com/package/indefinite-observable/v/2.0.1) [![Test status](https://img.shie
The npm package indefinite-observable receives a total of 165,981 weekly downloads. As such, indefinite-observable popularity was classified as popular.
We found that indefinite-observable demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.