diff --git a/example/assets/preview_config.json b/example/assets/preview_config.json index 6894852..2d995cd 100644 --- a/example/assets/preview_config.json +++ b/example/assets/preview_config.json @@ -7,8 +7,8 @@ "id": "widgets", "route": "widgets", "builtComponents": { - "./example/lib/catalog/widgets/main_screen.dart": { - "path": "./example/lib/catalog/widgets/main_screen.dart", + "./lib/catalog/widgets/main_screen.dart": { + "path": "./lib/catalog/widgets/main_screen.dart", "route": "widgets", "package": "package:example/catalog/widgets/main_screen.dart", "clazzName": "MainScreenPreviewPreviewPageDummy", @@ -35,8 +35,8 @@ "id": "bottom", "route": "widgets/utils/bottom", "builtComponents": { - "./example/lib/catalog/widgets/utils/bottom/fab_widget.dart": { - "path": "./example/lib/catalog/widgets/utils/bottom/fab_widget.dart", + "./lib/catalog/widgets/utils/bottom/fab_widget.dart": { + "path": "./lib/catalog/widgets/utils/bottom/fab_widget.dart", "route": "widgets/utils/bottom", "package": "package:example/catalog/widgets/utils/bottom/fab_widget.dart", "clazzName": "FabWidgetPreviewPreviewPageDummy", @@ -58,8 +58,8 @@ "id": "screen", "route": "widgets/screen", "builtComponents": { - "./example/lib/catalog/widgets/screen/body_widget.dart": { - "path": "./example/lib/catalog/widgets/screen/body_widget.dart", + "./lib/catalog/widgets/screen/body_widget.dart": { + "path": "./lib/catalog/widgets/screen/body_widget.dart", "route": "widgets/screen", "package": "package:example/catalog/widgets/screen/body_widget.dart", "clazzName": "BodyWidgetPreviewPreviewPageDummy", @@ -73,8 +73,8 @@ ] } }, - "./example/lib/catalog/widgets/screen/counter_widget.dart": { - "path": "./example/lib/catalog/widgets/screen/counter_widget.dart", + "./lib/catalog/widgets/screen/counter_widget.dart": { + "path": "./lib/catalog/widgets/screen/counter_widget.dart", "route": "widgets/screen", "package": "package:example/catalog/widgets/screen/counter_widget.dart", "clazzName": "CounterWidgetPreviewPreviewPageDummy", diff --git a/example/lib/catalog/catalog_component.dart b/example/lib/catalog/catalog_component.dart index bbed7f9..cd1871d 100644 --- a/example/lib/catalog/catalog_component.dart +++ b/example/lib/catalog/catalog_component.dart @@ -3,126 +3,90 @@ import 'package:flutter/material.dart'; import 'package:catalog/catalog.dart'; - import 'package:example/catalog/widgets/utils/bottom/fab_widget.dart'; - - - - - - -import 'package:example/catalog/widgets/screen/body_widget.dart';import 'package:example/catalog/widgets/screen/counter_widget.dart'; - - +import 'package:example/catalog/widgets/screen/body_widget.dart'; +import 'package:example/catalog/widgets/screen/counter_widget.dart'; import 'package:example/catalog/widgets/main_screen.dart'; - - - - - - class CatalogComponent extends StatefulWidget { static String routeName = '/catalog'; - - static GoRoute route = GoRoute( - path: CatalogComponent.routeName, - pageBuilder: (context, state) => NoTransitionPage( - key: state.pageKey, - child: const CatalogComponent(), - ), - routes: [ - GoRoute( - path: 'widgets', - redirect: (context, state) { - if (state.fullPath != state.matchedLocation) return null; - return CatalogComponent.routeName; - }, - routes: [ - - GoRoute( - path: MainScreenPreviewPreviewPageDummy.routeName, - pageBuilder: (context, state) => NoTransitionPage( - key: state.pageKey, - child: const MainScreenPreviewPreviewPageDummy(), - ), - ) - - - , - GoRoute( - path: 'utils', - redirect: (context, state) { - if (state.fullPath != state.matchedLocation) return null; - return CatalogComponent.routeName; - }, - routes: [ - - - GoRoute( - path: 'bottom', - redirect: (context, state) { - if (state.fullPath != state.matchedLocation) return null; - return CatalogComponent.routeName; - }, - routes: [ - - GoRoute( - path: FabWidgetPreviewPreviewPageDummy.routeName, - pageBuilder: (context, state) => NoTransitionPage( - key: state.pageKey, - child: const FabWidgetPreviewPreviewPageDummy(), - ), - ) - - - , - - ], - ) - - ], - ) - , GoRoute( - path: 'screen', - redirect: (context, state) { - if (state.fullPath != state.matchedLocation) return null; - return CatalogComponent.routeName; - }, - routes: [ - - GoRoute( - path: BodyWidgetPreviewPreviewPageDummy.routeName, - pageBuilder: (context, state) => NoTransitionPage( - key: state.pageKey, - child: const BodyWidgetPreviewPreviewPageDummy(), + + static GoRoute route = GoRoute( + path: CatalogComponent.routeName, + pageBuilder: (context, state) => NoTransitionPage( + key: state.pageKey, + child: const CatalogComponent(), + ), + routes: [ + GoRoute( + path: 'widgets', + redirect: (context, state) { + if (state.fullPath != state.matchedLocation) return null; + return CatalogComponent.routeName; + }, + routes: [ + GoRoute( + path: MainScreenPreviewPreviewPageDummy.routeName, + pageBuilder: (context, state) => NoTransitionPage( + key: state.pageKey, + child: const MainScreenPreviewPreviewPageDummy(), + ), ), - ) - - , - GoRoute( - path: CounterWidgetPreviewPreviewPageDummy.routeName, - pageBuilder: (context, state) => NoTransitionPage( - key: state.pageKey, - child: const CounterWidgetPreviewPreviewPageDummy(), + GoRoute( + path: 'utils', + redirect: (context, state) { + if (state.fullPath != state.matchedLocation) return null; + return CatalogComponent.routeName; + }, + routes: [ + GoRoute( + path: 'bottom', + redirect: (context, state) { + if (state.fullPath != state.matchedLocation) return null; + return CatalogComponent.routeName; + }, + routes: [ + GoRoute( + path: FabWidgetPreviewPreviewPageDummy.routeName, + pageBuilder: (context, state) => NoTransitionPage( + key: state.pageKey, + child: const FabWidgetPreviewPreviewPageDummy(), + ), + ), + ], + ) + ], ), - ) - - - , - - ], - ) - - ], - ) - - ], + GoRoute( + path: 'screen', + redirect: (context, state) { + if (state.fullPath != state.matchedLocation) return null; + return CatalogComponent.routeName; + }, + routes: [ + GoRoute( + path: BodyWidgetPreviewPreviewPageDummy.routeName, + pageBuilder: (context, state) => NoTransitionPage( + key: state.pageKey, + child: const BodyWidgetPreviewPreviewPageDummy(), + ), + ), + GoRoute( + path: CounterWidgetPreviewPreviewPageDummy.routeName, + pageBuilder: (context, state) => NoTransitionPage( + key: state.pageKey, + child: const CounterWidgetPreviewPreviewPageDummy(), + ), + ), + ], + ) + ], ) -; - + ], + ); + const CatalogComponent({super.key}); @override @@ -130,7 +94,6 @@ class CatalogComponent extends StatefulWidget { } class CatalogComponentState extends State { - @override Widget build(BuildContext context) { return FutureBuilder( @@ -159,5 +122,3 @@ class CatalogComponentState extends State { ); } } - - \ No newline at end of file diff --git a/example/lib/catalog/widgets/main_screen.dart b/example/lib/catalog/widgets/main_screen.dart index 8478f34..2435fa2 100644 --- a/example/lib/catalog/widgets/main_screen.dart +++ b/example/lib/catalog/widgets/main_screen.dart @@ -4,19 +4,19 @@ import 'package:flutter/material.dart'; import 'package:example/widgets/catalog/preview/main_screen.preview.dart'; class MainScreenPreviewPreviewPageDummy extends StatefulWidget { - static String routeName = 'main_screen'; - + const MainScreenPreviewPreviewPageDummy({super.key}); @override - MainScreenPreviewPreviewPageDummyState createState() => MainScreenPreviewPreviewPageDummyState(); + MainScreenPreviewPreviewPageDummyState createState() => + MainScreenPreviewPreviewPageDummyState(); } -class MainScreenPreviewPreviewPageDummyState extends State { +class MainScreenPreviewPreviewPageDummyState + extends State { @override Widget build(BuildContext context) { return const MainScreenPreview(); } } - \ No newline at end of file diff --git a/example/lib/catalog/widgets/screen/body_widget.dart b/example/lib/catalog/widgets/screen/body_widget.dart index 54eb25b..57f4c75 100644 --- a/example/lib/catalog/widgets/screen/body_widget.dart +++ b/example/lib/catalog/widgets/screen/body_widget.dart @@ -4,19 +4,19 @@ import 'package:flutter/material.dart'; import 'package:example/widgets/screen/catalog/preview/body_widget.preview.dart'; class BodyWidgetPreviewPreviewPageDummy extends StatefulWidget { - static String routeName = 'body_widget'; - + const BodyWidgetPreviewPreviewPageDummy({super.key}); @override - BodyWidgetPreviewPreviewPageDummyState createState() => BodyWidgetPreviewPreviewPageDummyState(); + BodyWidgetPreviewPreviewPageDummyState createState() => + BodyWidgetPreviewPreviewPageDummyState(); } -class BodyWidgetPreviewPreviewPageDummyState extends State { +class BodyWidgetPreviewPreviewPageDummyState + extends State { @override Widget build(BuildContext context) { return const BodyWidgetPreview(); } } - \ No newline at end of file diff --git a/example/lib/catalog/widgets/screen/counter_widget.dart b/example/lib/catalog/widgets/screen/counter_widget.dart index 0d5e240..dc4cda2 100644 --- a/example/lib/catalog/widgets/screen/counter_widget.dart +++ b/example/lib/catalog/widgets/screen/counter_widget.dart @@ -4,19 +4,19 @@ import 'package:flutter/material.dart'; import 'package:example/widgets/screen/catalog/preview/counter_widget.preview.dart'; class CounterWidgetPreviewPreviewPageDummy extends StatefulWidget { - static String routeName = 'counter_widget'; - + const CounterWidgetPreviewPreviewPageDummy({super.key}); @override - CounterWidgetPreviewPreviewPageDummyState createState() => CounterWidgetPreviewPreviewPageDummyState(); + CounterWidgetPreviewPreviewPageDummyState createState() => + CounterWidgetPreviewPreviewPageDummyState(); } -class CounterWidgetPreviewPreviewPageDummyState extends State { +class CounterWidgetPreviewPreviewPageDummyState + extends State { @override Widget build(BuildContext context) { return const CounterWidgetPreview(); } } - \ No newline at end of file diff --git a/example/lib/catalog/widgets/utils/bottom/fab_widget.dart b/example/lib/catalog/widgets/utils/bottom/fab_widget.dart index 0fc351c..5b10f36 100644 --- a/example/lib/catalog/widgets/utils/bottom/fab_widget.dart +++ b/example/lib/catalog/widgets/utils/bottom/fab_widget.dart @@ -4,19 +4,19 @@ import 'package:flutter/material.dart'; import 'package:example/widgets/utils/bottom/catalog/preview/fab_widget.preview.dart'; class FabWidgetPreviewPreviewPageDummy extends StatefulWidget { - static String routeName = 'fab_widget'; - + const FabWidgetPreviewPreviewPageDummy({super.key}); @override - FabWidgetPreviewPreviewPageDummyState createState() => FabWidgetPreviewPreviewPageDummyState(); + FabWidgetPreviewPreviewPageDummyState createState() => + FabWidgetPreviewPreviewPageDummyState(); } -class FabWidgetPreviewPreviewPageDummyState extends State { +class FabWidgetPreviewPreviewPageDummyState + extends State { @override Widget build(BuildContext context) { return const FabWidgetPreview(); } } - \ No newline at end of file diff --git a/example/lib/widgets/catalog/preview/main_screen.preview.dart b/example/lib/widgets/catalog/preview/main_screen.preview.dart index f10f0ac..16f0169 100644 --- a/example/lib/widgets/catalog/preview/main_screen.preview.dart +++ b/example/lib/widgets/catalog/preview/main_screen.preview.dart @@ -11,17 +11,17 @@ import '../dummy/main_screen.dummy.dart'; 'infoText', 'counter', 'incrementCounter', - ],) + ], +) class MainScreenPreview extends ParentPreviewWidget { - @override String get title => 'main_screen'; - + @override String get basePath => '/catalog'; - + const MainScreenPreview({super.key}); - + @override Widget preview(BuildContext context) { Catalog().widgetBasicPreviewMap.clear(); @@ -106,20 +106,21 @@ class MainScreenPreview extends ParentPreviewWidget { ), ), for (int i = 0; i < MainScreenDummy().dummies.length; i++) - PreviewBoundary( - widgetKey: GlobalKey(), - dummyBuilder: () => MainScreenDummy().dummies[i], - builder: (BuildContext context, Dummy dummy) { - return MainScreen(title: dummy.parameters['title'],infoText: dummy.parameters['infoText'],counter: dummy.parameters['counter'],incrementCounter: dummy.parameters['incrementCounter'],); - }, - ), - + PreviewBoundary( + widgetKey: GlobalKey(), + dummyBuilder: () => MainScreenDummy().dummies[i], + builder: (BuildContext context, Dummy dummy) { + return MainScreen( + title: dummy.parameters['title'], + infoText: dummy.parameters['infoText'], + counter: dummy.parameters['counter'], + incrementCounter: dummy.parameters['incrementCounter'], + ); + }, + ), ], ) ], ); } - - } - \ No newline at end of file diff --git a/example/lib/widgets/screen/catalog/preview/body_widget.preview.dart b/example/lib/widgets/screen/catalog/preview/body_widget.preview.dart index 76d3689..47dc8ff 100644 --- a/example/lib/widgets/screen/catalog/preview/body_widget.preview.dart +++ b/example/lib/widgets/screen/catalog/preview/body_widget.preview.dart @@ -9,17 +9,17 @@ import '../dummy/body_widget.dummy.dart'; parameters: [ 'infoText', 'counter', - ],) + ], +) class BodyWidgetPreview extends ParentPreviewWidget { - @override String get title => 'body_widget'; - + @override String get basePath => '/catalog'; - + const BodyWidgetPreview({super.key}); - + @override Widget preview(BuildContext context) { Catalog().widgetBasicPreviewMap.clear(); @@ -104,20 +104,19 @@ class BodyWidgetPreview extends ParentPreviewWidget { ), ), for (int i = 0; i < BodyWidgetDummy().dummies.length; i++) - PreviewBoundary( - widgetKey: GlobalKey(), - dummyBuilder: () => BodyWidgetDummy().dummies[i], - builder: (BuildContext context, Dummy dummy) { - return BodyWidget(infoText: dummy.parameters['infoText'],counter: dummy.parameters['counter'],); - }, - ), - + PreviewBoundary( + widgetKey: GlobalKey(), + dummyBuilder: () => BodyWidgetDummy().dummies[i], + builder: (BuildContext context, Dummy dummy) { + return BodyWidget( + infoText: dummy.parameters['infoText'], + counter: dummy.parameters['counter'], + ); + }, + ), ], ) ], ); } - - } - \ No newline at end of file diff --git a/example/lib/widgets/screen/catalog/preview/counter_widget.preview.dart b/example/lib/widgets/screen/catalog/preview/counter_widget.preview.dart index ef8888b..74eb890 100644 --- a/example/lib/widgets/screen/catalog/preview/counter_widget.preview.dart +++ b/example/lib/widgets/screen/catalog/preview/counter_widget.preview.dart @@ -9,17 +9,17 @@ import '../dummy/counter_widget.dummy.dart'; description: 'Basic counter widget', parameters: [ 'counter', - ],) + ], +) class CounterWidgetPreview extends ParentPreviewWidget { - @override String get title => 'counter_widget'; - + @override String get basePath => '/catalog'; - + const CounterWidgetPreview({super.key}); - + @override Widget preview(BuildContext context) { Catalog().widgetBasicPreviewMap.clear(); @@ -104,20 +104,18 @@ class CounterWidgetPreview extends ParentPreviewWidget { ), ), for (int i = 0; i < CounterWidgetDummy().dummies.length; i++) - PreviewBoundary( - widgetKey: GlobalKey(), - dummyBuilder: () => CounterWidgetDummy().dummies[i], - builder: (BuildContext context, Dummy dummy) { - return CounterWidget(counter: dummy.parameters['counter'],); - }, - ), - + PreviewBoundary( + widgetKey: GlobalKey(), + dummyBuilder: () => CounterWidgetDummy().dummies[i], + builder: (BuildContext context, Dummy dummy) { + return CounterWidget( + counter: dummy.parameters['counter'], + ); + }, + ), ], ) ], ); } - - } - \ No newline at end of file diff --git a/example/lib/widgets/utils/bottom/catalog/preview/fab_widget.preview.dart b/example/lib/widgets/utils/bottom/catalog/preview/fab_widget.preview.dart index d18edaa..1ecbb83 100644 --- a/example/lib/widgets/utils/bottom/catalog/preview/fab_widget.preview.dart +++ b/example/lib/widgets/utils/bottom/catalog/preview/fab_widget.preview.dart @@ -7,17 +7,17 @@ import '../dummy/fab_widget.dummy.dart'; @Preview( description: 'Basic fab widget', - parameters: ['incrementCounter'],) + parameters: ['incrementCounter'], +) class FabWidgetPreview extends ParentPreviewWidget { - @override String get title => 'fab_widget'; - + @override String get basePath => '/catalog'; - + const FabWidgetPreview({super.key}); - + @override Widget preview(BuildContext context) { Catalog().widgetBasicPreviewMap.clear(); @@ -102,20 +102,18 @@ class FabWidgetPreview extends ParentPreviewWidget { ), ), for (int i = 0; i < FabWidgetDummy().dummies.length; i++) - PreviewBoundary( - widgetKey: GlobalKey(), - dummyBuilder: () => FabWidgetDummy().dummies[i], - builder: (BuildContext context, Dummy dummy) { - return FabWidget(incrementCounter: dummy.parameters['incrementCounter'],); - }, - ), - + PreviewBoundary( + widgetKey: GlobalKey(), + dummyBuilder: () => FabWidgetDummy().dummies[i], + builder: (BuildContext context, Dummy dummy) { + return FabWidget( + incrementCounter: dummy.parameters['incrementCounter'], + ); + }, + ), ], ) ], ); } - - } - \ No newline at end of file diff --git a/lib/src/annotations/preview.dart b/lib/src/annotations/preview.dart index 3f2c657..b85c5ef 100644 --- a/lib/src/annotations/preview.dart +++ b/lib/src/annotations/preview.dart @@ -3,22 +3,16 @@ import 'dart:convert'; import 'package:catalog/src/base/serial.dart'; class Preview implements Serial { - final String id; - final String path; final String description; final List parameters; const Preview({ - this.id = '', - this.path = '', this.description = '', this.parameters = const [], }); @override Preview fromJson(Map json) => Preview( - id: json['id'] ?? '', - path: json['path'] ?? '', description: json['description'] ?? '', parameters: Serial.listObjectFromBasicType( json['parameters'] ?? [], @@ -26,15 +20,13 @@ class Preview implements Serial { ); @override - String getId() => id; + String getId() => ''; @override - Preview instance() => const Preview(id: '', path: ''); + Preview instance() => const Preview(); @override Map toJson() => { - 'id': id, - 'path': path, 'description': description, 'parameters': parameters, }; @@ -52,14 +44,10 @@ class Preview implements Serial { } Preview copyWith({ - String? id, - String? path, String? description, List? parameters, }) => Preview( - id: id ?? this.id, - path: path ?? this.path, description: description ?? this.description, parameters: parameters ?? this.parameters, ); diff --git a/lib/src/base/serial.dart b/lib/src/base/serial.dart index 25b6f35..d6ed282 100644 --- a/lib/src/base/serial.dart +++ b/lib/src/base/serial.dart @@ -79,7 +79,7 @@ abstract class Serial { static List instances = [ ComponentNode(), BuiltComponent(), - const Preview(id: '', path: ''), + const Preview(), const InternalPreview(id: '', path: ''), ]; diff --git a/lib/src/bin/catalog_builder/catalog_builder.dart b/lib/src/bin/catalog_builder/catalog_builder.dart index 4cb73d7..53e8891 100644 --- a/lib/src/bin/catalog_builder/catalog_builder.dart +++ b/lib/src/bin/catalog_builder/catalog_builder.dart @@ -3,7 +3,6 @@ import 'dart:io'; import 'package:catalog/src/annotations/internal_preview.dart'; import 'package:catalog/src/builders/catalog/built_component.dart'; import 'package:catalog/src/builders/catalog/component_node.dart'; -import 'package:catalog/src/extensions/string_ext.dart'; Future findPreviewClassName(String path) async { try { @@ -66,8 +65,6 @@ class ${pageClass}State extends State<$pageClass> { var p = file.path.split(base)[1]; var package = 'package:$appId$p'; - print('route added: ${preview.path}'); - return BuiltComponent( path: file.path, route: preview.path, @@ -81,189 +78,12 @@ class ${pageClass}State extends State<$pageClass> { } } -Future buildMiddlePages( - String appId, - String base, - String outputPath, - String outputFile, - String import, - String name, - String path, - String pageRoute, - List children, -) async { - try { - var directory = Directory(outputPath); - await directory.create(recursive: true); - File file = File('$outputPath/$outputFile'); - - final clazz = - name.replaceAll('()', '').split('_').map((e) => e.capitalize()).join(); - final clazzName = '${clazz}PreviewPageDummy'; - - var content = ''' -/// AUTOGENERATED FILE. DO NOT EDIT - -import 'package:catalog/catalog.dart'; -import 'package:flutter/material.dart'; - -class $clazzName extends StatefulWidget { - - static String routeName = '${name.toLowerCase()}'; - - const $clazzName({super.key}); - - @override - ${clazzName}State createState() => ${clazzName}State(); -} - -class ${clazzName}State extends State<$clazzName> { - @override - Widget build(BuildContext context) { - return PreviewScaffold( - child: ListView( - children: [ - '''; - - for (ComponentNode node in children) { - content += ''' - ListTile( - title: const Text( - '${node.id}', - style: TextStyle( - color: Colors.black, - fontSize: 16, - letterSpacing: .3, - ), - ), - onTap: () { - context.go('/$pageRoute/$path/${node.id}'); - }, - ), - '''; - } - - content += ''' - ], - ), - ); - } -} - - '''; - file.writeAsStringSync(content); - - var p = file.path.split(base)[1]; - var package = 'package:$appId$p'; - - return BuiltComponent( - path: file.path, - route: path, - package: package, - clazzName: clazzName, - preview: null, - ); - } catch (e) { - return null; - } -} - -/* -Future buildChildrenPages( - String basePath, - dynamic config, - String appId, - ComponentNode node, - String path, - String pageRoute, - int level, -) async { - try { - ComponentNode n = node; - String p = path; - if (level == 0) { - n.builtComponent = BuiltComponent(); - n.builtComponent!.path = - './${config['base']}/${config['output']}/${config['pageFile']}'; - n.builtComponent!.route = ''; - n.builtComponent!.clazzName = 'CatalogComponent'; - - final File file = File(basePath + n.builtComponent!.path); - var fp = file.path.split(config['base'])[1]; - n.builtComponent!.package = 'package:$appId$fp'; - - for (var entry in n.children.entries) { - var f = await buildChildrenPages( - basePath, - config, - appId, - entry.value, - p, - pageRoute, - level + 1, - ); - if (f == null) continue; - n.children[entry.key] = f; - } - return n; - } - - if (n.builtComponent != null) { - return n; - } - - var current = n.id; - - if (p.isEmpty) { - p += current; - } else { - p += '/$current'; - } - - // print('Generating middle page: $current'); - var middleFolder = './$basePath${config['base']}/${config['output']}/$p'; - n.builtComponent = await buildMiddlePages( - appId, - config['base'], - middleFolder, - '${current.toLowerCase()}_preview_page_dummy.dart', - '', - current.capitalize(), - p, - pageRoute, - n.childrenList, - ); - - n.builtComponent!.route = p; - - for (var entry in n.children.entries) { - print('build children page: ${entry.key}'); - var f = await buildChildrenPages( - basePath, - config, - appId, - entry.value, - p, - pageRoute, - level + 1, - ); - if (f == null) continue; - n.children[entry.key] = f; - } - return n; - } catch (e) { - return null; - } -} -*/ ComponentNode buildTreeFromMap( String pageRoute, Map> componentsMap, ) { - // Nodo raíz del árbol ComponentNode root = ComponentNode(id: pageRoute, route: '/'); - // Función auxiliar para crear o encontrar un nodo dentro del árbol ComponentNode findOrCreateNode( ComponentNode current, List pathParts, @@ -273,7 +93,6 @@ ComponentNode buildTreeFromMap( return current; } - // Obtener el primer segmento del path y crear el nodo hijo si no existe String part = pathParts.removeAt(0); if (!current.children.containsKey(part)) { current.children[part] = ComponentNode( @@ -282,20 +101,15 @@ ComponentNode buildTreeFromMap( ); } - // Recursivamente buscar o crear el siguiente nodo hijo return findOrCreateNode(current.children[part]!, pathParts, fullPath); } - // Recorrer cada entrada del mapa y asignarla a su nodo correspondiente componentsMap.forEach((path, builtComponents) { - // Dividir el path en sus partes, excluyendo la raíz '/' List pathParts = path.split('/').where((part) => part.isNotEmpty).toList(); - // Encontrar o crear el nodo adecuado para este path ComponentNode currentNode = findOrCreateNode(root, pathParts, path); - // Agregar los componentes del directorio actual al nodo correspondiente for (var component in builtComponents) { currentNode.builtComponents[component.path] = component; } @@ -303,69 +117,3 @@ ComponentNode buildTreeFromMap( return root; } - -/* -ComponentNode getNodesFrom( - String pageRoute, - Map> components, -) { - var firstNode = ComponentNode(id: pageRoute, route: '/'); - - final pathLevels = components.entries.toList(); - - for (var entity in pathLevels) { - final pathLevel = entity.key; - final pagesInThatLevel = entity.value.toList(); - - for (var page in pagesInThatLevel) { - print('======================================================='); - print('route: ${page.route}'); - var parts = page.route.split('/'); - if (parts.first == '.') { - parts.removeAt(0); - } - addNode(firstNode, parts, 0, page); - } - } - - return firstNode; -} - -void addNode( - ComponentNode node, - List parts, - int index, - BuiltComponent component, -) { - if (index >= parts.length) { - return; - } - ComponentNode? no; - for (var n in node.children.values.toList()) { - if (n.id == parts[index]) { - no = n; - break; - } - } - - if (no == null) { - print('parts: ${parts.join(', ')}'); - no = ComponentNode( - id: parts[index], - route: '/${parts[index]}', - builtComponent: parts.length - 1 == index ? component : null, - ); - print('adding: ${no.id}'); - print(' ${no.builtComponent?.preview?.path}'); - node.children[no.id] = no; - } - - if (no.route == '/${component.route}') { - final a = '/${component.package.split('/').last}'; - node.children[no.id]?.builtComponents[a] = component; - } else if (index < parts.length) { - addNode(no, parts, index + 1, component); - } -} - - */ diff --git a/lib/src/bin/tasks/tasks/catalog_task.dart b/lib/src/bin/tasks/tasks/catalog_task.dart index b5e8811..772d709 100644 --- a/lib/src/bin/tasks/tasks/catalog_task.dart +++ b/lib/src/bin/tasks/tasks/catalog_task.dart @@ -1,4 +1,3 @@ -import 'dart:convert'; import 'dart:io'; import 'package:catalog/src/base/serial.dart'; @@ -28,8 +27,11 @@ class CatalogTask extends BaseTask { final dirOutPut = Directory('./$base${config['base']}/${config['output']}'); await dirOutPut.create(recursive: true); - final List entities = - await dir.list(recursive: true).toList(); + final List entities = await dir + .list( + recursive: true, + ) + .toList(); final files = []; @@ -66,8 +68,6 @@ class CatalogTask extends BaseTask { var outputFolder = './$base${config['base']}/${config['output']}/${preview.path}/'; - print('Catalog page destination: $outputFolder'); - var build = await createPage( appId, config['base'], @@ -84,9 +84,6 @@ class CatalogTask extends BaseTask { continue; } - print('Built: ${jsonEncode(build.toJson())}'); - - print('${build.route} with classname $className'); if (map[build.route] == null) { map[build.route] = []; } @@ -98,8 +95,9 @@ class CatalogTask extends BaseTask { final File assetsConfig = File('./$base${config['runtimeConfigHolder']}'); assetsConfig.writeAsStringSync(node.toJson().toPrettyString()); - final File catalogFile = - File('./$base${config['base']}/${config['output']}/$page'); + final File catalogFile = File( + './$base${config['base']}/${config['output']}/$page', + ); // print(node.routerBuilder); diff --git a/lib/src/bin/tasks/tasks/preview_task.dart b/lib/src/bin/tasks/tasks/preview_task.dart index 76aad6a..f4728e8 100644 --- a/lib/src/bin/tasks/tasks/preview_task.dart +++ b/lib/src/bin/tasks/tasks/preview_task.dart @@ -45,7 +45,6 @@ class PreviewTask extends BaseTask { final File file = File(fileSystemEntity.path); var p = file.path.split(config['base'])[1]; var classImport = 'package:$appId$p'; - print('preview on file: ${file.path}'); var preview = await previewOnFile(base, config, file.path); var previewAnnotation = await findPreviewAnnotation(file.path); if (previewAnnotation == null) continue; diff --git a/lib/src/bin/utils/configuration.dart b/lib/src/bin/utils/configuration.dart index cc3be26..6e7cb04 100644 --- a/lib/src/bin/utils/configuration.dart +++ b/lib/src/bin/utils/configuration.dart @@ -83,14 +83,11 @@ Future previewOnFile( var output = './$basePath${config['base']}/${config['output']}/'; var fileName = 'process.dart'; - print('\n==========================================================\n'); - print('Original file: $originalFilePath'); - File originalFile = File(originalFilePath); var originalContent = originalFile.readAsStringSync(); var original = - 'Preview${originalContent.split('@Preview')[1].split(')').first});'; + 'InternalPreview${originalContent.split('@Preview')[1].split(')').first});'; var dir = Directory(output); await dir.create(recursive: true); @@ -100,13 +97,13 @@ import 'dart:convert'; import 'package:catalog/src/base/serial.dart'; -class Preview implements Serial { +class InternalPreview implements Serial { final String id; final String path; final String description; final List parameters; - const Preview({ + const InternalPreview({ this.id = '', this.path = '', this.description = '', @@ -114,7 +111,7 @@ class Preview implements Serial { }); @override - Preview fromJson(Map json) => Preview( + InternalPreview fromJson(Map json) => InternalPreview( id: json['id'] ?? '', path: json['path'] ?? '', description: json['description'] ?? '', @@ -127,7 +124,7 @@ class Preview implements Serial { String getId() => id; @override - Preview instance() => const Preview(id: '', path: ''); + InternalPreview instance() => const InternalPreview(id: '', path: ''); @override Map toJson() => { @@ -138,7 +135,7 @@ class Preview implements Serial { }; @override - Preview fromString(String value) { + InternalPreview fromString(String value) { Map map = jsonDecode(value); return fromJson(map); } @@ -149,13 +146,13 @@ class Preview implements Serial { return jsonEncode(map); } - Preview copyWith({ + InternalPreview copyWith({ String? id, String? path, String? description, List? parameters, }) => - Preview( + InternalPreview( id: id ?? this.id, path: path ?? this.path, description: description ?? this.description, @@ -172,7 +169,7 @@ void main(List arguments) async { var path = file.absolute.path; var result = await Process.run('dart', ['run', path]); - var preview = const InternalPreview( + var preview = InternalPreview( id: '', path: '', ).fromJson( @@ -198,7 +195,6 @@ void main(List arguments) async { } } - print('########### GENERATED PREVIEW: ${preview.id} ${preview.path}'); return preview; } catch (e) { print(e); diff --git a/test/catalog_test.dart b/test/catalog_test.dart index 053b1a9..d01d176 100644 --- a/test/catalog_test.dart +++ b/test/catalog_test.dart @@ -6,30 +6,37 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:go_router/go_router.dart'; void main() { - test('Basic dummy test', () { - final runner = CatalogRunner( - application: Container(), - route: GoRoute( - path: '/catalog', - builder: (context, state) => Container() - ), - ); - expect(runner.enabled, false); - }); + final dependency = 'catalog'; + final exampleFolder = 'example'; - test('Test Preview task (preview + format)', () async { - final exampleFolder = 'example'; - var dependencies = loadDependenciesFile('$exampleFolder/'); - print(introMessage(dependencies['catalog'].toString())); - await MainTask().work([exampleFolder]); - assert(true); - }); + test( + 'Basic dummy test', + () { + final runner = CatalogRunner( + application: Container(), + route: + GoRoute(path: '/catalog', builder: (context, state) => Container()), + ); + expect(runner.enabled, false); + }, + ); - test('Test Main task (preview + catalog + format)', () async { - final exampleFolder = 'example'; - var dependencies = loadDependenciesFile('$exampleFolder/'); - print(introMessage(dependencies['catalog'].toString())); - await MainTask().work([exampleFolder]); - assert(true); - }); + test( + 'Test Preview task (preview + format)', + () async { + var dependencies = loadDependenciesFile('$exampleFolder/'); + print(introMessage(dependencies[dependency].toString())); + await MainTask().work([exampleFolder]); + }, + ); + + test( + 'Test Main task (preview + catalog + format)', + () async { + var dependencies = loadDependenciesFile('$exampleFolder/'); + print(introMessage(dependencies[dependency].toString())); + await MainTask().work([exampleFolder]); + assert(true); + }, + ); }