diff --git a/.github/workflows/prettier.yml b/.github/workflows/prettier.yml index 8f36d889f4..b42c8cc6b8 100644 --- a/.github/workflows/prettier.yml +++ b/.github/workflows/prettier.yml @@ -21,8 +21,10 @@ jobs: uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 with: sparse-checkout: | - apps - patches + apps + packages + blocks + patches - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 name: Install pnpm with: diff --git a/apps/docs/content/guides/database/replication/replication-faq.mdx b/apps/docs/content/guides/database/replication/replication-faq.mdx index 967c4022be..da6710c363 100644 --- a/apps/docs/content/guides/database/replication/replication-faq.mdx +++ b/apps/docs/content/guides/database/replication/replication-faq.mdx @@ -19,6 +19,7 @@ Replication currently supports **BigQuery** as the only managed destination. See We are working on adding more destinations in the future. Availability may continue to vary based on the planned roll-out strategy. {/* supa-mdx-lint-disable-next-line Rule001HeadingCase */} + ## What happened to Analytics Buckets replication? We are currently working on a new Supabase Warehouse product designed to address the limitations of the previous Analytics Buckets. Our goal is to build a solution we can confidently stand behind, rather than continuing to support an approach that does not meet the quality and flexibility we want for our users. diff --git a/apps/docs/content/guides/functions/recursive-functions.mdx b/apps/docs/content/guides/functions/recursive-functions.mdx index aca4a2bac6..e77c2f8d83 100644 --- a/apps/docs/content/guides/functions/recursive-functions.mdx +++ b/apps/docs/content/guides/functions/recursive-functions.mdx @@ -44,10 +44,7 @@ When the rate limit is exceeded, calling another Edge Function throws a `RateLim ```typescript import { createClient } from 'jsr:@supabase/supabase-js@2' -const supabase = createClient( - Deno.env.get('SUPABASE_URL')!, - Deno.env.get('SUPABASE_ANON_KEY')! -) +const supabase = createClient(Deno.env.get('SUPABASE_URL')!, Deno.env.get('SUPABASE_ANON_KEY')!) Deno.serve(async (req) => { try { @@ -87,17 +84,14 @@ Deno.serve(async (req) => { ```typescript Deno.serve(async (req) => { try { - const response = await fetch( - `${Deno.env.get('SUPABASE_URL')}/functions/v1/other-function`, - { - method: 'POST', - headers: { - Authorization: `Bearer ${Deno.env.get('SUPABASE_ANON_KEY')}`, - 'Content-Type': 'application/json', - }, - body: JSON.stringify({ foo: 'bar' }), - } - ) + const response = await fetch(`${Deno.env.get('SUPABASE_URL')}/functions/v1/other-function`, { + method: 'POST', + headers: { + Authorization: `Bearer ${Deno.env.get('SUPABASE_ANON_KEY')}`, + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ foo: 'bar' }), + }) return response } catch (err) { if (err instanceof Deno.errors.RateLimitError) { @@ -136,16 +130,9 @@ You can also use `retryAfterMs` to implement automatic retries within your funct ```typescript import { createClient } from 'jsr:@supabase/supabase-js@2' -const supabase = createClient( - Deno.env.get('SUPABASE_URL')!, - Deno.env.get('SUPABASE_ANON_KEY')! -) +const supabase = createClient(Deno.env.get('SUPABASE_URL')!, Deno.env.get('SUPABASE_ANON_KEY')!) -async function invokeWithRetry( - functionName: string, - payload: object, - maxRetries = 3 -) { +async function invokeWithRetry(functionName: string, payload: object, maxRetries = 3) { for (let attempt = 0; attempt < maxRetries; attempt++) { try { const { data, error } = await supabase.functions.invoke(functionName, { @@ -279,15 +266,15 @@ async function processWithDelay(items: any[]) { ## Common patterns and their impact -| Pattern | Budget consumption | Recommendation | -| --- | --- | --- | -| Simple chain (A to B to C) | Low | Generally safe | -| Fan-out (A to B, C, D, E) | Moderate | Limit concurrency | -| Deep recursion (A to A to A...) | High | Set max depth | -| Unbounded loops | Very high | Avoid, use queues | +| Pattern | Budget consumption | Recommendation | +| ------------------------------- | ------------------ | ----------------- | +| Simple chain (A to B to C) | Low | Generally safe | +| Fan-out (A to B, C, D, E) | Moderate | Limit concurrency | +| Deep recursion (A to A to A...) | High | Set max depth | +| Unbounded loops | Very high | Avoid, use queues | ## Increasing rate limits Currently, all plans have the same rate limit budget. We are working on introducing custom limits for different use cases. -If you need a higher rate limit for your project, [contact support](/dashboard/support/new) with details about your use case. +If you need a higher rate limit for your project, [contact support](/dashboard/support/new) with details about your use case. diff --git a/apps/ui-library/content/docs/nuxtjs/current-user-avatar.mdx b/apps/ui-library/content/docs/nuxtjs/current-user-avatar.mdx index e6f1ca864e..29fe776f34 100644 --- a/apps/ui-library/content/docs/nuxtjs/current-user-avatar.mdx +++ b/apps/ui-library/content/docs/nuxtjs/current-user-avatar.mdx @@ -27,11 +27,11 @@ property which gets populated automatically by Supabase Auth if the user logged The `CurrentUserAvatar` component is designed to be used anywhere in your app. Add the `` component to your page and it will render the avatar of the current user, with a fallback. -```html +```vue