nl_tokens: currently only redis cache store is supported
pl_tokens: function cache ( app ) { if ( app . locals . config . cacheDb && 'redis' === app . locals . config . cacheDb . connector ) { // use redis for cache let redis = require ( "redis" ) . createClient ( app . locals . config . cacheDb ) ; redis . on ( "error" , function ( <mask> ) { app . error ( err ) ; } ) ; // clear existing cache on startup redis . del ( 'zlSites' , 'themeTrees' , 'themesConfig' ) ; return { // for getting data get : function ( ) { if ( 3 == arguments . length ) { // hash request redis . hget ( arguments [ 0 ] , arguments [ 1 ] , arguments [ 2 ] ) ; } else if ( 2 == arguments . length ) { // key request redis . get ( arguments [ 0 ] , arguments [ 1 ] ) ; } } , // for setting data set : function ( ) { if ( 4 == arguments . length ) { // hash request redis . hset ( arguments [ 0 ] , arguments [ 1 ] , arguments [ 2 ] , arguments [ 3 ] ) ; } else if ( 3 == arguments . length ) { // key request redis . set ( arguments [ 0 ] , arguments [ 1 ] , arguments [ 2 ] ) ; } } , // for setting volatile data with an expiration date setvol : function ( ) { if ( 4 == arguments . length ) { // key request redis . set ( arguments [ 0 ] , arguments [ 1 ] , ( ) => { redis . expire ( arguments [ 0 ] , arguments [ 2 ] , arguments [ 3 ] ) ; } ) ; } } , // for deleting data del : function ( ) { if ( 3 == arguments . length ) { // hash request redis . hdel ( arguments [ 0 ] , arguments [ 1 ] , arguments [ 2 ] ) ; } else if ( 2 == arguments . length ) { // key request redis . del ( arguments [ 0 ] , arguments [ 1 ] ) ; } } } } else { // not using cache app . error ( 'No config.cacheDb provided. This may affect performance.' ) ; let e = function ( ) { arguments [ arguments . length - 1 ] ( ) ; } return { get : e , set : e , setvol : e , del : e } } }