39 lines
957 B
TypeScript
39 lines
957 B
TypeScript
import { HttpStatusCode } from '../../../shared/models/http/http-error-codes'
|
|
import { ApiCache, APICacheOptions } from './shared'
|
|
|
|
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, middleware: instance.buildMiddleware.bind(instance) }
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
function buildPodcastGroupsCache (options: {
|
|
channelId: number
|
|
}) {
|
|
return 'podcast-feed-' + options.channelId
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
export {
|
|
cacheRoute,
|
|
cacheRouteFactory,
|
|
|
|
buildPodcastGroupsCache
|
|
}
|