mirror of
https://github.com/FBukovina/Atoll.git
synced 2026-10-27 15:14:33 +00:00
33 lines
1.3 KiB
Swift
33 lines
1.3 KiB
Swift
import Foundation
|
|
import AtollExtensionKit
|
|
|
|
struct ExtensionDescriptorValidator {
|
|
static func validate(_ descriptor: AtollLiveActivityDescriptor) throws {
|
|
guard descriptor.isValid else {
|
|
throw ExtensionValidationError.invalidDescriptor("Missing mandatory fields")
|
|
}
|
|
guard descriptor.leadingIcon.isValid else {
|
|
throw ExtensionValidationError.invalidDescriptor("Invalid leading icon data")
|
|
}
|
|
if let badge = descriptor.badgeIcon {
|
|
guard badge.isValid else {
|
|
throw ExtensionValidationError.invalidDescriptor("Invalid badge icon data")
|
|
}
|
|
}
|
|
if descriptor.metadata.count > 32 {
|
|
throw ExtensionValidationError.invalidDescriptor("Metadata keys must be ≤ 32")
|
|
}
|
|
}
|
|
|
|
static func validate(_ descriptor: AtollLockScreenWidgetDescriptor) throws {
|
|
guard descriptor.isValid else {
|
|
throw ExtensionValidationError.invalidDescriptor("Missing mandatory fields")
|
|
}
|
|
guard descriptor.content.count <= 12 else {
|
|
throw ExtensionValidationError.invalidDescriptor("Too many content elements")
|
|
}
|
|
guard descriptor.size.width <= 480, descriptor.size.height <= 280 else {
|
|
throw ExtensionValidationError.invalidDescriptor("Widget exceeds size limits")
|
|
}
|
|
}
|
|
}
|