generateCallbackIdMap method
Generates callback id map by type to make it easier to lookup callback ids
Implementation
Future<void> generateCallbackIdMap({
required String path,
required IOSink exportSink,
Set<String> callbackStructSet = const {},
}) async {
String filePath = p.join(path, "callback_id_map.dart");
exportSink.writeExport(
path: "callback_id_map.dart",
);
File file = File(filePath);
await file.create(recursive: true);
IOSink fileSink = file.openWrite(mode: FileMode.writeOnly);
fileSink.writeln(
"// ignore_for_file: public_member_api_docs, always_specify_types, avoid_positional_boolean_parameters, avoid_classes_with_only_static_members",
);
for (String name in callbackStructs.map((cs) => cs.name)) {
String importPath = name.importPath(
relativeness: "",
callbackStructSet: callbackStructSet,
);
if (importPath.isNotEmpty) {
fileSink.writeImport(packageName: importPath);
}
}
fileSink.write(
"Map<Type, int> callbackIdMapByType =",
);
fileSink.writeStartBlock();
for (String name in callbackStructs.map((cs) => cs.name)) {
String typeName = name.clearSteamNaming().pascalCase;
fileSink.write("$typeName: $typeName.callbackId,");
}
fileSink.writeEndBlock();
fileSink.write(";");
await fileSink.flush();
await fileSink.close();
}