47 lines
No EOL
1.1 KiB
JavaScript
47 lines
No EOL
1.1 KiB
JavaScript
import { createClient } from '@supabase/supabase-js'
|
|
import { parseCountryField } from '../../config/utilities/index.js'
|
|
|
|
const SUPABASE_URL = process.env.SUPABASE_URL
|
|
const SUPABASE_KEY = process.env.SUPABASE_KEY
|
|
const supabase = createClient(SUPABASE_URL, SUPABASE_KEY)
|
|
const PAGE_SIZE = 1000
|
|
|
|
const fetchAllArtists = async () => {
|
|
let artists = []
|
|
let rangeStart = 0
|
|
|
|
while (true) {
|
|
const { data, error } = await supabase
|
|
.from('optimized_artists')
|
|
.select('*')
|
|
.range(rangeStart, rangeStart + PAGE_SIZE - 1)
|
|
|
|
if (error) {
|
|
console.error('Error fetching artists:', error)
|
|
break
|
|
}
|
|
|
|
artists = artists.concat(data)
|
|
if (data.length < PAGE_SIZE) break
|
|
rangeStart += PAGE_SIZE
|
|
}
|
|
|
|
return artists
|
|
}
|
|
|
|
const processArtists = (artists) => {
|
|
return artists.map(artist => ({
|
|
...artist,
|
|
country: parseCountryField(artist['country']),
|
|
}))
|
|
}
|
|
|
|
export default async function () {
|
|
try {
|
|
const artists = await fetchAllArtists()
|
|
return processArtists(artists)
|
|
} catch (error) {
|
|
console.error('Error fetching and processing artists data:', error)
|
|
return []
|
|
}
|
|
} |