Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: webassembly #982

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Conversation

davidsdearaujo
Copy link
Member

@davidsdearaujo davidsdearaujo commented Jan 2, 2025

Problem

When you run an empty project in WASM using flutter_modular it breaks.

Solution

I believe this issue will be resolved in the Flutter engine itself in the future. It’s likely specific to WASM compilation, as it doesn’t occur on other platforms. Looks like some named params are not working well in WASM, so I recommend to use constructors with positional params of named params.

The injections causing the error in an empty project are internal to flutter_modular. I managed to resolve it by changing the constructors params from positional to named (see the changed files).

For developers

If you want to use named params and you are receiving this error you need to register your dependency like that (only for the dependencies that are returning error in the browser console):

🚫 Before (does not work on WASM)

    i.addSingleton<ModularRouteInformationParser>(ModularRouteInformationParser.new);

✅ After (Works on WASM)

    i.addSingleton<ModularRouteInformationParser>(() {
      return ModularRouteInformationParser(
        getArguments: i(),
        getRoute: i(),
        reportPush: i(),
        setArguments: i(),
        urlService: i(),
      );
    });

When we have it fixed (in Flutter side or in the auto_injector package) this workaround will not be needed anymore.

Checklist

  • The title of my PR starts with a Conventional Commit prefix (fix:, feat:, docs: etc).
  • I have read the Contributor Guide and followed the process outlined for submitting PRs.
  • I have updated/added tests for ALL new/updated/fixed functionality.
  • I have updated/added relevant documentation in docs and added dartdoc comments with ///.
  • I have updated/added relevant examples in examples.

Breaking Change

  • Yes, this is a breaking change.
  • No, this is not a breaking change.

Related Issues

Change named params to positional params in order to work with wasm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

BUG - Support for WebAssembly (Wasm) webassembly bug
1 participant