mirror of
https://github.com/nodejs/node.git
synced 2025-05-15 16:01:52 +00:00

PR-URL: https://github.com/nodejs/node/pull/35474 Reviewed-By: Ruy Adorno <ruyadorno@github.com> Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org> Reviewed-By: Ben Coe <bencoe@gmail.com> Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Shelley Vohr <codebytere@gmail.com> Reviewed-By: Guy Bedford <guybedford@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
27 lines
846 B
JavaScript
27 lines
846 B
JavaScript
'use strict'
|
|
|
|
const isHeaderConditional = require('./is-header-conditional')
|
|
// Default cacache-based cache
|
|
const Cache = require('../cache')
|
|
|
|
module.exports = function initializeCache (opts) {
|
|
/**
|
|
* NOTE: `opts.cacheManager` is the path to cache
|
|
* We're making the assumption that if `opts.cacheManager` *isn't* a string,
|
|
* it's a cache object
|
|
*/
|
|
if (typeof opts.cacheManager === 'string') {
|
|
// Need to make a cache object
|
|
opts.cacheManager = new Cache(opts.cacheManager, opts)
|
|
}
|
|
|
|
opts.cache = opts.cache || 'default'
|
|
|
|
if (opts.cache === 'default' && isHeaderConditional(opts.headers)) {
|
|
// If header list contains `If-Modified-Since`, `If-None-Match`,
|
|
// `If-Unmodified-Since`, `If-Match`, or `If-Range`, fetch will set cache
|
|
// mode to "no-store" if it is "default".
|
|
opts.cache = 'no-store'
|
|
}
|
|
}
|