generateFile method

Future<void> generateFile({
  1. required String path,
  2. required String target,
  3. required IOSink exportSink,
  4. Set<String> enumSet = const {},
  5. Set<String> structSet = const {},
  6. Set<String> callbackStructSet = const {},
})

Generates necessary file and code for a SteamStruct

Implementation

Future<void> generateFile({
  required String path,
  required String target,
  required IOSink exportSink,
  Set<String> enumSet = const {},
  Set<String> structSet = const {},
  Set<String> callbackStructSet = const {},
}) async {
  await enums.generateFile(
    path: path,
    exportSink: exportSink,
  );

  String filePath;
  String fileName = name.toFileName();
  if (callbackId != -1) {
    filePath = p.join(path, "callback_structs", "$fileName.dart");
    exportSink.writeExport(
      path: "callback_structs/$fileName.dart",
    );
  } else {
    filePath = p.join(path, "structs", "$fileName.dart");
    exportSink.writeExport(
      path: "structs/$fileName.dart",
    );
  }

  File file = File(filePath);
  await file.create(recursive: true);

  IOSink fileSink = file.openWrite(mode: FileMode.writeOnly);

  generate(
    fileSink: fileSink,
    target: target,
    enumSet: enumSet,
    structSet: structSet,
    callbackStructSet: callbackStructSet,
  );

  await fileSink.flush();
  await fileSink.close();
}