mirror of https://github.com/Chocobozzz/PeerTube
33 lines
799 B
TypeScript
33 lines
799 B
TypeScript
|
import { HttpStatusCode } from '../../../shared/models/http/http-error-codes'
|
||
|
import { Redis } from '../../lib/redis'
|
||
|
import { ApiCache, APICacheOptions } from './shared'
|
||
|
|
||
|
// Ensure Redis is initialized
|
||
|
Redis.Instance.init()
|
||
|
|
||
|
const defaultOptions: APICacheOptions = {
|
||
|
excludeStatus: [
|
||
|
HttpStatusCode.FORBIDDEN_403,
|
||
|
HttpStatusCode.NOT_FOUND_404
|
||
|
]
|
||
|
}
|
||
|
|
||
|
function cacheRoute (duration: string) {
|
||
|
const instance = new ApiCache(defaultOptions)
|
||
|
|
||
|
return instance.buildMiddleware(duration)
|
||
|
}
|
||
|
|
||
|
function cacheRouteFactory (options: APICacheOptions) {
|
||
|
const instance = new ApiCache({ ...defaultOptions, ...options })
|
||
|
|
||
|
return instance.buildMiddleware.bind(instance)
|
||
|
}
|
||
|
|
||
|
// ---------------------------------------------------------------------------
|
||
|
|
||
|
export {
|
||
|
cacheRoute,
|
||
|
cacheRouteFactory
|
||
|
}
|