generateRegexpWhere() — supabase Function Reference
Architecture documentation for the generateRegexpWhere() function in Reports.constants.ts from the supabase codebase.
Entity Profile
Relationship Graph
Source Code
apps/studio/components/interfaces/Reports/Reports.constants.ts lines 81–129
export const generateRegexpWhere = (filters: ReportFilterItem[], prepend = true) => {
if (filters.length === 0) return ''
const conditions = filters
.map((filter) => {
const splitKey = filter.key.split('.')
const normalizedKey = [splitKey[splitKey.length - 2], splitKey[splitKey.length - 1]].join('.')
const filterKey = filter.key.includes('.') ? normalizedKey : filter.key
const hasQuotes =
filter.value.toString().includes('"') || filter.value.toString().includes("'")
const valueIsNumber = !isNaN(Number(filter.value))
const valueWithQuotes = !valueIsNumber && hasQuotes ? filter.value : `'${filter.value}'`
const lowercaseValue = !valueIsNumber && String(valueWithQuotes).toLowerCase()
const finalValue = valueIsNumber ? filter.value : lowercaseValue
// Handle different comparison operators
switch (filter.compare) {
case 'matches':
return `REGEXP_CONTAINS(${filterKey}, ${finalValue})`
case 'is':
return `${filterKey} = ${finalValue}`
case '!=':
return `${filterKey} != ${finalValue}`
case '>=':
return `${filterKey} >= ${finalValue}`
case '<=':
return `${filterKey} <= ${finalValue}`
case '>':
return `${filterKey} > ${finalValue}`
case '<':
return `${filterKey} < ${finalValue}`
default:
// Fallback to exact match for unknown operators
return `${filterKey} = ${finalValue}`
}
})
.filter(Boolean) // Remove any null/undefined conditions
.join(' AND ')
if (conditions === '') return ''
if (prepend) {
return 'WHERE ' + conditions
} else {
return 'AND ' + conditions
}
}
Domain
Subdomains
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free