toMiniProgramJson method
Implementation
Map<String, dynamic> toMiniProgramJson() {
const visibleBuckets = <MiniProgramCacheBucket>[
MiniProgramCacheBucket.memory,
MiniProgramCacheBucket.data,
MiniProgramCacheBucket.image,
MiniProgramCacheBucket.state,
MiniProgramCacheBucket.audio,
MiniProgramCacheBucket.video,
];
final visible = <String, dynamic>{};
var visibleBytes = 0;
var visibleEntries = 0;
for (final bucket in visibleBuckets) {
final usage = buckets[bucket]!;
final bucketEnabled = enabled && usage.enabledForMiniProgram;
if (bucketEnabled) {
visibleBytes += usage.miniProgramUsedBytes;
visibleEntries += usage.miniProgramEntryCount;
}
visible[bucket.name] = <String, dynamic>{
'enabled': bucketEnabled,
'usedBytes': bucketEnabled ? usage.miniProgramUsedBytes : 0,
'maxBytes': bucketEnabled ? usage.maxBytes : null,
'remainingBytes': bucketEnabled && usage.maxBytes != null
? (usage.maxBytes! - usage.miniProgramUsedBytes)
.clamp(0, usage.maxBytes!)
.toInt()
: null,
'ttlMs': bucketEnabled ? usage.ttl.inMilliseconds : null,
'entryCount': bucketEnabled ? usage.miniProgramEntryCount : 0,
};
}
return <String, dynamic>{
'appId': appId,
'enabled': enabled,
'usedBytes': visibleBytes,
'maxBytes': enabled ? maxBytes : 0,
'remainingBytes': enabled
? (maxBytes - visibleBytes).clamp(0, maxBytes).toInt()
: 0,
'entryCount': visibleEntries,
'buckets': visible,
};
}