Compare commits

...

6 Commits

Author SHA1 Message Date
e8057c0c95 2.0.25 2022-01-24 21:48:32 +01:00
d389d180e5 fix(core): update 2022-01-24 21:48:32 +01:00
d92123dcb9 2.0.24 2022-01-24 07:37:53 +01:00
5d8f569339 fix(core): update 2022-01-24 07:37:52 +01:00
7168bd7ffd 2.0.23 2022-01-24 07:30:55 +01:00
5031d28c32 fix(core): update 2022-01-24 07:30:54 +01:00
6 changed files with 19 additions and 16 deletions

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "@pushrocks/smartrx", "name": "@pushrocks/smartrx",
"version": "2.0.22", "version": "2.0.25",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@pushrocks/smartrx", "name": "@pushrocks/smartrx",
"version": "2.0.22", "version": "2.0.25",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@pushrocks/lik": "^5.0.1", "@pushrocks/lik": "^5.0.1",

View File

@ -1,6 +1,6 @@
{ {
"name": "@pushrocks/smartrx", "name": "@pushrocks/smartrx",
"version": "2.0.22", "version": "2.0.25",
"private": false, "private": false,
"description": "smart wrapper for rxjs", "description": "smart wrapper for rxjs",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",
@ -22,7 +22,6 @@
"tslint-config-prettier": "^1.18.0" "tslint-config-prettier": "^1.18.0"
}, },
"dependencies": { "dependencies": {
"@pushrocks/lik": "^5.0.1",
"@pushrocks/smartpromise": "^3.1.6", "@pushrocks/smartpromise": "^3.1.6",
"rxjs": "^7.5.2" "rxjs": "^7.5.2"
}, },

View File

@ -1,4 +1,7 @@
import * as plugins from './smartrx.plugins'; import * as plugins from './smartrx.plugins';
export * from './smartrx.classes.observablemap'; export * from './smartrx.classes.observablemap';
export * from './smartrx.classes.observableintake'; export * from './smartrx.classes.observableintake';
export * from './smartrx.plugins.rxjs'; import * as rxjs from './smartrx.plugins.rxjs';
export {
rxjs
}

View File

@ -1,10 +1,12 @@
import * as plugins from './smartrx.plugins'; import * as plugins from './smartrx.plugins';
import * as rxjs from './smartrx.plugins.rxjs';
/** /**
* ObservableIntake * ObservableIntake
*/ */
export class ObservableIntake<T> { export class ObservableIntake<T> {
public observable: plugins.rxjs.Observable<T>; public observable: rxjs.Observable<T>;
public completed: Promise<void>; public completed: Promise<void>;
private completedDeffered: plugins.smartpromise.Deferred<void>; private completedDeffered: plugins.smartpromise.Deferred<void>;
private observableFunctions: any = { private observableFunctions: any = {
@ -20,7 +22,7 @@ export class ObservableIntake<T> {
private payloadBuffer: any[] = []; private payloadBuffer: any[] = [];
constructor() { constructor() {
this.observable = plugins.rxjs.Observable.create((observerArg: plugins.rxjs.Observer<any>) => { this.observable = rxjs.Observable.create((observerArg: rxjs.Observer<any>) => {
this.observableFunctions.next = (...args: any) => { this.observableFunctions.next = (...args: any) => {
return observerArg.next(args); return observerArg.next(args);
}; };
@ -33,7 +35,7 @@ export class ObservableIntake<T> {
this.completed = this.completedDeffered.promise; this.completed = this.completedDeffered.promise;
} }
public setObservable(observableFunc: plugins.rxjs.Observable<any>) { public setObservable(observableFunc: rxjs.Observable<any>) {
this.observable = observableFunc; this.observable = observableFunc;
} }

View File

@ -1,4 +1,5 @@
import * as plugins from './smartrx.plugins'; import * as plugins from './smartrx.plugins';
import * as rxjs from './smartrx.plugins.rxjs';
export interface IEventEmitter<T = any> { export interface IEventEmitter<T = any> {
on: (eventNameArg: string, eventHandlerArg: (eventPayload: T) => any) => void; on: (eventNameArg: string, eventHandlerArg: (eventPayload: T) => any) => void;
@ -8,7 +9,7 @@ export interface IEventEmitter<T = any> {
* bundles an observable with an emitter * bundles an observable with an emitter
*/ */
export interface IObservableEmitterBundle { export interface IObservableEmitterBundle {
observable: plugins.rxjs.Observable<any>; observable: rxjs.Observable<any>;
emitter: IEventEmitter<unknown>; emitter: IEventEmitter<unknown>;
event: string; event: string;
} }
@ -17,21 +18,21 @@ export interface IObservableEmitterBundle {
* manages observables by making sure that only one observable is regsitered per event * manages observables by making sure that only one observable is regsitered per event
*/ */
export class Observablemap { export class Observablemap {
public observableEmitterBundleObjectmap = new plugins.lik.ObjectMap<IObservableEmitterBundle>(); public observableEmitterBundleArray = new Array<IObservableEmitterBundle>();
/** /**
* creates a new observable if not yet registered for the same event. * creates a new observable if not yet registered for the same event.
* In case event has been registered before the same observable is returned. * In case event has been registered before the same observable is returned.
*/ */
public getObservableForEmitterEvent<T>(emitterArg: IEventEmitter<T>, eventArg: string) { public getObservableForEmitterEvent<T>(emitterArg: IEventEmitter<T>, eventArg: string) {
const existingBundle = this.observableEmitterBundleObjectmap.findSync((bundleArg) => { const existingBundle = this.observableEmitterBundleArray.find((bundleArg) => {
return bundleArg.emitter === emitterArg && bundleArg.event === eventArg; return bundleArg.emitter === emitterArg && bundleArg.event === eventArg;
}); });
if (existingBundle) { if (existingBundle) {
return existingBundle.observable; return existingBundle.observable;
} else { } else {
const emitterObservable = plugins.rxjs.fromEvent<T>(emitterArg as any, eventArg); const emitterObservable = rxjs.fromEvent<T>(emitterArg as any, eventArg);
this.observableEmitterBundleObjectmap.add({ this.observableEmitterBundleArray.push({
observable: emitterObservable, observable: emitterObservable,
emitter: emitterArg, emitter: emitterArg,
event: eventArg, event: eventArg,

View File

@ -1,5 +1,3 @@
import * as lik from '@pushrocks/lik';
import * as rxjs from './smartrx.plugins.rxjs';
import * as smartpromise from '@pushrocks/smartpromise'; import * as smartpromise from '@pushrocks/smartpromise';
export { lik, rxjs, smartpromise }; export { smartpromise };