Преглед на файлове

update: 修改路由路径生成规则,注释修改,清除无用代码

hwh97 преди 4 години
родител
ревизия
aec60ef68e
променени са 3 файла, в които са добавени 10 реда и са изтрити 18 реда
  1. 0 2
      lib/generator/model_import_generator.dart
  2. 9 7
      lib/generator/router_generator.dart
  3. 1 9
      lib/generator/router_table_generator.dart

+ 0 - 2
lib/generator/model_import_generator.dart

@@ -5,8 +5,6 @@ import 'package:source_gen/source_gen.dart';
 
 /// find class path from argument
 class ModelImportGenerator extends Generator {
-  static List<String> modelImports = [];
-
   const ModelImportGenerator();
 
   @override

+ 9 - 7
lib/generator/router_generator.dart

@@ -7,7 +7,7 @@ import 'package:router_gen/util/utils.dart';
 import 'package:source_gen/source_gen.dart';
 import 'package:path/path.dart' as Path;
 
-/// save router annotation to router
+/// save router annotation
 class RouterGenerator extends GeneratorForAnnotation<RouterPage> {
   final _paramChecker = const TypeChecker.fromRuntime(RouterParam);
 
@@ -22,14 +22,16 @@ class RouterGenerator extends GeneratorForAnnotation<RouterPage> {
 
       // router name
       String className = element.name;
-      String aptName = annotation.peek("path")?.stringValue;
+      String aptPath = annotation.peek("path")?.stringValue;
       String routerName =
-          toCamelCase(aptName == null || aptName.isEmpty ? className : aptName);
+          toCamelCase(aptPath == null || aptPath.isEmpty ? className : aptPath);
 
       var page = Page();
       page.name = className;
-      page.path = Path.join(
-          path.replaceFirst("lib", "").replaceFirst(basename, ""), routerName);
+      page.path = routerName.startsWith("/")
+          ? routerName
+          : Path.join(path.replaceFirst("lib", "").replaceFirst(basename, ""),
+              routerName);
       page.arguments = [];
 
       for (FieldElement e in (element as ClassElement).fields) {
@@ -44,8 +46,8 @@ class RouterGenerator extends GeneratorForAnnotation<RouterPage> {
           ));
         }
       }
-      router.routerMap[routerName] = page;
+      router.routerMap[Path.basename(routerName)] = page;
     }
     return null;
   }
-}
+}

+ 1 - 9
lib/generator/router_table_generator.dart

@@ -5,13 +5,11 @@ import 'package:router_gen/model/router.dart';
 import 'package:source_gen/source_gen.dart';
 import 'package:path/path.dart' as Path;
 
+/// generate router table
 class RouterTableGenerator extends GeneratorForAnnotation<RouterTable> {
   @override
   generateForAnnotatedElement(
       Element element, ConstantReader annotation, BuildStep buildStep) {
-    // print("find table annotation ${buildStep.inputId.path}");
-    // print("RouterTable imports ${router.imports.toString()}");
-    // print("RouterTable map  ${router.routerMap.toString()}");
 
     String path = buildStep.inputId.path; // lib/xxx.dart
     String relatedFileName = Path.basename(path); // xxx.dart
@@ -26,12 +24,6 @@ class RouterTableGenerator extends GeneratorForAnnotation<RouterTable> {
     String pathFiled = _generateFields(routeNames, router.routerMap);
     String register = _generateRouterRegister(routeNames, router.routerMap);
 
-    // i2 school
-    // import 'package:fluro/fluro.dart';
-    // import 'package:school_parent/base_plugin/routes.dart';
-    // example
-    // import 'package:example/routes.dart';
-
     return """
 import '${relatedFileName}';
 import 'package:fluro/fluro.dart';