Skip to content

Commit

Permalink
Finishing template
Browse files Browse the repository at this point in the history
  • Loading branch information
Nialixus committed Jun 2, 2024
1 parent c1681cd commit 5d9f08c
Show file tree
Hide file tree
Showing 20 changed files with 379 additions and 227 deletions.
21 changes: 13 additions & 8 deletions bin/api_bloc.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// ignore_for_file: avoid_print

import 'package:args/args.dart';
import 'src/shared/shared.dart';
import 'src/read/read.dart';
Expand All @@ -20,21 +21,25 @@ Future<void> main(List<String> arguments) async {
defaultsTo: false,
help: 'Print this usage information');
try {
ArgResults argument = creator.parse(arguments);
final argument = creator.parse(arguments);
if (argument["help"] == true) {
throw '\x1B[0mAvailable commands:';
} else {
StringBuffer buffer = StringBuffer()
..write('\n[...] Successfully generating bloc structure 🚀 [...]\n\n')
..write('\x1B[32m');

ReadController(argument).run(buffer);
ReadModel(argument).run(buffer);
ReadView(argument).run(buffer);
WriteController(argument).run(buffer);
WriteModel(argument).run(buffer);
WriteView(argument).run(buffer);
Shared(argument).run(buffer);
Shared(
argument,
runner: [
ReadController(argument),
WriteController(argument),
ReadModel(argument),
WriteModel(argument),
ReadView(argument),
WriteView(argument),
],
).run(buffer);

print(buffer);
}
Expand Down
298 changes: 149 additions & 149 deletions bin/create/page.dart
Original file line number Diff line number Diff line change
@@ -1,152 +1,152 @@
part of '../api_bloc.dart';

final class Page {
static void add(StringBuffer buffer,
{required ArgResults from,
required Directory root,
required String module}) {
File file = File('${root.safePath}$module.dart');
bool existed = file.existsSync();
List<String> readlist = from['read'];
List<String> writelist = from['write'];
if (existed) {
file
..writeAsStringSync(Page.update(
file.readAsLinesSync(),
readlist: readlist,
writelist: writelist,
module: module,
))
..createSync(recursive: true);
} else {
file
..writeAsStringSync(Page.create(
readlist: readlist,
writelist: writelist,
module: module,
))
..createSync(recursive: true);
}

buffer
..write('📂 ${root.path}\n')
..write(' 📄 ${file.path} ${existed ? '\x1B[34m[RENEWED]' : ''}');
}

static String update(
List<String> input, {
required String module,
required List<String> readlist,
required List<String> writelist,
}) {
int import = input.lastIndexWhere((e) {
String result = e.trim();
return result.startsWith('import') && result.endsWith(';');
});
int part = input.lastIndexWhere((e) {
String result = e.trim();
return result.startsWith('part') && result.endsWith(';');
});
int index = import == -1
? part == 1
? 0
: part + 1
: import + 1;
for (var item in readlist) {
String controller =
"part 'controllers/read_${module}_${item}_controller.dart';";
String model = "part 'models/read_${module}_${item}_model.dart';";
String widget = "part 'views/read_${module}_${item}_widget.dart';";
if (!input.contains(controller)) input.insert(index, controller);
if (!input.contains(model)) input.insert(index, model);
if (!input.contains(widget)) input.insert(index, widget);
}
for (var item in writelist) {
String controller =
"part 'controllers/write_${module}_${item}_controller.dart';";
String model = "part 'models/write_${module}_${item}_model.dart';";
String widget = "part 'views/write_${module}_${item}_widget.dart';";
if (!input.contains(controller)) input.insert(index, controller);
if (!input.contains(model)) input.insert(index, model);
if (!input.contains(widget)) input.insert(index, widget);
}
return input.join('\n');
}

static String create({
required String module,
required List<String> readlist,
required List<String> writelist,
}) {
StringBuffer buffer = StringBuffer();
buffer.write('''
// Auto-Generated API Bloc structure
// Created at ${DateTime.now()}
// 🍔 [Buy me a coffee](https://www.buymeacoffee.com/nialixus) 🚀
import 'package:api_bloc/api_bloc.dart';
import 'package:flutter/material.dart';
''');

for (var item in readlist) {
buffer
..writeln("part 'controllers/read_${module}_${item}_controller.dart';")
..writeln("part 'models/read_${module}_${item}_model.dart';")
..writeln("part 'views/read_${module}_${item}_widget.dart';");
}

for (var item in writelist) {
buffer
..writeln("part 'controllers/write_${module}_${item}_controller.dart';")
..writeln("part 'models/write_${module}_${item}_model.dart';")
..writeln("part 'views/write_${module}_${item}_widget.dart';");
}

buffer.write('''
// class ${module.capitalize} extends StatefulWidget {
// const ${module.capitalize}({super.key});
//
// @override
// State<${module.capitalize}> createState() => _${module.capitalize}();
// }
//
// class _${module.capitalize} extends State<${module.capitalize}> {
''');

for (var item in readlist) {
buffer.writeln(
'// final _${(module)}${item.capitalize}Reader = Read${module.capitalize}${item.capitalize}Controller();');
}
for (var item in writelist) {
buffer.writeln(
'// final _${(module)}${item.capitalize}Writer = Write${module.capitalize}${item.capitalize}Controller();');
}

buffer.write('''
//
// @override
// Widget build(BuildContext context) {
// return const Placeholder();
// }
// @override
// void dispose() {''');

for (var item in readlist) {
buffer.write('\n//\t\t_${(module)}${item.capitalize}Reader.dispose();');
}
for (var item in writelist) {
buffer.write('\n//\t\t_${(module)}${item.capitalize}Writer.dispose();');
}
// part of '../api_bloc.dart';

// final class Page {
// static void add(StringBuffer buffer,
// {required ArgResults from,
// required Directory root,
// required String module}) {
// File file = File('${root.safePath}$module.dart');
// bool existed = file.existsSync();
// List<String> readlist = from['read'];
// List<String> writelist = from['write'];
// if (existed) {
// file
// ..writeAsStringSync(Page.update(
// file.readAsLinesSync(),
// readlist: readlist,
// writelist: writelist,
// module: module,
// ))
// ..createSync(recursive: true);
// } else {
// file
// ..writeAsStringSync(Page.create(
// readlist: readlist,
// writelist: writelist,
// module: module,
// ))
// ..createSync(recursive: true);
// }

// buffer
// ..write('📂 ${root.path}\n')
// ..write(' 📄 ${file.path} ${existed ? '\x1B[34m[RENEWED]' : ''}');
// }

buffer.write('''
//
// super.dispose();
// static String update(
// List<String> input, {
// required String module,
// required List<String> readlist,
// required List<String> writelist,
// }) {
// int import = input.lastIndexWhere((e) {
// String result = e.trim();
// return result.startsWith('import') && result.endsWith(';');
// });
// int part = input.lastIndexWhere((e) {
// String result = e.trim();
// return result.startsWith('part') && result.endsWith(';');
// });
// int index = import == -1
// ? part == 1
// ? 0
// : part + 1
// : import + 1;
// for (var item in readlist) {
// String controller =
// "part 'controllers/read_${module}_${item}_controller.dart';";
// String model = "part 'models/read_${module}_${item}_model.dart';";
// String widget = "part 'views/read_${module}_${item}_widget.dart';";
// if (!input.contains(controller)) input.insert(index, controller);
// if (!input.contains(model)) input.insert(index, model);
// if (!input.contains(widget)) input.insert(index, widget);
// }
// for (var item in writelist) {
// String controller =
// "part 'controllers/write_${module}_${item}_controller.dart';";
// String model = "part 'models/write_${module}_${item}_model.dart';";
// String widget = "part 'views/write_${module}_${item}_widget.dart';";
// if (!input.contains(controller)) input.insert(index, controller);
// if (!input.contains(model)) input.insert(index, model);
// if (!input.contains(widget)) input.insert(index, widget);
// }
// return input.join('\n');
// }
// }''');

return buffer.toString();
}
}
// static String create({
// required String module,
// required List<String> readlist,
// required List<String> writelist,
// }) {
// StringBuffer buffer = StringBuffer();
// buffer.write('''
// // Auto-Generated API Bloc structure
// // Created at ${DateTime.now()}
// // 🍔 [Buy me a coffee](https://www.buymeacoffee.com/nialixus) 🚀

// import 'package:api_bloc/api_bloc.dart';
// import 'package:flutter/material.dart';

// ''');

// for (var item in readlist) {
// buffer
// ..writeln("part 'controllers/read_${module}_${item}_controller.dart';")
// ..writeln("part 'models/read_${module}_${item}_model.dart';")
// ..writeln("part 'views/read_${module}_${item}_widget.dart';");
// }

// for (var item in writelist) {
// buffer
// ..writeln("part 'controllers/write_${module}_${item}_controller.dart';")
// ..writeln("part 'models/write_${module}_${item}_model.dart';")
// ..writeln("part 'views/write_${module}_${item}_widget.dart';");
// }

// buffer.write('''

// // class ${module.capitalize} extends StatefulWidget {
// // const ${module.capitalize}({super.key});
// //
// // @override
// // State<${module.capitalize}> createState() => _${module.capitalize}();
// // }
// //
// // class _${module.capitalize} extends State<${module.capitalize}> {
// ''');

// for (var item in readlist) {
// buffer.writeln(
// '// final _${(module)}${item.capitalize}Reader = Read${module.capitalize}${item.capitalize}Controller();');
// }
// for (var item in writelist) {
// buffer.writeln(
// '// final _${(module)}${item.capitalize}Writer = Write${module.capitalize}${item.capitalize}Controller();');
// }

// buffer.write('''
// //
// // @override
// // Widget build(BuildContext context) {
// // return const Placeholder();
// // }

// // @override
// // void dispose() {''');

// for (var item in readlist) {
// buffer.write('\n//\t\t_${(module)}${item.capitalize}Reader.dispose();');
// }
// for (var item in writelist) {
// buffer.write('\n//\t\t_${(module)}${item.capitalize}Writer.dispose();');
// }

// buffer.write('''
// //
// // super.dispose();
// // }
// // }''');

// return buffer.toString();
// }
// }
44 changes: 22 additions & 22 deletions bin/create/runner.dart
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
// ignore_for_file: non_constant_identifier_names, avoid_print
// // ignore_for_file: non_constant_identifier_names, avoid_print

part of '../api_bloc.dart';
// part of '../api_bloc.dart';

final class ApiBloc {
static void create(ArgResults data) {
StringBuffer buffer = StringBuffer()
..write('\n[...] Successfully generating bloc structure 🚀 [...]\n\n')
..write('\x1B[32m');
// final class ApiBloc {
// static void create(ArgResults data) {
// StringBuffer buffer = StringBuffer()
// ..write('\n[...] Successfully generating bloc structure 🚀 [...]\n\n')
// ..write('\x1B[32m');

// [2] Create controller items
result.addAll(
Controller.create(from: data, buffer, root: directory, module: name));
// // [2] Create controller items
// result.addAll(
// Controller.create(from: data, buffer, root: directory, module: name));

// [3] Create model items
result.addAll(
Model.create(from: data, buffer, root: directory, module: name));
// // [3] Create model items
// result.addAll(
// Model.create(from: data, buffer, root: directory, module: name));

// [4] Create widget items
result
.addAll(View.create(from: data, buffer, root: directory, module: name));
// // [4] Create widget items
// result
// .addAll(View.create(from: data, buffer, root: directory, module: name));

// [5] Create page items
Page.add(buffer, root: directory, module: name, from: data);
// // [5] Create page items
// Page.add(buffer, root: directory, module: name, from: data);

// Send message
print(buffer);
}
}
// // Send message
// print(buffer);
// }
// }
Loading

0 comments on commit 5d9f08c

Please sign in to comment.