2023-08-24 22:56:40 +07:00
import { GlobalConfiguration } from "../cfg"
2024-02-05 11:57:10 +07:00
import { ValidLocale } from "../i18n"
2023-08-24 22:56:40 +07:00
import { QuartzPluginData } from "../plugins/vfile"
2023-07-01 14:03:01 +07:00
interface Props {
date : Date
2024-02-05 11:57:10 +07:00
locale? : ValidLocale
2023-07-01 14:03:01 +07:00
}
2023-08-24 22:56:40 +07:00
export type ValidDateType = keyof Required < QuartzPluginData > [ "dates" ]
export function getDate ( cfg : GlobalConfiguration , data : QuartzPluginData ) : Date | undefined {
2023-08-24 23:17:43 +07:00
if ( ! cfg . defaultDateType ) {
2023-08-25 00:03:14 +07: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 23:17:43 +07:00
}
2023-08-24 22:56:40 +07:00
return data . dates ? . [ cfg . defaultDateType ]
}
2024-02-05 11:57:10 +07:00
export function formatDate ( d : Date , locale : ValidLocale = "en-US" ) : string {
2024-01-29 13:13:59 +07:00
return d . toLocaleDateString ( locale , {
2023-07-01 14:03:01 +07:00
year : "numeric" ,
month : "short" ,
2023-07-23 07:27:41 +07:00
day : "2-digit" ,
2023-07-01 14:03:01 +07:00
} )
2023-08-09 11:28:09 +07:00
}
2024-01-29 13:13:59 +07:00
export function Date ( { date , locale } : Props ) {
return < > { formatDate ( date , locale ) } < / >
2023-07-01 14:03:01 +07:00
}