bindings static method
void
bindings(
- String className
)
Implementation
static void bindings(String className) async {
// reading bindings.dart file
String contentFile =
await FolderAndFileService.readFile(FolderPaths.instance.bindingsFile);
List<String?> importData = RegExp(r'import.*?;')
.allMatches(contentFile)
.map((e) => e.group(0))
.toList();
List<String?> bindingData = RegExp(r'Get.*?;')
.allMatches(contentFile)
.map((e) => e.group(0))
.toList();
bindingData = bindingData.map((e) => " ${(e ?? "").trim()}").toList();
importData
.add("import '../../app/features/${className}_controller.dart';");
importData.add("import '../../app/repositories/${className}_repo.dart';");
if (bindingData.isEmpty) {
// main binding in file
bindingData.add("Get.lazyPut(() => DioHelper());");
// main Imports in file
importData.add("import 'package:get/get.dart';");
importData.add("import '../networking/base_client.dart';");
}
bindingData.add(
" Get.lazyPut(() => ${className.toCamelCaseFirstLetterForEachWord()}Repo(Get.find<DioHelper>()), fenix: true);");
bindingData.add(
" Get.lazyPut(() => ${className.toCamelCaseFirstLetterForEachWord()}Controller(${className.toCamelCaseFirstLetterForEachWord().lowerCaseFirstLetter()}Repo : Get.find<${className.toCamelCaseFirstLetterForEachWord()}Repo>()) , fenix: true);");
String newBindingFile = """
${importData.join("\n")}
class BindingApp extends Bindings {
@override
void dependencies() {
${bindingData.join("\n")}
}
}
""";
final file = File(FolderPaths.instance.bindingsFile);
file.writeAsStringSync(newBindingFile);
}