refactor(date-converter): mutualised and dry-ed code

This commit is contained in:
Evo Stamatov 2022-05-11 22:06:39 +10:00 committed by GitHub
parent 0cc7af6b1d
commit d2c767f092
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -83,46 +83,54 @@ function onDateInputChanged(value: string) {
} }
} }
const formats = [ type Format = {
name: string;
fromDate: (date: Date) => string;
toDate: (value: string) => Date;
};
const toDate: Format['toDate'] = (date) => new Date(date);
const formats: Format[] = [
{ {
name: 'JS locale date string', name: 'JS locale date string',
fromDate: (date: Date) => date.toString(), fromDate: (date) => date.toString(),
toDate: (date: string) => new Date(date), toDate,
}, },
{ {
name: 'ISO 8601', name: 'ISO 8601',
fromDate: (date: Date) => formatISO(date), fromDate: formatISO,
toDate: (date: string) => parseISO(date), toDate: parseISO,
}, },
{ {
name: 'ISO 9075', name: 'ISO 9075',
fromDate: (date: Date) => formatISO9075(date), fromDate: formatISO9075,
toDate: (date: string) => parseISO(date), toDate: parseISO,
}, },
{ {
name: 'RFC 3339', name: 'RFC 3339',
fromDate: (date: Date) => formatRFC3339(date), fromDate: formatRFC3339,
toDate: (date: string) => new Date(date), toDate,
}, },
{ {
name: 'RFC 7231', name: 'RFC 7231',
fromDate: (date: Date) => formatRFC7231(date), fromDate: formatRFC7231,
toDate: (date: string) => new Date(date), toDate,
}, },
{ {
name: 'Timestamp', name: 'Timestamp',
fromDate: (date: Date) => String(getTime(date)), fromDate: (date) => String(getTime(date)),
toDate: (ms: string) => parseJSON(+ms), toDate: (ms) => parseJSON(+ms),
}, },
{ {
name: 'Unix timestamp', name: 'Unix timestamp',
fromDate: (date: Date) => String(getUnixTime(date)), fromDate: (date) => String(getUnixTime(date)),
toDate: (sec: string) => fromUnixTime(+sec), toDate: (sec) => fromUnixTime(+sec),
}, },
{ {
name: 'UTC format', name: 'UTC format',
fromDate: (date: Date) => date.toUTCString(), fromDate: (date) => date.toUTCString(),
toDate: (date: string) => new Date(date), toDate,
}, },
]; ];
</script> </script>