import { SpaceProps } from "./type"; export const fetchAllPages = async (sort = "trending") => { const filter_key = "zero-a10g"; const pageNumbers = Array.from({ length: 250 }, (_, i) => i); const urls = pageNumbers.map(async (pageNumber) => { const url = `https://huggingface.co/spaces-json?p=${pageNumber}&sort=${sort}`; const response = await fetch(url); const json = await response.json(); return json?.spaces ?? []; }); const jsonResponses = await Promise.all(urls); const spaces = jsonResponses.flat()?.filter((space) => space?.runtime?.hardware?.current === filter_key && !space?.private); return spaces; }; export const sortByCreatedAt = (spaces: SpaceProps[]) => { return spaces.sort((a, b) => { return new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime(); }); } export const sortByLikes = (spaces: SpaceProps[]) => { return spaces.sort((a, b) => { return b.likes - a.likes; }); }