Skip to content

Middleware creation failure does not throw error #58

@elvisun

Description

@elvisun

For the following code:

List<Middleware<AppState>> createMiddlewares() {
  final onFetchWishListMiddleware = _onFetchWishList();

  return [
    TypedMiddleware<AppState, FetchWishListAction>(onFetchWishListMiddleware),
  ];
}

Middleware<AppState> _onFetchSomething(SomethingService service) {
  return (Store<AppState> store, action, NextDispatcher next) async* {
    next(action);

    var user = selectors.getCurrentUser(store.state);

    service.list().listen((List<Something> items) {
      store.dispatch(FetchSomethingSuccessAction(items));
    });
  };
}

I accidentally put in async* which shouldn't be there, then this action's middleware and reducer wouldn't run, but it also didn't throw any error. Are we able to provide Middleware with a better type so we get warnings on things like this early?

Filed an issue in flutter_redux but we thought it's better suited here (brianegan/flutter_redux#178)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions