Federated URL backend handling

pull/503/head
Zef Hemel 2023-07-29 17:06:32 +02:00
parent 7442aac7e0
commit 21c8cd6e7a
3 changed files with 22 additions and 1 deletions

View File

@ -344,6 +344,17 @@ export class HttpServer {
response.body = "Not exposed";
return;
}
// Handle federated links through a simple redirect, only used for attachments loads with service workers disabled
if (name.startsWith("!")) {
let url = name.slice(1);
if (url.startsWith("localhost")) {
url = `http://${url}`;
} else {
url = `https://${url}`;
}
response.redirect(url);
return;
}
try {
const fileData = await spacePrimitives.readFile(
name,

View File

@ -1,5 +1,5 @@
import { Client } from "./client.ts";
import { EditorSelection, EditorView } from "./deps.ts";
import { EditorSelection } from "./deps.ts";
class PageState {
constructor(

View File

@ -147,6 +147,16 @@ async function handleLocalFileRequest(
},
},
);
} else if (path.startsWith("!")) {
// Federated URL handling
let url = path.slice(1);
if (url.startsWith("localhost")) {
url = `http://${url}`;
} else {
url = `https://${url}`;
}
console.info("Proxying federated URL", path, "to", url);
return fetch(url, { method: "GET", headers: request.headers });
} else {
console.error(
"Did not find file in locally synced space",