Files
cardy/shared/src/deepLink.ts
T
2026-09-29 13:50:01 +03:00

21 lines
719 B
TypeScript

export const DEEP_LINK_SCHEME = 'cardy';
export function buildLoginDeepLink(server: string, key: string): string {
return `${DEEP_LINK_SCHEME}://login?server=${encodeURIComponent(server)}&key=${encodeURIComponent(key)}`;
}
export function parseLoginDeepLink(link: string): { server: string; key: string } | null {
let url: URL;
try {
url = new URL(link.trim());
} catch {
return null;
}
// Non-special schemes put "login" into host for "cardy://login?…".
if (url.protocol !== `${DEEP_LINK_SCHEME}:` || url.host !== 'login') return null;
const server = url.searchParams.get('server');
const key = url.searchParams.get('key');
if (!server || !key) return null;
return { server, key };
}