run method

  1. @override
Future<DeckData> run(
  1. DeckData data
)
override

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;
}