22 lines
655 B
TypeScript
22 lines
655 B
TypeScript
import type { Config } from 'src/payload-types'
|
|
import configPromise from '@payload-config'
|
|
import { getPayload } from 'payload'
|
|
import { unstable_cache } from 'next/cache'
|
|
|
|
type Global = keyof Config['globals']
|
|
|
|
async function getGlobal(slug: Global, depth = 0, locale = 'sv') {
|
|
const payload = await getPayload({ config: configPromise })
|
|
const global = await payload.findGlobal({
|
|
slug,
|
|
depth,
|
|
locale: locale as 'sv' | 'en',
|
|
})
|
|
return global
|
|
}
|
|
|
|
export const getCachedGlobal = (slug: Global, depth = 0, locale = 'sv') =>
|
|
unstable_cache(async () => getGlobal(slug, depth, locale), [slug, locale], {
|
|
tags: [`global_${slug}`],
|
|
})
|