Files
AgentCompany/landing/lib/downloads.ts
T
2026-04-04 17:01:26 -04:00

29 lines
945 B
TypeScript

import { platformDownloads, type PlatformDownloadAsset } from "../components/release-links.generated";
export const DOWNLOAD_COUNT_SEED = 13674;
export const DOWNLOAD_DEDUP_WINDOW_HOURS = 24;
export const DOWNLOAD_DEDUP_WINDOW_MS = DOWNLOAD_DEDUP_WINDOW_HOURS * 60 * 60 * 1000;
export type ReleaseDownloadAsset = PlatformDownloadAsset & {
platformId: "macos" | "windows" | "linux";
platformTitle: string;
};
export const downloadAssets: ReleaseDownloadAsset[] = platformDownloads.flatMap((platform) =>
platform.assets.map((asset) => ({
...asset,
platformId: platform.id,
platformTitle: platform.title,
})),
);
const downloadAssetMap = new Map(downloadAssets.map((asset) => [asset.id, asset]));
export function getDownloadAsset(assetId: string) {
return downloadAssetMap.get(assetId) ?? null;
}
export function getTrackedDownloadHref(assetId: string) {
return `/api/download?asset=${encodeURIComponent(assetId)}`;
}