mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-10-31 01:00:47 +08:00
Fix bug with default ports in api config
JavaScript brilliance strikes again:
new URL("https://acme.com:443").port == ""
Signed-off-by: Alexis Sellier <self@cloudhead.io>
This commit is contained in:
+9
-7
@@ -1,6 +1,6 @@
|
||||
export interface Host {
|
||||
host: string;
|
||||
port: number;
|
||||
port: number | null;
|
||||
}
|
||||
|
||||
export async function get(
|
||||
@@ -23,24 +23,26 @@ export async function get(
|
||||
path = path.startsWith("/") ? path.slice(1) : path;
|
||||
|
||||
const baseUrl = path
|
||||
? `${protocol}${base}:${port}/v1/${path}`
|
||||
: `${protocol}${base}:${port}`;
|
||||
const url = search ? `${baseUrl}?${search}` : baseUrl;
|
||||
? `${protocol}${base}/v1/${path}`
|
||||
: `${protocol}${base}`;
|
||||
const url = new URL(search ? `${baseUrl}?${search}` : baseUrl);
|
||||
url.port = String(port);
|
||||
|
||||
const urlString = String(url);
|
||||
let response = null;
|
||||
try {
|
||||
response = await fetch(url, {
|
||||
response = await fetch(urlString, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Accept': 'application/json',
|
||||
}
|
||||
});
|
||||
} catch (err) {
|
||||
throw new ApiError(url, "API request failed");
|
||||
throw new ApiError(urlString, "API request failed");
|
||||
}
|
||||
|
||||
if (! response.ok) {
|
||||
throw new ApiError(url, "Not found");
|
||||
throw new ApiError(urlString, "Not found");
|
||||
}
|
||||
return response.json();
|
||||
}
|
||||
|
||||
@@ -19,8 +19,8 @@ export class InvalidSeed {
|
||||
export class Seed {
|
||||
valid: true = true;
|
||||
|
||||
api: { host: string; port: number };
|
||||
git: { host: string; port: number };
|
||||
api: { host: string; port: number | null };
|
||||
git: { host: string; port: number | null };
|
||||
link: { host: string; id: string; port: number };
|
||||
|
||||
version?: string;
|
||||
@@ -38,14 +38,14 @@ export class Seed {
|
||||
|
||||
let api = null;
|
||||
let git = null;
|
||||
let apiPort = null;
|
||||
let gitPort = null;
|
||||
let apiPort: number | null = cfg.seed.api.port;
|
||||
let gitPort: number | null = cfg.seed.git.port;
|
||||
|
||||
if (seed.api) {
|
||||
try {
|
||||
const url = new URL(seed.api);
|
||||
api = url.hostname;
|
||||
apiPort = url.port || null;
|
||||
apiPort = url.port ? Number(url.port) : null;
|
||||
} catch {
|
||||
api = seed.api;
|
||||
}
|
||||
@@ -56,7 +56,7 @@ export class Seed {
|
||||
try {
|
||||
const url = new URL(seed.git);
|
||||
git = url.hostname;
|
||||
gitPort = url.port || null;
|
||||
gitPort = url.port ? Number(url.port) : null;
|
||||
} catch {
|
||||
git = seed.git;
|
||||
}
|
||||
@@ -75,8 +75,8 @@ export class Seed {
|
||||
api = api ?? seed.host;
|
||||
git = git ?? seed.host;
|
||||
|
||||
this.api = { host: api, port: Number(apiPort) || cfg.seed.api.port };
|
||||
this.git = { host: git, port: Number(gitPort) || cfg.seed.git.port };
|
||||
this.api = { host: api, port: apiPort };
|
||||
this.git = { host: git, port: gitPort };
|
||||
this.link = { host: seed.host, id: seed.id, port: cfg.seed.link.port };
|
||||
|
||||
if (seed.version) {
|
||||
|
||||
Reference in New Issue
Block a user