iterateJsonToDAO method

bool iterateJsonToDAO()

Implementation

bool iterateJsonToDAO() {
  var error = StringBuffer();
  var daoList = <String>[];
  var indexFile = '';
  list.forEach((f) {
    if (FileSystemEntity.isFileSync(f.path)) {
      var fileExtension = '.json';
      if (f.path.endsWith(fileExtension)) {
        var file = File(f.path);
        var dartPath = f.path.replaceFirst(srcDir, daoDir).replaceFirst(
          fileExtension,
          '.dao.dart',
          f.path.length - fileExtension.length - 1,
        );
        List basenameString = path.basename(f.path).split('.');
        String fileName = basenameString.first;
        Map<String, dynamic> jsonMap = json.decode(file.readAsStringSync());

        var relative = dartPath.replaceFirst(daoDir + path.separator, '').replaceAll(path.separator, '/');

        var jsonModel = JsonModel.fromMap(fileName, jsonMap, relativePath: relative);
        if (!generateFileFromJsonToDAO(dartPath, jsonModel, relative)) {
          error.write('cant write $dartPath');
        }

        daoList.add(fileName);
        indexFile += "export '$relative';\n";
      }
    }
  });
  if (indexFile.isNotEmpty) {
    File(path.join(daoDir, 'index.dart')).writeAsStringSync(indexFile);
  }
  if (!generateFileFromJsonToDatabase(daoDir, daoList)) {
    error.write('cant write $daoDir/database.dart');
  }
  return indexFile.isNotEmpty;
}