@ministryofjustice/hmpps-digital-prison-reporting-frontend
Version:
The Digital Prison Reporting Frontend contains templates and code to help display data effectively in UI applications.
32 lines (26 loc) • 936 B
text/typescript
import nunjucks from 'nunjucks'
import nunjucksDate from 'nunjucks-date'
import { FilterOption } from './components/_filters/filter-input/types'
const setUpNunjucksFilters = (env: nunjucks.Environment) => {
env.addFilter('addRequiredAttributeToAll', addRequiredAttributeToAll)
env.addFilter('json', stringifyJson)
env.addFilter('capitaliseSentence', capitaliseSentence)
nunjucksDate.setDefaultFormat('DD/MM/YYYY')
nunjucksDate.install(env, 'dprDate')
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const stringifyJson = (jsonObj: any) => {
return JSON.stringify(jsonObj, null, 2)
}
const capitaliseSentence = (text: string) => {
return text.charAt(0).toUpperCase() + text.substring(1).toLowerCase()
}
const addRequiredAttributeToAll = (items: Array<FilterOption>) => {
return items.map((i) => ({
...i,
attributes: {
required: true,
},
}))
}
export default setUpNunjucksFilters