UNPKG

nestjs-api-tools

Version:

Wrappers for convenient API development including validation, logging and i18n wrappers

27 lines (20 loc) 923 B
import {DateTime} from 'luxon'; import {ValueTransformer} from 'typeorm'; import {parseDateTime} from '../utils'; export class DateTimeTransformer implements ValueTransformer { public from(value: DateTime | Date | string | number): any { return parseDateTime(value); } public to(value: DateTime | Date | string): any { const format = 'yyyy-MM-dd HH:mm:ssZ'; if (value instanceof DateTime) { return value.toFormat(format); } if (value instanceof Date) { return DateTime.fromJSDate(value).toFormat(format); } if (!value || value.toString().match(/^([+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([.,]\d+(?!:))?)?(\17[0-5]\d([.,]\d+)?)?([zZ]|([+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/)) { return value as string; } } }