Skip to content

Commit 4a127b4

Browse files
fix(config): allow to override cache key per request (lisaogren#237)
1 parent cf87190 commit 4a127b4

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/config.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,13 @@ const mergeRequestConfig = function (config, req) {
105105
mergedConfig.debug = debug
106106
}
107107

108+
// Create a cache key method
109+
if (requestConfig.key) {
110+
mergedConfig.key = key(requestConfig)
111+
}
112+
108113
// Generate request UUID
109-
mergedConfig.uuid = config.key(req)
114+
mergedConfig.uuid = mergedConfig.key(req)
110115

111116
config.debug(`Request config for ${req.url}`, mergedConfig)
112117

test/spec/config.spec.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/* globals describe it */
22

33
import assert from 'assert'
4+
import isFunction from 'lodash/isFunction'
45

56
import config from 'src/config'
67

@@ -54,7 +55,8 @@ describe('Per request config', () => {
5455
const mergedConfig = config.mergeRequestConfig(globalConfig, fakeRequest)
5556

5657
assert.strictEqual(mergedConfig.maxAge, requestConfig.maxAge)
57-
assert.strictEqual(mergedConfig.key, requestConfig.key)
58+
assert.ok(isFunction(mergedConfig.key))
59+
assert.strictEqual(mergedConfig.key({ url: 'url' }), 'myKey/url')
5860
assert.deepStrictEqual(mergedConfig.exclude, {
5961
...globalConfig.exclude,
6062
...requestConfig.exclude

0 commit comments

Comments
 (0)