fix(core): update
This commit is contained in:
8
ts/00_commitinfo_data.ts
Normal file
8
ts/00_commitinfo_data.ts
Normal file
@ -0,0 +1,8 @@
|
||||
/**
|
||||
* autocreated commitinfo by @pushrocks/commitinfo
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@pushrocks/smartrx',
|
||||
version: '2.0.26',
|
||||
description: 'smart wrapper for rxjs'
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
import * as plugins from './smartrx.plugins';
|
||||
export * from './smartrx.classes.observablemap';
|
||||
export * from './smartrx.classes.observableintake';
|
||||
import * as rxjs from './smartrx.plugins.rxjs';
|
||||
import * as plugins from './smartrx.plugins.js';
|
||||
export * from './smartrx.classes.observablemap.js';
|
||||
export * from './smartrx.classes.observableintake.js';
|
||||
import * as rxjs from './smartrx.plugins.rxjs.js';
|
||||
export {
|
||||
rxjs
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
import * as plugins from './smartrx.plugins';
|
||||
import * as plugins from './smartrx.plugins.js';
|
||||
|
||||
import * as rxjs from './smartrx.plugins.rxjs';
|
||||
import * as rxjs from './smartrx.plugins.rxjs.js';
|
||||
|
||||
/**
|
||||
* ObservableIntake
|
||||
@ -22,7 +22,7 @@ export class ObservableIntake<T> {
|
||||
private payloadBuffer: any[] = [];
|
||||
|
||||
constructor() {
|
||||
this.observable = rxjs.Observable.create((observerArg: rxjs.Observer<any>) => {
|
||||
this.observable = new rxjs.Observable((observerArg: rxjs.Observer<any>) => {
|
||||
this.observableFunctions.next = (...args: any) => {
|
||||
return observerArg.next(args);
|
||||
};
|
||||
|
@ -1,5 +1,5 @@
|
||||
import * as plugins from './smartrx.plugins';
|
||||
import * as rxjs from './smartrx.plugins.rxjs';
|
||||
import * as plugins from './smartrx.plugins.js';
|
||||
import * as rxjs from './smartrx.plugins.rxjs.js';
|
||||
|
||||
export interface IEventEmitter<T = any> {
|
||||
on: (eventNameArg: string, eventHandlerArg: (eventPayload: T) => any) => void;
|
||||
@ -8,9 +8,9 @@ export interface IEventEmitter<T = any> {
|
||||
/**
|
||||
* bundles an observable with an emitter
|
||||
*/
|
||||
export interface IObservableEmitterBundle {
|
||||
observable: rxjs.Observable<any>;
|
||||
emitter: IEventEmitter<unknown>;
|
||||
export interface IObservableEventBundle<T> {
|
||||
subject: rxjs.Subject<any>;
|
||||
eventRef: T;
|
||||
event: string;
|
||||
}
|
||||
|
||||
@ -18,26 +18,56 @@ export interface IObservableEmitterBundle {
|
||||
* manages observables by making sure that only one observable is regsitered per event
|
||||
*/
|
||||
export class Observablemap {
|
||||
public observableEmitterBundleArray = new Array<IObservableEmitterBundle>();
|
||||
public observableEventEmitterBundleArray = new Array<
|
||||
IObservableEventBundle<IEventEmitter<unknown>>
|
||||
>();
|
||||
public observableEventTargetBundleArray = new Array<IObservableEventBundle<EventTarget>>();
|
||||
|
||||
/**
|
||||
* creates a new observable if not yet registered for the same event.
|
||||
* creates a hot subject if not yet registered for the event.
|
||||
* In case event has been registered before the same observable is returned.
|
||||
*/
|
||||
public getObservableForEmitterEvent<T>(emitterArg: IEventEmitter<T>, eventArg: string) {
|
||||
const existingBundle = this.observableEmitterBundleArray.find((bundleArg) => {
|
||||
return bundleArg.emitter === emitterArg && bundleArg.event === eventArg;
|
||||
public getSubjectForEmitterEvent<T>(
|
||||
emitterArg: IEventEmitter<T>,
|
||||
eventArg: string
|
||||
): rxjs.Subject<T> {
|
||||
const existingBundle = this.observableEventEmitterBundleArray.find((bundleArg) => {
|
||||
return bundleArg.eventRef === emitterArg && bundleArg.event === eventArg;
|
||||
});
|
||||
if (existingBundle) {
|
||||
return existingBundle.observable;
|
||||
return existingBundle.subject;
|
||||
} else {
|
||||
const emitterObservable = rxjs.fromEvent<T>(emitterArg as any, eventArg);
|
||||
this.observableEmitterBundleArray.push({
|
||||
observable: emitterObservable,
|
||||
emitter: emitterArg,
|
||||
const emitterSubject = new rxjs.Subject();
|
||||
emitterObservable.subscribe(emitterSubject);
|
||||
const newBundle: IObservableEventBundle<IEventEmitter> = {
|
||||
subject: emitterSubject,
|
||||
eventRef: emitterArg,
|
||||
event: eventArg,
|
||||
});
|
||||
return emitterObservable;
|
||||
};
|
||||
this.observableEventEmitterBundleArray.push(newBundle);
|
||||
return newBundle.subject;
|
||||
}
|
||||
}
|
||||
|
||||
public getSubjectForEventTarget<T>(
|
||||
eventTargetArg: EventTarget,
|
||||
eventNameArg: string
|
||||
): rxjs.Subject<T> {
|
||||
const existingBundle = this.observableEventTargetBundleArray.find((bundleArg) => {
|
||||
return bundleArg.eventRef === eventTargetArg && bundleArg.event === eventNameArg;
|
||||
});
|
||||
if (existingBundle) {
|
||||
return existingBundle.subject;
|
||||
} else {
|
||||
const emitterSubject = new rxjs.Subject();
|
||||
const newBundle: IObservableEventBundle<EventTarget> = {
|
||||
subject: emitterSubject,
|
||||
eventRef: eventTargetArg,
|
||||
event: eventNameArg,
|
||||
};
|
||||
this.observableEventTargetBundleArray.push(newBundle);
|
||||
return newBundle.subject;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
// this file is intended to keep the bundle size down
|
||||
|
||||
export { Observable, Subject, fromEvent, ReplaySubject, Subscription, Observer } from 'rxjs';
|
||||
export { Observable, Subject, fromEvent, ReplaySubject, Subscription } from 'rxjs';
|
||||
|
||||
export type { Observer } from 'rxjs';
|
||||
|
||||
import { startWith, takeUntil, map, debounce, debounceTime } from 'rxjs/operators';
|
||||
|
||||
|
Reference in New Issue
Block a user