@@ -2205,7 +2205,7 @@ var ReactDOMServerRenderer = function () {
2205
2205
// TODO: type this more strictly:
2206
2206
2207
2207
2208
- ReactDOMServerRenderer . prototype . read = async function read ( bytes , cache ) {
2208
+ ReactDOMServerRenderer . prototype . read = async function read ( bytes , cache , memLife ) {
2209
2209
// Promisify the get method, which is asynchronous for Redis
2210
2210
const getAsync = promisify ( cache . get ) . bind ( cache ) ;
2211
2211
let continueLoop = true ;
@@ -2281,7 +2281,13 @@ var ReactDOMServerRenderer = function () {
2281
2281
} while ( tagStack . length !== 0 ) ;
2282
2282
2283
2283
// cache component by slicing 'out'
2284
- cache . set ( cacheKey , out . slice ( start [ cacheKey ] , tagEnd ) , 1000 , ( err ) => console . log ( err ) ) ;
2284
+ if ( memLife ) {
2285
+ cache . set ( cacheKey , out . slice ( start [ cacheKey ] , tagEnd ) , memLife , ( err ) => {
2286
+ if ( err ) console . log ( err )
2287
+ } ) ;
2288
+ } else {
2289
+ cache . set ( cacheKey , out . slice ( start [ cacheKey ] , tagEnd ) ) ;
2290
+ }
2285
2291
}
2286
2292
return out ;
2287
2293
} ;
@@ -2540,9 +2546,10 @@ var ReactDOMServerRenderer = function () {
2540
2546
* server.
2541
2547
* See https://reactjs.org/docs/react-dom-server.html#rendertostring
2542
2548
*/
2543
- async function renderToString ( element , cache ) {
2549
+ async function renderToString ( element , cache , memLife = 0 ) {
2550
+ // If and only if using memcached, pass the lifetime of your cache entry (in seconds) into 'memLife'.
2544
2551
var renderer = new ReactDOMServerRenderer ( element , false ) ;
2545
- var markup = await renderer . read ( Infinity , cache ) ;
2552
+ var markup = await renderer . read ( Infinity , cache , memLife ) ;
2546
2553
return markup ;
2547
2554
}
2548
2555
0 commit comments