← Public packages
@kody/integrations-sh
Client for the public integrations.sh registry: search, detect, cached surface, and live discover.
src/urls.ts
39 lines · 1.2 KB · TypeScriptexport const INTEGRATIONS_SH_API_BASE = 'https://integrations.sh/api'
export const SURFACE_KINDS = ['mcp', 'openapi', 'graphql', 'cli'] as const
export type SurfaceKind = (typeof SURFACE_KINDS)[number]
export function isSurfaceKind(value: unknown): value is SurfaceKind {
return typeof value === 'string' && SURFACE_KINDS.includes(value as SurfaceKind)
}
export function buildSearchUrl(input: {
query: string
kind?: SurfaceKind
limit: number
offset?: number
}): string {
const url = new URL(`${INTEGRATIONS_SH_API_BASE}/search`)
url.searchParams.set('q', input.query)
if (input.kind) {
url.searchParams.set('kind', input.kind)
}
url.searchParams.set('limit', String(input.limit))
if (input.offset != null) {
url.searchParams.set('offset', String(input.offset))
}
return url.toString()
}
export function buildDetectUrl(domain: string): string {
return `${INTEGRATIONS_SH_API_BASE}/${encodeURIComponent(domain)}/detect`
}
export function buildSurfaceUrl(domain: string): string {
return `${INTEGRATIONS_SH_API_BASE}/${encodeURIComponent(domain)}/surface`
}
export function buildDiscoverUrl(domain: string): string {
return `${INTEGRATIONS_SH_API_BASE}/${encodeURIComponent(domain)}/discover`
}