integreat-io/integreat

View on GitHub
src/schema/castFns/date.ts

Summary

Maintainability
A
35 mins
Test Coverage
import { isDate } from '../../utils/is.js'

export default function castDate(value: unknown): Date | null | undefined {
  if (value === null || value === undefined) {
    return value
  } else if (
    isDate(value) ||
    typeof value === 'string' ||
    typeof value === 'number'
  ) {
    const date = new Date(value)
    return !date || isNaN(date.getTime()) ? undefined : date
  } else {
    return undefined
  }
}