mirror of
https://github.com/supabase/supabase.git
synced 2026-10-06 18:05:11 +03:00
Add a top-level field to search docs globally. Right now this only
returns Markdown guides (not references, GitHub discussions, or partner
pages.
The full GraphQL schema at this point:
```
schema {
query: RootQueryType
}
type RootQueryType {
"""Get the GraphQL schema for this endpoint"""
schema: String!
"""Search the Supabase docs for content matching a query string"""
searchDocs(query: String!, limit: Int): SearchResultCollection
}
"""A collection of search results containing content from Supabase docs"""
type SearchResultCollection {
"""A list of edges containing nodes in this collection"""
edges: [SearchResultEdge!]!
"""The nodes in this collection, directly accessible"""
nodes: [SearchResult!]!
"""The total count of items available in this collection"""
totalCount: Int!
}
"""An edge in a collection of SearchResults"""
type SearchResultEdge {
"""The SearchResult at the end of the edge"""
node: SearchResult!
}
"""Document that matches a search query"""
interface SearchResult {
"""The title of the matching result"""
title: String
"""The URL of the matching result"""
href: String
"""The full content of the matching result"""
content: String
}
```
Towards DOCS-214
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import { createClient, type SupabaseClient } from '@supabase/supabase-js'
|
|
import { type Database as DatabaseGenerated } from 'common'
|
|
|
|
type Database = {
|
|
graphql_public: DatabaseGenerated['graphql_public']
|
|
public: {
|
|
Tables: DatabaseGenerated['public']['Tables']
|
|
Views: DatabaseGenerated['public']['Views']
|
|
Functions: Omit<DatabaseGenerated['public']['Functions'], 'search_content'> & {
|
|
search_content: {
|
|
Args: Omit<
|
|
DatabaseGenerated['public']['Functions']['search_content']['Args'],
|
|
'embedding'
|
|
> & { embedding: Array<number> }
|
|
Returns: Array<
|
|
Omit<
|
|
DatabaseGenerated['public']['Functions']['search_content']['Returns'][number],
|
|
'subsections'
|
|
> & { subsections: Array<{ title?: string; href?: string; content?: string }> }
|
|
>
|
|
}
|
|
}
|
|
Enums: DatabaseGenerated['public']['Enums']
|
|
CompositeTypes: DatabaseGenerated['public']['CompositeTypes']
|
|
}
|
|
storage: DatabaseGenerated['storage']
|
|
}
|
|
|
|
let _supabase: SupabaseClient<Database>
|
|
|
|
export function supabase() {
|
|
if (!_supabase) {
|
|
_supabase = createClient(
|
|
process.env.NEXT_PUBLIC_SUPABASE_URL!,
|
|
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
|
|
)
|
|
}
|
|
|
|
return _supabase
|
|
}
|