@@ -4,7 +4,6 @@ const createCompress = require('compress-brotli')
44const memoize = require ( '@keyvhq/memoize' )
55const Keyv = require ( '@keyvhq/core' )
66const assert = require ( 'assert' )
7- const getEtag = require ( 'etag' )
87
98const { createKey, isFunction, setHeaders, size } = require ( './util' )
109
@@ -34,11 +33,14 @@ const cacheableResponse = ({
3433 ...compressOpts
3534 } )
3635
37- const get = opts => Promise . resolve ( rawGet ( opts ) ) . then ( result => {
38- if ( typeof result !== 'object' ) return result
39- result . etag = getEtag ( serialize ( result ) )
40- return result
41- } )
36+ const getEtag = input => require ( 'etag' ) ( serialize ( input ) )
37+
38+ const get = opts =>
39+ Promise . resolve ( rawGet ( opts ) ) . then ( result => {
40+ if ( typeof result !== 'object' ) return result
41+ result . etag = getEtag ( result )
42+ return result
43+ } )
4244
4345 const memoGet = memoize ( get , cache , {
4446 key : getKey ,
@@ -48,7 +50,7 @@ const cacheableResponse = ({
4850 value : compress
4951 } )
5052
51- return async opts => {
53+ const fn = async opts => {
5254 const { req, res } = opts
5355 const [ raw , { forceExpiration, hasValue, key, isExpired, isStale } ] =
5456 await memoGet ( opts )
@@ -61,7 +63,7 @@ const cacheableResponse = ({
6163 const {
6264 createdAt = Date . now ( ) ,
6365 data = null ,
64- etag = getEtag ( serialize ( result ) ) ,
66+ etag = getEtag ( result ) ,
6567 staleTtl = memoGet . staleTtl ( result ) ,
6668 ttl = memoGet . ttl ( result ) ,
6769 ...props
@@ -101,6 +103,10 @@ const cacheableResponse = ({
101103
102104 return send ( { data, res, req, ...props } )
103105 }
106+
107+ fn . getEtag = getEtag
108+ return fn
104109}
105110
106111module . exports = cacheableResponse
112+ module . exports . setHeaders = setHeaders
0 commit comments