generate static method
void
generate(
- 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!!!');
}