purge method

void purge(
  1. int maxSizeBytes
)

Removes old data from storage, reducing the maximum total directory size to maxSizeBytes.

Implementation

void purge(int maxSizeBytes) {
  List<FileAndStat> files = <FileAndStat>[];

  final dirEntries = innerDir.listSync(recursive: true);

  for (final entry in dirEntries) {
    if (entry.path.endsWith(DIRTY_SUFFIX)) {
      deleteSyncCalm(File(entry.path));
      continue;
    }
    if (entry.path.endsWith(DATA_SUFFIX)) {
      final f = File(entry.path);
      files.add(FileAndStat(f));
    }
  }

  FileAndStat.deleteOldest(files,
      maxSumSize: maxSizeBytes,
      maxCount: JS_MAX_SAFE_INTEGER,
      deleteFile: (file) => file.deleteSync());
}