import { SearchResponse } from "./models/SearchResponse"; import { SearchResult } from "./models/SearchResponse/SearchResult"; import { getJSON } from "./utils"; const root = "https://api.skypack.dev"; type ProjectType = | "angular" | "ember" | "lit-html" | "preact" | "react" | "svelte" | "vue" | "other"; /** 搜索包的信息 */ export const searchPackage = ( name: string, p: number = 1, count: number = 25, projectType?: ProjectType ) => { const params = new URLSearchParams(); params.set("q", name); params.set("p", p.toString()); params.set("count", count.toString()); projectType && params.set("projectType", projectType); const template = root + `/v1/search?` + params.toString(); return getJSON(template); }; /** 在搜索的时候进行的自动补全 */ export const searchPackageAutoComplete = (name: string) => { const params = new URLSearchParams(); params.set("q", name); const template = root + `/v1/autocomplete_package?` + params.toString(); return getJSON<{ results: SearchResponse[]; }>(template); }; /** 获取包的信息 */ export const getPackageDetail = (name: string) => { const template = root + `/v1/package/${name}`; return getJSON(template); }; /** 查看整个包的统计信息 */ export const browsePackage = (name: string, version: string) => { const template = root + `/v1/browse/${name}/${version}`; return getJSON<{ files: { name: string; sizeKB: number; url: string; }[]; }>(template); };