import * as express from 'express'
import * as AsyncLock from 'async-lock'
-import { parseDuration } from '../helpers/core-utils'
+import { parseDurationToMs } from '../helpers/core-utils'
import { Redis } from '../lib/redis'
import { logger } from '../helpers/logger'
const lock = new AsyncLock({ timeout: 5000 })
function cacheRoute (lifetimeArg: string | number) {
+ const lifetime = parseDurationToMs(lifetimeArg)
+
return async function (req: express.Request, res: express.Response, next: express.NextFunction) {
const redisKey = Redis.Instance.generateCachedRouteKey(req)
res.send = (body) => {
if (res.statusCode >= 200 && res.statusCode < 400) {
const contentType = res.get('content-type')
- const lifetime = parseDuration(lifetimeArg)
Redis.Instance.setCachedRoute(req, body, lifetime, contentType, res.statusCode)
.then(() => done())