Mercurial > public > lazybear
view LazyBear/Functions/ReadJson.swift @ 206:e965cd71bc3b
Implement Icon Selector in production
author | Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> |
---|---|
date | Fri, 26 Feb 2021 22:08:03 +0000 |
parents | 722a4c06f5c7 |
children |
line wrap: on
line source
// // ReadJson.swift // LazyBear // // Created by Dennis Concepción Martín on 19/2/21. // import Foundation let themes: [ThemeModel] = load("themes.json") let newsLanguages: [NewsLanguageModel] = load("newsLanguages.json") let icons: [IconModel] = load("alternativeIcons.json") func load<T: Decodable>(_ filename: String) -> T { let data: Data guard let file = Bundle.main.url(forResource: filename, withExtension: nil) else { fatalError("Couldn't find \(filename) in main bundle.") } do { data = try Data(contentsOf: file) } catch { fatalError("Couldn't load \(filename) from main bundle:\n\(error)") } do { let decoder = JSONDecoder() return try decoder.decode(T.self, from: data) } catch { fatalError("Couldn't parse \(filename) as \(T.self):\n\(error)") } }