Compare commits
16 Commits
Author | SHA1 | Date | |
---|---|---|---|
037e33caee | |||
2400e61024 | |||
0fe16f4fc4 | |||
fa8fb5b622 | |||
389f502dd0 | |||
ea3e7dd2ab | |||
e4ac6232b8 | |||
fd9c57dcd0 | |||
090142cb16 | |||
b05a8e4fa4 | |||
66ee8ba0df | |||
f9d8175c8c | |||
5e218e36a5 | |||
417772a1ec | |||
e34d9f7cad | |||
9908d759c6 |
1992
package-lock.json
generated
1992
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
12
package.json
12
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@pushrocks/smartrx",
|
||||
"version": "2.0.9",
|
||||
"version": "2.0.17",
|
||||
"private": false,
|
||||
"description": "smart wrapper for rxjs",
|
||||
"main": "dist_ts/index.js",
|
||||
@ -9,20 +9,20 @@
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"test": "(tstest test/)",
|
||||
"build": "(tsbuild && tsbundle npm)"
|
||||
"build": "(tsbuild --web && tsbundle npm)"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@gitzone/tsbuild": "^2.1.24",
|
||||
"@gitzone/tsbundle": "^1.0.69",
|
||||
"@gitzone/tsrun": "^1.2.8",
|
||||
"@gitzone/tstest": "^1.0.28",
|
||||
"@gitzone/tsrun": "^1.2.12",
|
||||
"@gitzone/tstest": "^1.0.33",
|
||||
"@pushrocks/tapbundle": "^3.2.1",
|
||||
"@types/node": "^14.0.5",
|
||||
"@types/node": "^14.0.14",
|
||||
"tslint": "^6.1.2",
|
||||
"tslint-config-prettier": "^1.18.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@pushrocks/lik": "^4.0.6",
|
||||
"@pushrocks/lik": "^4.0.13",
|
||||
"@pushrocks/smartpromise": "^3.0.6",
|
||||
"rxjs": "^6.5.5"
|
||||
},
|
||||
|
21
readme.md
21
readme.md
@ -8,13 +8,20 @@ smart wrapper for rxjs
|
||||
* [docs (typedoc)](https://pushrocks.gitlab.io/smartrx/)
|
||||
|
||||
## Status for master
|
||||
[](https://gitlab.com/pushrocks/smartrx/commits/master)
|
||||
[](https://gitlab.com/pushrocks/smartrx/commits/master)
|
||||
[](https://www.npmjs.com/package/@pushrocks/smartrx)
|
||||
[](https://snyk.io/test/npm/@pushrocks/smartrx)
|
||||
[](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
||||
[](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
||||
[](https://prettier.io/)
|
||||
|
||||
Status Category | Status Badge
|
||||
-- | --
|
||||
GitLab Pipelines | [](https://lossless.cloud)
|
||||
GitLab Pipline Test Coverage | [](https://lossless.cloud)
|
||||
npm | [](https://lossless.cloud)
|
||||
Snyk | [](https://lossless.cloud)
|
||||
TypeScript Support | [](https://lossless.cloud)
|
||||
node Support | [](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
||||
Code Style | [](https://lossless.cloud)
|
||||
PackagePhobia (total standalone install weight) | [](https://lossless.cloud)
|
||||
PackagePhobia (package size on registry) | [](https://lossless.cloud)
|
||||
BundlePhobia (total size when bundled) | [](https://lossless.cloud)
|
||||
Platform support | [](https://lossless.cloud) [](https://lossless.cloud)
|
||||
|
||||
## Usage
|
||||
|
||||
|
@ -2,6 +2,5 @@ import * as plugins from './smartrx.plugins';
|
||||
export * from './smartrx.classes.observablemap';
|
||||
export * from './smartrx.classes.observableintake';
|
||||
|
||||
import * as rxjs from 'rxjs';
|
||||
|
||||
import * as rxjs from './smartrx.plugins.rxjs';
|
||||
export { rxjs };
|
||||
|
@ -1,12 +1,15 @@
|
||||
import * as plugins from './smartrx.plugins';
|
||||
import { EventEmitter } from '@pushrocks/smartevent';
|
||||
|
||||
export interface IEventEmitter<T = any> {
|
||||
on: (eventNameArg: string, eventHandlerArg: (eventPayload: T) => any) => void;
|
||||
}
|
||||
|
||||
/**
|
||||
* bundles an observable with an emitter
|
||||
*/
|
||||
export interface IObservableEmitterBundle {
|
||||
observable: plugins.rxjs.Observable<any>;
|
||||
emitter: EventEmitter;
|
||||
emitter: IEventEmitter<unknown>;
|
||||
event: string;
|
||||
}
|
||||
|
||||
@ -20,14 +23,14 @@ export class Observablemap {
|
||||
* creates a new observable if not yet registered for the same event.
|
||||
* In case event has been registered before the same observable is returned.
|
||||
*/
|
||||
public getObservableForEmitterEvent(emitterArg: EventEmitter, eventArg: string) {
|
||||
public getObservableForEmitterEvent<T>(emitterArg: IEventEmitter<T>, eventArg: string) {
|
||||
const existingBundle = this.observableEmitterBundleObjectmap.find(bundleArg => {
|
||||
return bundleArg.emitter === emitterArg && bundleArg.event === eventArg;
|
||||
});
|
||||
if (existingBundle) {
|
||||
return existingBundle.observable;
|
||||
} else {
|
||||
const emitterObservable = plugins.rxjs.fromEvent(emitterArg, eventArg);
|
||||
const emitterObservable = plugins.rxjs.fromEvent<T>(emitterArg as any, eventArg);
|
||||
this.observableEmitterBundleObjectmap.add({
|
||||
observable: emitterObservable,
|
||||
emitter: emitterArg,
|
||||
|
11
ts/smartrx.plugins.rxjs.ts
Normal file
11
ts/smartrx.plugins.rxjs.ts
Normal file
@ -0,0 +1,11 @@
|
||||
// this file is intended to keep the bundle size down
|
||||
|
||||
export { Observable, Subject, fromEvent, ReplaySubject } from 'rxjs';
|
||||
|
||||
import { startWith, takeUntil, map } from 'rxjs/operators';
|
||||
|
||||
export const ops = {
|
||||
startWith,
|
||||
takeUntil,
|
||||
map
|
||||
};
|
@ -1,5 +1,5 @@
|
||||
import * as lik from '@pushrocks/lik';
|
||||
import * as rxjs from 'rxjs';
|
||||
import * as rxjs from './smartrx.plugins.rxjs';
|
||||
import * as smartpromise from '@pushrocks/smartpromise';
|
||||
|
||||
export { lik, rxjs, smartpromise };
|
||||
|
Reference in New Issue
Block a user