{"id":16401503,"url":"https://github.com/plugfox/extended_bloc","last_synced_at":"2025-10-26T16:31:01.131Z","repository":{"id":56828590,"uuid":"291452026","full_name":"PlugFox/extended_bloc","owner":"PlugFox","description":"A predictable state management library that helps implement the BLoC design pattern","archived":false,"fork":false,"pushed_at":"2021-05-30T01:10:31.000Z","size":36,"stargazers_count":5,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-31T21:34:40.120Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"wtfpl","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PlugFox.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-30T10:54:51.000Z","updated_at":"2022-09-08T15:52:59.000Z","dependencies_parsed_at":"2022-08-26T13:50:33.441Z","dependency_job_id":null,"html_url":"https://github.com/PlugFox/extended_bloc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlugFox%2Fextended_bloc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlugFox%2Fextended_bloc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlugFox%2Fextended_bloc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PlugFox%2Fextended_bloc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PlugFox","download_url":"https://codeload.github.com/PlugFox/extended_bloc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238366821,"owners_count":19460191,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T05:43:18.878Z","updated_at":"2025-10-26T16:31:00.767Z","avatar_url":"https://github.com/PlugFox.png","language":"Dart","readme":"![](https://raw.githubusercontent.com/felangel/bloc/master/docs/assets/bloc_logo_full.png)  \n  \n  \n# Extended [BLoC](https://pub.dev/packages/bloc)\n[![Actions Status](https://github.com/PlugFox/extended_bloc/workflows/extended_bloc/badge.svg)](https://github.com/PlugFox/extended_bloc/actions)\n[![Coverage](https://codecov.io/gh/PlugFox/extended_bloc/branch/master/graph/badge.svg)](https://codecov.io/gh/PlugFox/extended_bloc)\n[![Pub](https://img.shields.io/pub/v/extended_bloc.svg)](https://pub.dev/packages/extended_bloc)\n[![License: WTFPL](https://img.shields.io/badge/License-WTFPL-brightgreen.svg)](https://en.wikipedia.org/wiki/WTFPL)\n[![effective_dart](https://img.shields.io/badge/style-effective_dart-40c4ff.svg)](https://github.com/tenhobi/effective_dart)\n  \n  \n## EnumBloc\u003cEvent, State\u003e  \n  \nBLoC with primitive events.  \n  \nOverride [router] and create generators.  \n \n#### Example usage:  \n```dart\nclass MyEnumBloc extends EnumBloc\u003cEvent, State\u003e {\n\n  MyEnumBloc() : super(State.initial);\n\n  @override\n  Map\u003cEvent, Function\u003e get router =\u003e\n    \u003cEvent, Function\u003e{\n      Event.read : _read,\n    };\n\n  Stream\u003cMockState\u003e _read() async* {\n    yield State.performing;\n    // ...\n    yield State.fetched;\n  }\n}\n```\n  \n## RouterBloc\u003cEvent, State\u003e  \n  \nBLoC with complex events, containing internal data.  \n  \nOverride [router] and create generators.  \n  \n#### Example usage:  \n```dart\nclass MyRouterBloc extends RouterBloc\u003cEvent, State\u003e {\n\n  MyRouterBloc() : super(InitialState());\n\n  @override\n  Map\u003cType, Function\u003e get router =\u003e\n    \u003cType, Function\u003e{\n      PerformEvent : _perform,\n    };\n\n  Stream\u003cState\u003e _perform(PerformEvent event) async* {\n    yield PerformingState();\n    // ...\n    yield PerformedState();\n  }\n}\n```\n  \n  \n## Coverage  \n  \n[![](https://codecov.io/gh/PlugFox/extended_bloc/branch/dev/graphs/sunburst.svg)](https://codecov.io/gh/PlugFox/extended_bloc/branch/master)  \n  \n  \n## Changelog  \n  \nRefer to the [Changelog](https://github.com/plugfox/extended_bloc/blob/master/CHANGELOG.md) to get all release notes.  \n  \n  \n## Features and bugs  \n  \nPlease file feature requests and bugs at the [issue tracker][tracker].\n  \n[tracker]: https://github.com/PlugFox/extended_bloc/issues\n  \n  \n## Maintainers  \n  \n[Plague Fox](https://plugfox.dev)  \n  \n  \n## License  \n  \n[WTFPL](https://github.com/plugfox/extended_bloc/blob/master/LICENSE)  \n  \n  ","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplugfox%2Fextended_bloc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplugfox%2Fextended_bloc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplugfox%2Fextended_bloc/lists"}