revenge-tweak/Sources/PyoncordTweak/LoaderConfig.x.swift
2024-03-15 08:10:25 +08:00

50 lines
1.2 KiB
Swift

import Foundation
import os
enum LoaderConfigError: Error {
case doesNotExist
}
struct CustomLoadUrl: Codable {
let enabled: Bool
let url: URL
}
struct LoaderConfig: Codable {
let customLoadUrl: CustomLoadUrl
let loadReactDevTools: Bool
var loadPyoncord: Bool? = nil
}
let defaultLoaderConfig = LoaderConfig(
customLoadUrl: CustomLoadUrl(
enabled: false,
url: URL(string: "http://localhost:4040/bunny.js")!
),
loadReactDevTools: false
)
let pyoncordDirectory = getPyoncordDirectory()
let loaderConfigUrl = pyoncordDirectory.appendingPathComponent("loader.json")
func getLoaderConfig() -> LoaderConfig {
os_log("Getting loader config", log: pyoncordLog, type: .debug)
let fileManager = FileManager.default
do {
if fileManager.fileExists(atPath: loaderConfigUrl.path) {
let data = try Data(contentsOf: loaderConfigUrl)
let loaderConfig = try JSONDecoder().decode(LoaderConfig.self, from: data)
os_log("Got loader config", log: pyoncordLog, type: .debug)
return loaderConfig
} else {
throw LoaderConfigError.doesNotExist
}
} catch {
os_log("Couldn't get loader config", log: pyoncordLog, type: .error)
return defaultLoaderConfig
}
}