pubsecDependencySorter function

dynamic pubsecDependencySorter({
  1. required List<String> args,
})

Implementation

pubsecDependencySorter({required List<String> args}) async {
  var logger = Logger(
    filter: NewFilter(), // log in release and debug mode
    printer: PrettyPrinter(
        methodCount: 0, // number of method calls to be displayed
        errorMethodCount: 8, // number of method calls if stacktrace is provided
        colors: true, // Colorful log messages
        printEmojis: true, // Print an emoji for each log message
        printTime: true // Should each log print contain a timestamp
        ), // Use the PrettyPrinter to format and print log
    output: null, // Use the default LogOutput (-> send everything to console)
  );

  logger.w("Starting..");
  try {
    String path = '';
    if (args.isEmpty) {
      path = Directory.current.path;
    } else {
      path = args[0];
    }
    // specify the directory
    Directory myDirectory = Directory(path);

    // load pubSpec
    var pubSpec = await PubSpec.load(myDirectory);
    //get the dependencies
    Map<String, DependencyReference> dependencies = pubSpec.dependencies;
    //get the dev dependency overide
    Map<String, DependencyReference> devDependencies = pubSpec.devDependencies;
    //get the dependency overide
    Map<String, DependencyReference> dependencyOverrides =
        pubSpec.dependencyOverrides;
    //sort dependency
    var sortDependenciesByValue =
        SplayTreeMap<String, DependencyReference>.from(
      dependencies,
    );
    logger.i("<<<--- sorted dependecies.");

    //sort dev dependency
    var sortDevDependenciesByValue =
        SplayTreeMap<String, DependencyReference>.from(
      devDependencies,
    );
    logger.i("<<<--- sorted dev dependecies.");

    //sort dependency overide
    var sortDependencOveridedByValue =
        SplayTreeMap<String, DependencyReference>.from(
      dependencyOverrides,
    );
    logger.i("<<<---- sorted dependency overides.");
    // change the dependencies and dependency overides
    var newPubSpec = pubSpec.copy(
        dependencies: sortDependenciesByValue,
        dependencyOverrides: sortDependencOveridedByValue,
        devDependencies: sortDevDependenciesByValue);

    // save it
    await newPubSpec.save(myDirectory);
    logger.v("Saved the changes");

    logger.wtf("Done---< please star and like the package. https://github.com/Genialngash/pubspec-dependency-sorter >");
  } catch (e) {
    logger.e(e);
  }
}