32 lines
921 B
TypeScript
Raw Normal View History

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