Skip to content

Commit

Permalink
fix: Modularization support for pages.
Browse files Browse the repository at this point in the history
  • Loading branch information
mathrunet committed Aug 25, 2023
1 parent 8d18961 commit 301fecf
Show file tree
Hide file tree
Showing 4 changed files with 122 additions and 3 deletions.
25 changes: 24 additions & 1 deletion packages/katana_cli/lib/command/code/page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ class CodePageCliCommand extends CliCodeCommand {
);
return;
}
final existsMain = File("lib/main.dart").existsSync();
label("Create a page class in `$directory/$path.dart`.");
final parentPath = path.parentPath();
if (parentPath.isNotEmpty) {
Expand All @@ -39,7 +40,29 @@ class CodePageCliCommand extends CliCodeCommand {
await parentDir.create(recursive: true);
}
}
await generateDartCode("$directory/$path", path);
await generateDartCode(
"$directory/$path",
path,
filter: (value) {
if (existsMain) {
return value;
} else {
return """$value
/// [RouteQueryBuilder], which is also available externally.
///
/// ```dart
/// @PagePath(
/// "test",
/// implementType: ${path.split("/").distinct().join("_").toPascalCase()}PageQuery,
/// )
/// class TestPage extends PageScopedWidget {
/// }
/// ```
typedef ${path.split("/").distinct().join("_").toPascalCase()}PageQuery = _\$${path.split("/").distinct().join("_").toPascalCase()}PageQuery;
""";
}
},
);
}

@override
Expand Down
61 changes: 60 additions & 1 deletion packages/katana_cli/lib/command/code/tmp/basic.dart
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,67 @@ class CodeTmpBasicCliCommand extends CliCodeCommand {
);
return;
}
final existsMain = File("lib/main.dart").existsSync();
label("Create a basic template in `$directory/$path.dart`.");
await generateDartCode("$directory/$path", path);
await generateDartCode(
"$directory/$path",
path,
filter: (value) {
if (existsMain) {
return value;
} else {
return """$value
/// [RouteQueryBuilder], which is also available externally.
///
/// ```dart
/// @PagePath(
/// "test",
/// implementType: ${path.split("/").distinct().join("_").toPascalCase()}PageQuery,
/// )
/// class TestPage extends PageScopedWidget {
/// }
/// ```
typedef ${path.split("/").distinct().join("_").toPascalCase()}PageQuery = _\$${path.split("/").distinct().join("_").toPascalCase()}PageQuery;
/// [RouteQueryBuilder], which is also available externally.
///
/// ```dart
/// @PagePath(
/// "test",
/// implementType: ${path.split("/").distinct().join("_").toPascalCase()}DetailPageQuery,
/// )
/// class TestPage extends PageScopedWidget {
/// }
/// ```
typedef ${path.split("/").distinct().join("_").toPascalCase()}DetailPageQuery = _\$${path.split("/").distinct().join("_").toPascalCase()}DetailPageQuery;
/// [RouteQueryBuilder], which is also available externally.
///
/// ```dart
/// @PagePath(
/// "test",
/// implementType: ${path.split("/").distinct().join("_").toPascalCase()}AddPageQuery,
/// )
/// class TestPage extends PageScopedWidget {
/// }
/// ```
typedef ${path.split("/").distinct().join("_").toPascalCase()}AddPageQuery = _\$${path.split("/").distinct().join("_").toPascalCase()}AddPageQuery;
/// [RouteQueryBuilder], which is also available externally.
///
/// ```dart
/// @PagePath(
/// "test",
/// implementType: ${path.split("/").distinct().join("_").toPascalCase()}EditPageQuery,
/// )
/// class TestPage extends PageScopedWidget {
/// }
/// ```
typedef ${path.split("/").distinct().join("_").toPascalCase()}EditPageQuery = _\$${path.split("/").distinct().join("_").toPascalCase()}EditPageQuery;
""";
}
},
);
}

@override
Expand Down
37 changes: 36 additions & 1 deletion packages/katana_cli/lib/command/code/tmp/form.dart
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,43 @@ class CodeTmpFormCliCommand extends CliCodeCommand {
);
return;
}
final existsMain = File("lib/main.dart").existsSync();
label("Create a form template in `$directory/$path.dart`.");
await generateDartCode("$directory/$path", path);
await generateDartCode(
"$directory/$path",
path,
filter: (value) {
if (existsMain) {
return value;
} else {
return """$value
/// [RouteQueryBuilder], which is also available externally.
///
/// ```dart
/// @PagePath(
/// "test",
/// implementType: ${path.split("/").distinct().join("_").toPascalCase()}AddPageQuery,
/// )
/// class TestPage extends PageScopedWidget {
/// }
/// ```
typedef ${path.split("/").distinct().join("_").toPascalCase()}AddPageQuery = _\$${path.split("/").distinct().join("_").toPascalCase()}AddPageQuery;
/// [RouteQueryBuilder], which is also available externally.
///
/// ```dart
/// @PagePath(
/// "test",
/// implementType: ${path.split("/").distinct().join("_").toPascalCase()}EditPageQuery,
/// )
/// class TestPage extends PageScopedWidget {
/// }
/// ```
typedef ${path.split("/").distinct().join("_").toPascalCase()}EditPageQuery = _\$${path.split("/").distinct().join("_").toPascalCase()}EditPageQuery;
""";
}
},
);
}

@override
Expand Down
2 changes: 2 additions & 0 deletions packages/katana_cli/lib/command/code/tmp/tmp.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
library katana_cli.code.tmp;

// Project imports:
import 'dart:io';

import 'package:katana_cli/katana_cli.dart';

part 'form.dart';
Expand Down

0 comments on commit 301fecf

Please sign in to comment.