mirror of
https://github.com/supabase/supabase.git
synced 2026-07-07 06:24:18 +08:00
* Deprecate getAPIKeys from project settings v2, use new api keys endpoint instead * use getPreferredKeys where appropriate * Prevent usage of secret key for storage and realtime inspector * Add dashboard API api-keys endpoint * Simplify * Disable edge functions test if legacy api keys are disabled * Revert * Fix graphiql * Remove all usage of api keys from project settings, except DisplayApiSettings * Update * Fix * Small fix for an undefined upload url. * Fix the storage state initialization when the resumable url changes. --------- Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
71 lines
1.9 KiB
TypeScript
71 lines
1.9 KiB
TypeScript
interface InvocationTab {
|
|
id: string
|
|
label: string
|
|
language: 'bash' | 'js' | 'ts' | 'dart' | 'python'
|
|
hideLineNumbers?: boolean
|
|
code: (functionUrl: string, functionName: string, apiKey: string) => string
|
|
}
|
|
|
|
export const INVOCATION_TABS: InvocationTab[] = [
|
|
{
|
|
id: 'curl',
|
|
label: 'cURL',
|
|
language: 'bash',
|
|
code: (functionUrl, _, apiKey) => `curl -L -X POST '${functionUrl}' \\
|
|
-H 'Authorization: Bearer ${apiKey}' \\ ${apiKey.includes('publishable') ? `\n -H 'apikey: ${apiKey}' \\` : ''}
|
|
-H 'Content-Type: application/json' \\
|
|
--data '{"name":"Functions"}'`,
|
|
},
|
|
{
|
|
id: 'supabase-js',
|
|
label: 'JavaScript',
|
|
language: 'js',
|
|
hideLineNumbers: true,
|
|
code: (_, functionName) => `import { createClient } from '@supabase/supabase-js'
|
|
const supabase = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_ANON_KEY)
|
|
const { data, error } = await supabase.functions.invoke('${functionName}', {
|
|
body: { name: 'Functions' },
|
|
})`,
|
|
},
|
|
{
|
|
id: 'swift',
|
|
label: 'Swift',
|
|
language: 'ts',
|
|
hideLineNumbers: true,
|
|
code: (_, functionName) => `struct Response: Decodable {
|
|
// Expected response definition
|
|
}
|
|
|
|
let response: Response = try await supabase.functions
|
|
.invoke(
|
|
"${functionName}",
|
|
options: FunctionInvokeOptions(
|
|
body: ["name": "Functions"]
|
|
)
|
|
)`,
|
|
},
|
|
{
|
|
id: 'flutter',
|
|
label: 'Flutter',
|
|
language: 'dart',
|
|
hideLineNumbers: true,
|
|
code: (
|
|
_,
|
|
functionName
|
|
) => `final res = await supabase.functions.invoke('${functionName}', body: {'name': 'Functions'});
|
|
final data = res.data;`,
|
|
},
|
|
{
|
|
id: 'python',
|
|
label: 'Python',
|
|
language: 'python',
|
|
hideLineNumbers: true,
|
|
code: (_, functionName) => `response = supabase.functions.invoke(
|
|
"${functionName}",
|
|
invoke_options={"body": {"name": "Functions"}}
|
|
)`,
|
|
},
|
|
]
|
|
|
|
export const HTTP_METHODS = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'OPTIONS'] as const
|