mirror of
https://github.com/supabase/supabase.git
synced 2026-10-19 16:19:10 +03:00
* feat: sql-to-rest poc * feat: sql-to-supabase-js poc * chore: upgrade to libpg-query@15 * feat: sql-to-rest docs tool * docs(sql-to-rest): add introduction * docs: wording improvements * fix: theme * chore: tailwind placeholder * feat(sql-to-rest): limit, offset, and range * feat(sql-to-rest): sort by * fix(sql-to-rest): ui theme * feat(sql-to-rest): casts * feat(sql-to-rest): dynamic faqs in ui * feat(sql-to-rest): improve ui responsiveness * feat(sql-to-rest): more advanced faqs in ui * feat(sql-to-rest): http and curl syntax highlighting * feat(sql-to-rest): baseUrl in http/curl rendering * docs(sql-to-rest): clarification on curl flags * feat(sql-to-rest): more faqs * refactor(sql-to-rest): split faqs into own file * refactor(sql-to-rest): move formatters to sql-to-rest package * docs(sql-to-rest): move page to new tools section * feat(sql-to-rest): joins and resource embeddings * chore(sql-to-rest): rename 'convert' to 'translate' * feat(sql-to-rest): add faqs * feat(sql-to-rest): ui improvements * feat(sql-to-rest): faq title adjustment * feat(sql-to-rest): link to client lib docs * feat(sql-to-rest): assumptions * feat(sql-to-rest): friendly 'not supported yet' errors * feat(sql-to-rest): json columns * feat(sql-to-rest): remove curl -G flag if unused * feat(sql-to-rest): better error handling * chore: revert accidental rls ai work * fix: build errors * fix(sql-to-rest): theme * feat(sql-to-rest): change base url * feat(sql-to-rest): basic aggregate poc * feat(sql-to-rest): group by * feat(sql-to-rest): more group by checks * feat(sql-to-rest): count(*) special case * fix(sql-to-rest): tests * feat(sql-to-rest): faq on 'and' operator * fix(sql-to-rest): error messages * fix(sql-to-rest): multiple filters on same column * refactor(sql-to-rest): error hints * feat(sql-to-rest): match and imatch * feat(sql-to-rest): in operator * feat(sql-to-rest): parsing error hints * feat(sql-to-rest): default language to curl * feat(sql-to-rest): format on cmd+s * feat(sql-to-rest): format initial value * fix(sql-to-rest): turn off tab query group * feat(sql-to-rest): improve wording in error messages * feat(sql-to-rest): animated code blocks * feat(sql-to-rest): more error hints * fix(sql-to-rest): strip primary relation prefix from columns * feat(sql-to-rest): json column in order by clause * feat(sql-to-rest): validate all referenced relations exist in from clause * refactor(sql-to-rest): split core sql-to-rest lib into separate repo * feat(sql-to-rest): upgrade to v0.1.1 * feat(sql-to-rest): upgrade to v0.1.2 * feat(sql-to-rest): upgrade to v0.1.4 * chore: upgrade libpg-query * feat: update 'create a pr' link * fix: app builds * fix: prettier * fix: typecheck * fix: studio tests * chore: remove console.log Co-authored-by: Charis <26616127+charislam@users.noreply.github.com> * docs(sql-to-rest): remove broken link to client libraries --------- Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>
30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
import { EmbeddedTarget, flattenTargets } from '@supabase/sql-to-rest'
|
|
import { ResultBundle } from './util'
|
|
|
|
export type Assumption = {
|
|
id: string
|
|
condition: (result: ResultBundle) => boolean
|
|
assumptions: (result: ResultBundle) => string[]
|
|
}
|
|
|
|
export const assumptions: Assumption[] = [
|
|
{
|
|
id: 'join-assumptions',
|
|
condition: ({ statement }) =>
|
|
// Show this if there is at least one resource embedding
|
|
statement.targets.some((target) => target.type === 'embedded-target'),
|
|
assumptions: ({ statement }) => {
|
|
const flattenedTargets = flattenTargets(statement.targets)
|
|
|
|
const embeddedTargets = flattenedTargets.filter(
|
|
(target): target is EmbeddedTarget => target.type === 'embedded-target'
|
|
)
|
|
|
|
return embeddedTargets.map(
|
|
(t) =>
|
|
`There is a [foreign key](https://postgrest.org/en/latest/references/api/resource_embedding.html#foreign-key-joins) relationship between \`${t.joinedColumns.left.relation}.${t.joinedColumns.left.column}\` and \`${t.joinedColumns.right.relation}.${t.joinedColumns.right.column}\``
|
|
)
|
|
},
|
|
},
|
|
]
|