generateFile method

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

Generates necessary file and code for a SteamInterface

Implementation

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

  String fileName = "i${name.clearInterfaceName().toFileName()}";
  String filePath = p.join(path, "interfaces", "$fileName.dart");
  exportSink.writeExport(
    path: "interfaces/$fileName.dart",
  );

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

  IOSink fileSink = file.openWrite(mode: FileMode.writeOnly);
  generate(
    fileSink: fileSink,
    enumSet: enumSet,
    structSet: structSet,
    callbackStructSet: callbackStructSet,
    interfaceSet: interfaceSet,
  );

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