From fb5288d5f1a280e913406e6da06e14463180dfe4 Mon Sep 17 00:00:00 2001 From: KotlinGeekDev Date: Mon, 26 Jan 2026 20:08:44 +0100 Subject: [PATCH] Foundations(iOS Sourceset): Provide implementation for makeAbsoluteIfRelativeUrl() in ServerInfoParser.ios.kt --- .../info/ServerInfoParser.ios.kt | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/nip96FileStorage/info/ServerInfoParser.ios.kt b/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/nip96FileStorage/info/ServerInfoParser.ios.kt index 8fe3954c2..8674bb961 100644 --- a/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/nip96FileStorage/info/ServerInfoParser.ios.kt +++ b/quartz/src/iosMain/kotlin/com/vitorpamplona/quartz/nip96FileStorage/info/ServerInfoParser.ios.kt @@ -20,9 +20,29 @@ */ package com.vitorpamplona.quartz.nip96FileStorage.info +import platform.Foundation.NSURL +import platform.Foundation.NSURLComponents + actual fun makeAbsoluteIfRelativeUrl( baseUrl: String, potentiallyRelativeUrl: String, -): String { - TODO("Not yet implemented") -} +): String = + try { + val refUrl = NSURLComponents(potentiallyRelativeUrl) + if (refUrl.scheme != null) { + potentiallyRelativeUrl + } else { + val apiUrlComponents = + NSURLComponents( + uRL = + NSURL( + string = potentiallyRelativeUrl, + relativeToURL = NSURL(baseUrl, encodingInvalidCharacters = false), + ), + resolvingAgainstBaseURL = true, + ) + apiUrlComponents.string ?: throw Exception("URL resolution failed.") + } + } catch (e: Exception) { + potentiallyRelativeUrl + }