UNPKG

antd-theme-generator

Version:

This a script to generate color specific styles less file and which you can use to change theme dynamically in browser

44 lines (40 loc) 1.73 kB
// Cache system is a bit outdated and could do with work module.exports = function(window, options, logger) { var cache = null; if (options.env !== 'development') { try { cache = (typeof window.localStorage === 'undefined') ? null : window.localStorage; } catch (_) {} } return { setCSS: function(path, lastModified, modifyVars, styles) { if (cache) { logger.info('saving ' + path + ' to cache.'); try { cache.setItem(path, styles); cache.setItem(path + ':timestamp', lastModified); if (modifyVars) { cache.setItem(path + ':vars', JSON.stringify(modifyVars)); } } catch (e) { // TODO - could do with adding more robust error handling logger.error('failed to save "' + path + '" to local storage for caching.'); } } }, getCSS: function(path, webInfo, modifyVars) { var css = cache && cache.getItem(path), timestamp = cache && cache.getItem(path + ':timestamp'), vars = cache && cache.getItem(path + ':vars'); modifyVars = modifyVars || {}; vars = vars || "{}"; // if not set, treat as the JSON representation of an empty object if (timestamp && webInfo.lastModified && (new Date(webInfo.lastModified).valueOf() === new Date(timestamp).valueOf()) && JSON.stringify(modifyVars) === vars) { // Use local copy return css; } } }; };