From f95bf8508f707b0c08e288be645249ecd4f02375 Mon Sep 17 00:00:00 2001 From: David Wennemaring Date: Fri, 4 Dec 2020 12:49:54 +0100 Subject: [PATCH] fix(subscriptions): added parser to Redis to handle Dates --- src/pubSub/pubSub.module.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/pubSub/pubSub.module.ts b/src/pubSub/pubSub.module.ts index d9fc614f2..ab4689c6d 100644 --- a/src/pubSub/pubSub.module.ts +++ b/src/pubSub/pubSub.module.ts @@ -4,6 +4,17 @@ import Redis from 'ioredis'; import { ConfigModule } from '../config/config.module'; import { ConfigService } from '../config/config.service'; +const dateReviver = (key, value) => { + const isISO8601Z = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/; + if (typeof value === 'string' && isISO8601Z.test(value)) { + const tempDateNumber = Date.parse(value); + if (!Number.isNaN(tempDateNumber)) { + return new Date(tempDateNumber); + } + } + return value; +}; + @Module({ imports: [ConfigModule], providers: [ @@ -19,6 +30,7 @@ import { ConfigService } from '../config/config.service'; host: configService.get('REDIS_HOST_READ'), port: configService.get('REDIS_PORT_READ'), }), + reviver: dateReviver, }), }, ],