Files
payload/examples/custom-server/src/utilities/formatSlug.ts
2023-06-28 16:35:41 -04:00

25 lines
549 B
TypeScript

import type { FieldHook } from 'payload/types'
const format = (val: string): string =>
val
.replace(/ /g, '-')
.replace(/[^\w-/]+/g, '')
.toLowerCase()
const formatSlug =
(fallback: string): FieldHook =>
({ value, originalDoc, data }) => {
if (typeof value === 'string') {
return format(value)
}
const fallbackData = data?.[fallback] || originalDoc?.[fallback]
if (fallbackData && typeof fallbackData === 'string') {
return format(fallbackData)
}
return value
}
export default formatSlug