https://github.com/david-luna/basol
Basic observer library
https://github.com/david-luna/basol
library observable
Last synced: 5 months ago
JSON representation
Basic observer library
- Host: GitHub
- URL: https://github.com/david-luna/basol
- Owner: david-luna
- License: apache-2.0
- Created: 2021-10-18T07:25:26.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-11-10T10:39:22.000Z (8 months ago)
- Last Synced: 2025-11-10T12:19:07.958Z (8 months ago)
- Topics: library, observable
- Language: JavaScript
- Homepage:
- Size: 506 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# basol
Basic observer library
[](https://github.com/david-luna/basol/blob/master/README.md)
[](https://github.com/david-luna/basol/issues)
[](https://github.com/david-luna/basol/actions)
[](https://coveralls.io/github/david-luna/basol)


## Summary
This is a personal implementation of the observer pattern taking rxjs as a template for its API. This lib does not pretend to be a substitute or competitor of such library but rather a place for experiementation and learning.
The library tries to mimic the same API for producers (here called factories) and operators. Method signatures are extracted from the original [rxjs docs](https://rxjs.dev/guide/operators).
Tests try to be as accurate as possible but the behavior may differ. Also the implementations of the factories and
operators do not use utils and I tried to avoid any internal dependency.
## Release notes
### [0.5.1]
* Added trusted publishing and provenance
### [0.5.0]
* BREAKING CHANGE: the package has been migrated from TypeScript to
JavaScript + JsDocs for types. In this migration I've decided to make the
package ESM only so `require` would fail to load the lib. The new flag
`--experimental-require-module` can be used to load the lib if your app
is in `commonjs` format. Checkout [the docs](https://nodejs.org/docs/latest/api/modules.html#loading-ecmascript-modules-using-require).
* Add `tap` operator
### [0.4.0]
* Fix barrel files to expose latest operators and factories
### [0.3.0]
* Add `mergeMap` operator
### [0.2.0]
* Add `withLatestFrom` operator
### [0.1.0]
* Add `combineLatest` factory method
### [0.0.3]
* Add `fromEventPattern` factory method