generate static method

void generate(
  1. ArgResults results
)

Implementation

static void generate(ArgResults results) async {
  final pubspecYaml = File(join(Directory.current.path, 'pubspec.yaml'));
  if (!pubspecYaml.existsSync()) {
    throw Exception(
        'This program should be run from the root of a flutter/dart project');
  }
  final pubspecContent = pubspecYaml.readAsStringSync();
  final pubspecConfig = PubspecConfig(pubspecContent);

  final configPath = results['path'] ?? pubspecConfig.configPath;
  String absolutePath;
  if (isAbsolute(configPath)) {
    absolutePath = configPath;
  } else {
    absolutePath = join(Directory.current.path, configPath);
  }
  final FileSystemEntity configEntity;
  switch (FileSystemEntity.typeSync(absolutePath)) {
    case FileSystemEntityType.directory:
      configEntity = Directory(absolutePath);
      break;
    case FileSystemEntityType.file:
    default:
      configEntity = File(absolutePath);
      break;
  }

  if (!configEntity.existsSync()) {
    throw Exception(
        'This program requires a config file/dir. `$configPath` does not exist');
  }
  final YmlGeneratorConfig modelGeneratorConfig;
  if (configEntity is Directory) {
    modelGeneratorConfig =
        _readConfigFilesInDirectory(pubspecConfig, configEntity, configPath);
  } else {
    final modelGeneratorContent = (configEntity as File).readAsStringSync();
    modelGeneratorConfig =
        YmlGeneratorConfig(pubspecConfig, modelGeneratorContent, configPath);
  }
  modelGeneratorConfig.checkIfTypesAvailable();
  if (modelGeneratorConfig.models.isEmpty) {
    print('No models defined in config files, skipping generation');
  }

  _writeToFiles(pubspecConfig, modelGeneratorConfig);
  await _generateJsonGeneratedModels(useFvm: pubspecConfig.useFvm);
  print('Done!!!');
}