modular_core 0.3.0 copy "modular_core: ^0.3.0" to clipboard
modular_core: ^0.3.0 copied to clipboard

Smart project structure with dependency injection and route management

modular_core #

Injector and Tracker.

Use Module for Route or Bind(DI) or both. #


class OnlyRouteModule extends Module {
  @override
  List<ModularRoute> get routes => [
        CustomRoute(name: '/'),
      ];
}

class OnlyBindModule extends Module {
    List<Bind> get binds => [
      Bind.singleton((i) => GlobalController(), export: true),
  ];
}


class MyModule extends Module {

  List<Module> get imports => [OnlyBindModule()];


  List<Bind> get binds => [
      Bind.singleton((i) => MyController(i<GlobalController>())),
  ];

  @override
  List<ModularRoute> get routes => [
        CustomRoute(name: '/'),
        CustomRoute(name: '/product/:id'),
        CustomRoute(name: '/product/test'),
        CustomRoute.module('/only', module: OnlyRouteModule()),
      ];
}


Execute: #


main(){
    // start module
    ModularTracker.runApp(MyModule());

    //get routes
    final route = Tracker.findRoute('/');
    final routeForOnlyRoute = Tracker.findRoute('/only/');
    final route = Tracker.findRoute('/product/1', data: MyArgs());

    //get binds
    final controller = Tracker.injector.get<MyController>();

    //finishApp
    ModularTracker.finishApp();
}

Auxiliary classes #

  • Middleware - abstract.
  • RouteGuard - extends Middleware.
  • ModularRoute - abstract for create route.
  • Bind - encapsulate injection.
  • Module - abstract extends BindContext and RouteContext.
14
likes
110
points
148k
downloads

Publisher

verified publisherflutterando.com.br

Weekly Downloads

Smart project structure with dependency injection and route management

Repository (GitHub)
Contributing

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

characters, meta, modular_interfaces

More

Packages that depend on modular_core