ConfigEditorProvider.swift 781 B

123456789101112131415161718192021222324252627
  1. import Foundation
  2. extension ConfigEditor {
  3. final class Provider: BaseProvider, ConfigEditorProvider {
  4. func load(file: String) -> RawJSON {
  5. storage.retrieveRaw(file) ?? OpenAPS.defaults(for: file)
  6. }
  7. func urlFor(file: String) -> URL? {
  8. storage.urlFor(file: file)
  9. }
  10. func save(_ value: RawJSON, as file: String) {
  11. if file.hasSuffix(".js") {
  12. storage.save(value, as: file)
  13. return
  14. }
  15. guard let data = value.data(using: .utf8), (try? JSONSerialization.jsonObject(with: data, options: [])) != nil else {
  16. warning(.service, "Invalid JSON")
  17. return
  18. }
  19. storage.save(value, as: file)
  20. }
  21. }
  22. }