Skip to content

Commit 53fc40e

Browse files
committed
fix(core): CHECKOUT-3053 Fix type definition for actionTransformer option. Use Subscribable interface instead.
1 parent d33d91c commit 53fc40e

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

src/data-store.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import 'rxjs/add/operator/map';
1313
import 'rxjs/add/operator/mergeMap';
1414
import 'rxjs/add/operator/scan';
1515
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
16-
import { Observable, SubscribableOrPromise } from 'rxjs/Observable';
16+
import { Observable, Subscribable, SubscribableOrPromise } from 'rxjs/Observable';
1717
import { Subject } from 'rxjs/Subject';
1818

1919
import Action from './action';
@@ -94,7 +94,7 @@ export default class DataStore<TState, TAction extends Action = Action, TTransfo
9494
subscriber: Subscriber<TTransformedState>,
9595
...filters: Array<Filter<TTransformedState>>
9696
): Unsubscriber {
97-
let state$: Observable<any> = this._state$;
97+
let state$: Observable<TTransformedState> = this._state$;
9898

9999
if (filters.length > 0) {
100100
state$ = state$.distinctUntilChanged((stateA, stateB) =>
@@ -145,13 +145,14 @@ export default class DataStore<TState, TAction extends Action = Action, TTransfo
145145
return new Promise((resolve, reject) => {
146146
const error$ = this._getDispatchError(options.queueId);
147147
const transformedAction$ = this._options.actionTransformer(
148-
Observable.from(action$).map((action) =>
149-
options.queueId ? merge({}, action, { meta: { queueId: options.queueId } }) : action
150-
)
148+
Observable.from(action$)
149+
.map((action) =>
150+
options.queueId ? merge({}, action, { meta: { queueId: options.queueId } }) : action
151+
) as Subscribable<TDispatchAction>
151152
);
152153

153154
this._getDispatcher(options.queueId).next(
154-
transformedAction$
155+
Observable.from(transformedAction$)
155156
.map((action, index) => {
156157
if (index === 0) {
157158
error$.first().subscribe(reject);
@@ -205,7 +206,7 @@ export default class DataStore<TState, TAction extends Action = Action, TTransfo
205206

206207
export interface DataStoreOptions<TState, TAction, TTransformedState> {
207208
shouldWarnMutation: boolean;
208-
actionTransformer: (action: Observable<TAction>) => Observable<TAction>;
209+
actionTransformer: (action: Subscribable<TAction>) => Subscribable<TAction>;
209210
stateTransformer: (state: TState) => TTransformedState;
210211
}
211212

@@ -214,4 +215,4 @@ interface StateTuple<TState, TTransformedState> {
214215
transformedState: TTransformedState;
215216
}
216217

217-
type Dispatcher<TAction> = Subject<Observable<TAction>>;
218+
type Dispatcher<TAction> = Subject<Subscribable<TAction>>;

src/noop-action-transformer.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { Observable } from 'rxjs/Observable';
1+
import { Subscribable } from 'rxjs/Observable';
22

33
import Action from './action';
44

55
export default function noopActionTransformer<TAction extends Action, TTransformedAction extends Action = TAction>(
6-
action: Observable<TAction>
7-
): Observable<TTransformedAction> {
8-
return action as any as Observable<TTransformedAction>;
6+
action: Subscribable<TAction>
7+
): Subscribable<TTransformedAction> {
8+
return action as any as Subscribable<TTransformedAction>;
99
}

0 commit comments

Comments
 (0)