2023-08-24 15:56:40 +00:00
import { GlobalConfiguration } from "../cfg"
import { QuartzPluginData } from "../plugins/vfile"
2023-07-01 07:03:01 +00:00
interface Props {
date : Date
2024-01-29 06:13:59 +00:00
locale? : string
2023-07-01 07:03:01 +00:00
}
2023-08-24 15:56:40 +00:00
export type ValidDateType = keyof Required < QuartzPluginData > [ "dates" ]
export function getDate ( cfg : GlobalConfiguration , data : QuartzPluginData ) : Date | undefined {
2023-08-24 16:17:43 +00:00
if ( ! cfg . defaultDateType ) {
2023-08-24 17:03:14 +00:00
throw new Error (
` Field 'defaultDateType' was not set in the configuration object of quartz.config.ts. See https://quartz.jzhao.xyz/configuration#general-configuration for more details. ` ,
)
2023-08-24 16:17:43 +00:00
}
2023-08-24 15:56:40 +00:00
return data . dates ? . [ cfg . defaultDateType ]
}
2024-01-29 06:13:59 +00:00
export function formatDate ( d : Date , locale = "en-US" ) : string {
return d . toLocaleDateString ( locale , {
2023-07-01 07:03:01 +00:00
year : "numeric" ,
month : "short" ,
2023-07-23 00:27:41 +00:00
day : "2-digit" ,
2023-07-01 07:03:01 +00:00
} )
2023-08-09 04:28:09 +00:00
}
2024-01-29 06:13:59 +00:00
export function Date ( { date , locale } : Props ) {
return < > { formatDate ( date , locale ) } < / >
2023-07-01 07:03:01 +00:00
}