run method
Implementation
@override
Future<DeckData> run(DeckData data) async {
final (:slides, :config) = data;
await saveSlideJson(slides);
await saveConfig(config);
final assetsImageDir = kConfig.assetsImageDir;
final files = await assetsImageDir.list().where((e) => e is File).toList();
for (var file in files) {
final fileName = p.basename(file.path);
if (!fileName.startsWith('sd_slide_')) {
continue;
}
// filename example sd_asset_1_thumb.png
// get the number after sd_asset_ and before _thumb.png
final regex = RegExp(r'sd_slide_(\d+)_thumb.png');
final match = regex.firstMatch(fileName);
if (match != null) {
final slideIndex = int.parse(match.group(1)!);
if (slideIndex > slides.length) {
await file.delete();
}
}
// check for generated assets
// check if file starts witih sd_asset_
}
return data;
}