Skip to content

Commit 9838990

Browse files
committed
fix: serve app association for CI links
1 parent 6b3a405 commit 9838990

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

packages/ci-proxy-worker/src/index.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,27 @@ const REDIRECT_PARAM = "redirect";
3030
const SESSION_COOKIE = "sdcp_session";
3131
const COOKIE_MAX_AGE_SECONDS = 60 * 60 * 6;
3232
const JSON_CONTENT = "application/json; charset=utf-8";
33+
const APPLE_APP_SITE_ASSOCIATION_PATHS = new Set([
34+
"/.well-known/apple-app-site-association",
35+
"/apple-app-site-association",
36+
]);
37+
38+
const APPLE_APP_SITE_ASSOCIATION = {
39+
applinks: {
40+
apps: [],
41+
details: [
42+
{
43+
appID: "CS838V553Y.org.nativescript.simdeck",
44+
paths: ["*"],
45+
components: [
46+
{
47+
"/": "*",
48+
},
49+
],
50+
},
51+
],
52+
},
53+
};
3354

3455
export default {
3556
async fetch(request: Request): Promise<Response> {
@@ -48,6 +69,10 @@ export default {
4869
async function handleRequest(request: Request): Promise<Response> {
4970
const url = new URL(request.url);
5071

72+
if (APPLE_APP_SITE_ASSOCIATION_PATHS.has(url.pathname)) {
73+
return appleAppSiteAssociationResponse();
74+
}
75+
5176
if (url.pathname === "/api/session") {
5277
return sessionMetadata(request);
5378
}
@@ -94,6 +119,15 @@ async function handleRequest(request: Request): Promise<Response> {
94119
return proxyToSimDeck(request, cookieSession);
95120
}
96121

122+
function appleAppSiteAssociationResponse(): Response {
123+
return new Response(JSON.stringify(APPLE_APP_SITE_ASSOCIATION), {
124+
headers: {
125+
"Content-Type": "application/json",
126+
"Cache-Control": "public, max-age=3600",
127+
},
128+
});
129+
}
130+
97131
function sessionMetadata(request: Request): Response {
98132
const session = sessionFromCookie(request);
99133
if (!session) {

0 commit comments

Comments
 (0)