@@ -27,6 +27,7 @@ var checkPropTypes = require('prop-types/checkPropTypes');
27
27
var camelizeStyleName = require ( 'fbjs/lib/camelizeStyleName' ) ;
28
28
var stream = require ( 'stream' ) ;
29
29
var lru = require ( 'lru-cache' ) ;
30
+ var redis = require ( 'redis' ) ;
30
31
31
32
/**
32
33
* WARNING: DO NOT manually require this module.
@@ -2235,15 +2236,19 @@ var ReactDOMServerRenderer = function () {
2235
2236
}
2236
2237
2237
2238
// CACHING LOGIC: EXECUTES IF THE CHILD HAS A 'CACHE' PROP ON IT
2238
- if ( child . props . cache ) {
2239
+ if ( child . props && child . props . cache ) {
2239
2240
const cacheKey = child . type . name + JSON . stringify ( child . props ) ;
2240
- // console.log(cache.get(cacheKey));
2241
- if ( ! cache . get ( cacheKey ) ) {
2242
- start [ cacheKey ] = out . length ;
2243
- out += this . render ( child , frame . context , frame . domNamespace ) ;
2244
- } else {
2245
- out += cache . get ( cacheKey ) ;
2246
- }
2241
+
2242
+ // get method will run callback
2243
+ cache . get ( cacheKey , ( err , reply ) => {
2244
+ if ( reply ) {
2245
+ out += reply ;
2246
+ } else {
2247
+ start [ cacheKey ] = out . length ;
2248
+ out += this . render ( child , frame . context , frame . domNamespace ) ;
2249
+ }
2250
+ } ) ;
2251
+
2247
2252
} else {
2248
2253
out += this . render ( child , frame . context , frame . domNamespace ) ;
2249
2254
}
@@ -2253,13 +2258,13 @@ var ReactDOMServerRenderer = function () {
2253
2258
}
2254
2259
}
2255
2260
2256
- for ( let component in start ) {
2261
+ for ( let cacheKey in start ) {
2257
2262
let tagStack = [ ] ;
2258
2263
let tagStart ;
2259
2264
let tagEnd ;
2260
2265
2261
2266
do {
2262
- if ( ! tagStart ) tagStart = start [ component ] ;
2267
+ if ( ! tagStart ) tagStart = start [ cacheKey ] ;
2263
2268
else tagStart = ( out [ tagEnd ] === '<' ) ? tagEnd : out . indexOf ( '<' , tagEnd )
2264
2269
tagEnd = out . indexOf ( '>' , tagStart ) + 1 ;
2265
2270
// Skip stack logic for void/self-closing elements
@@ -2271,7 +2276,9 @@ var ReactDOMServerRenderer = function () {
2271
2276
} while ( tagStack . length !== 0 ) ;
2272
2277
2273
2278
// cache component by slicing 'out'
2274
- cache . set ( component , out . slice ( start [ component ] , tagEnd ) ) ;
2279
+ cache . set ( cacheKey , out . slice ( start [ cacheKey ] , tagEnd ) , ( err , reply ) => {
2280
+ console . log ( reply ) ;
2281
+ } ) ;
2275
2282
}
2276
2283
return out ;
2277
2284
} ;
@@ -2617,8 +2624,10 @@ class ComponentCache {
2617
2624
} ) ;
2618
2625
}
2619
2626
2620
- get ( cacheKey ) {
2621
- return this . storage . get ( cacheKey )
2627
+ get ( cacheKey , cb ) {
2628
+ let reply = this . storage . get ( cacheKey ) ;
2629
+ // return reply;
2630
+ cb ( null , reply ) ;
2622
2631
}
2623
2632
2624
2633
set ( cacheKey , html ) {
0 commit comments