Skip to content

Commit

Permalink
feat: 🎸 add types to observables in data handler
Browse files Browse the repository at this point in the history
  • Loading branch information
streamich committed Feb 5, 2020
1 parent 4611b5e commit 12aaee4
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 8 deletions.
7 changes: 5 additions & 2 deletions src/plugins/expressions/public/loader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,11 @@ export class ExpressionLoader {
this.update$ = this.renderHandler.update$;
this.events$ = this.renderHandler.events$;

this.update$.subscribe(({ newExpression, newParams }) => {
this.update(newExpression, newParams);
this.update$.subscribe(value => {
if (value) {
const { newExpression, newParams } = value;
this.update(newExpression, newParams);
}
});

this.data$.subscribe(data => {
Expand Down
17 changes: 11 additions & 6 deletions src/plugins/expressions/public/render.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@
import * as Rx from 'rxjs';
import { Observable } from 'rxjs';
import { filter } from 'rxjs/operators';
import { RenderError, RenderErrorHandlerFnType } from './types';
import { RenderError, RenderErrorHandlerFnType, IExpressionLoaderParams } from './types';
import { getRenderersRegistry } from './services';
import { renderErrorHandler as defaultRenderErrorHandler } from './render_error_handler';
import { IInterpreterRenderHandlers } from '../common';
import { IInterpreterRenderHandlers, ExpressionAstExpression } from '../common';

export type IExpressionRendererExtraHandlers = Record<string, any>;

Expand All @@ -36,17 +36,22 @@ interface Event {
data: any;
}

interface UpdateValue {
newExpression?: string | ExpressionAstExpression;
newParams: IExpressionLoaderParams;
}

export class ExpressionRenderHandler {
render$: Observable<any>;
update$: Observable<any>;
render$: Observable<number>;
update$: Observable<UpdateValue | null>;
events$: Observable<Event>;

private element: HTMLElement;
private destroyFn?: any;
private renderCount: number = 0;
private renderSubject: Rx.BehaviorSubject<any | null>;
private renderSubject: Rx.BehaviorSubject<number | null>;
private eventsSubject: Rx.Subject<unknown>;
private updateSubject: Rx.Subject<unknown>;
private updateSubject: Rx.Subject<UpdateValue | null>;
private handlers: IInterpreterRenderHandlers;
private onRenderError: RenderErrorHandlerFnType;

Expand Down

0 comments on commit 12aaee4

Please sign in to comment.