From f106ab0f81a8513a6c5806edfe19698c8d4183ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1rady=20Mil=C3=A1n?= <61704770+MilanVarady@users.noreply.github.com> Date: Thu, 16 May 2024 17:37:35 +0200 Subject: [PATCH] Make cask loading safer --- Applite.xcodeproj/project.pbxproj | 8 ++++---- Applite/Model/Cask Data/Cask.swift | 18 ++++++++++-------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Applite.xcodeproj/project.pbxproj b/Applite.xcodeproj/project.pbxproj index 1d82608..14b40d8 100644 --- a/Applite.xcodeproj/project.pbxproj +++ b/Applite.xcodeproj/project.pbxproj @@ -674,7 +674,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 11; + CURRENT_PROJECT_VERSION = 12; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_ASSET_PATHS = "\"Applite/Preview Content\""; DEVELOPMENT_TEAM = 9CLTNBW4Z3; @@ -691,7 +691,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.2.4; + MARKETING_VERSION = 1.2.5; PRODUCT_BUNDLE_IDENTIFIER = dev.aerolite.Applite; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; @@ -709,7 +709,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 11; + CURRENT_PROJECT_VERSION = 12; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_ASSET_PATHS = "\"Applite/Preview Content\""; DEVELOPMENT_TEAM = 9CLTNBW4Z3; @@ -726,7 +726,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.2.4; + MARKETING_VERSION = 1.2.5; PRODUCT_BUNDLE_IDENTIFIER = dev.aerolite.Applite; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; diff --git a/Applite/Model/Cask Data/Cask.swift b/Applite/Model/Cask Data/Cask.swift index e635d34..65af6a0 100755 --- a/Applite/Model/Cask Data/Cask.swift +++ b/Applite/Model/Cask Data/Cask.swift @@ -46,14 +46,16 @@ final class Cask: Identifiable, Decodable, Hashable, ObservableObject { ) required init(from decoder: Decoder) throws { - let rawData = try CaskDTO(from: decoder) - - self.id = rawData.token - self.name = rawData.nameArray[0] - self.description = rawData.desc ?? "N/A" - self.homepageURL = URL(string: rawData.homepage) - self.caveats = rawData.caveats - self.pkgInstaller = rawData.url.hasSuffix("pkg") + let rawData = try? CaskDTO(from: decoder) + + let homepage: String = rawData?.homepage ?? "https://brew.sh/" + + self.id = rawData?.token ?? "N/A" + self.name = rawData?.nameArray[0] ?? "N/A" + self.description = rawData?.desc ?? "N/A" + self.homepageURL = URL(string: homepage) + self.caveats = rawData?.caveats + self.pkgInstaller = rawData?.url.hasSuffix("pkg") ?? false } required init() {