zenrouter_file_annotation 3.0.0
zenrouter_file_annotation: ^3.0.0 copied to clipboard
Shared annotations and structure for ZenRouter file-based routing in Flutter and DartNative.
3.0.0 #
Stable annotations and shared route structure for ZenRouter 3 file-based routing.
Added #
LayoutType.branchedandZenLayout.branchesdescribe stateful shells with fixed direct child layout roots and independent logical navigation histories.- Shared route/layout models and code-generation utilities support the
zenrouter_file_generator3.0.0 Flutter and DartNative targets.
Changed #
- Layout patterns normalize dynamic and catch-all parameter segments, keeping the parent layout pattern consistent with its generated child routes.
- Generated dynamic and catch-all route URIs use absolute
Uri(pathSegments: ...)construction and encode each path segment separately.
Fixed #
- Reserved characters in route parameters round-trip without being interpreted as path separators or changing the URI structure.
Requirements #
- Dart 3.7 or newer. This package has no Flutter runtime dependency.
- Use
zenrouter_file_generator: ^3.0.0for the matching generated APIs.
3.0.0-beta.1 #
Prerelease for early testers. APIs may still change before 3.0.0.
- Add
LayoutType.branchedandZenLayout.branchesfor stateful shells whose direct child layouts retain independent navigation stacks. - Generate absolute route URIs with
Uri(pathSegments: ...)so dynamic and catch-all parameters round-trip reserved characters without changing URL structure. - Normalize dynamic and catch-all parameters in generated layout patterns.
1.0.1 #
- Fix: Publish
PathParser.parseDirPartsused byzenrouter_file_generator1.1.x to prevent build script compilation failures.
1.0.0 #
- Stable release: Production-ready annotation package
- Compatible with
zenrouter: ^1.0.0andzenrouter_file_generator: ^1.0.0
0.4.10 #
New Features #
- deferredImport in
@ZenCoordinator: New optionaldeferredImportfield to configure global deferred import behavior via annotation- Overrides the
deferredImportoption inbuild.yamlwhen specified - Example:
@ZenCoordinator(name: 'AppCoordinator', deferredImport: true)
- Overrides the
- routeBasePath in
@ZenCoordinator: New optionalrouteBasePathfield to import a custom base route class- When set, the generator imports the base class from the specified path instead of generating it
- Example:
@ZenCoordinator(routeBase: 'MyAppRoute', routeBasePath: 'package:my_app/routes/base.dart')
0.4.9 #
- Refactor: Extract shared code generation utilities (
LayoutCodeGenerator,RouteCodeGenerator) for use by bothbuild_runner
0.4.7 #
- Docs: Update README
0.4.6 #
- Docs: Update README and add screenshots
0.4.5 #
- Support new
RouteQueryParametersand new dot notation flavor in naming convention.
0.4.0 #
- Update README.md
0.3.1 #
- Add support for lazy loading routes using the
deferredImportoption in the@ZenCoordinatorannotation.
0.3.0 #
- Add support for catch-all parameters ([...slugs], [...ids], etc) in routes, including
List<String>type handling and updated route specificity sorting.
0.2.1 #
- Initial extraction of annotations and structure from
zenrouter_file_generator.