main function

void main(
  1. List<String> arguments
)

Implementation

void main(List<String> arguments) {
  final parser = ArgParser()..addOption(PATH_ARGUMENT_NAME, abbr: 'p');
  var argResults = parser.parse(arguments);

  String? path = argResults[PATH_ARGUMENT_NAME];

  if (path != null) {
    print(path);

    var directory = Directory(path);
    if (directory.existsSync()) {
      var allLines = getAllLines(path);

      allLines = removeComments(allLines);

      var allLinesString = allLines.join('\n');

      var flutterSdkWidgetProcessor = FlutterSdkWidgetProcessor(
        sdkLocation: FLUTTER_SDK_LOCATION,
        selfJsonSerialization: true,
      );

      var rawWidgets = flutterSdkWidgetProcessor.process();

      var djNamesMap = getDjNamesMap(rawWidgets, includeVariants: true);

      var allDjNames = djNamesMap.values.toList();

      var requiredDjNames = <String>[];

      allDjNames.forEach((djName) {
        if (allLinesString.contains(djName)) {
          requiredDjNames.add(djName);
        }
      });

      print('requiredDjNames $requiredDjNames ${requiredDjNames.length}');

      rawWidgets.removeWhere(
          (rawWidget) => !requiredDjNames.contains(rawWidget.widgetDjName));

      writeRawWidgets(rawWidgets, djNamesMap, path, DJS_DIRECTORY_NAME);
    } else {
      print('$path not found! Please make sure correct path is provided');
    }
  } else {
    print('Please provide path Argument by -p or --path');
  }
}