Provide hooks to clear caches

This commit is contained in:
Patrick Steele-Idem 2014-12-10 15:21:09 -07:00
parent 26024ed8fa
commit 009e99bfe9
5 changed files with 24 additions and 7 deletions

View File

@ -102,7 +102,10 @@ extend(exports, {
Expression: require('./Expression'),
TypeConverter: require('./TypeConverter'),
EscapeXmlContext: require('./EscapeXmlContext'),
defaultOptions: defaultOptions
defaultOptions: defaultOptions,
clearCaches: function() {
exports.taglibs.clearCaches();
}
});
exports.TemplateCompiler = require('./TemplateCompiler');

View File

@ -4,3 +4,7 @@ exports.lookup = require('./taglib-lookup');
exports.buildLookup = exports.lookup.buildLookup;
exports.registerTaglib = exports.lookup.registerTaglib;
exports.excludeDir = exports.lookup.excludeDir;
exports.clearCaches = function() {
exports.lookup.clearCaches();
require('./taglib-finder').clearCaches();
};

View File

@ -100,4 +100,10 @@ function excludeDir(dirname) {
}
exports.find = find;
exports.excludeDir = excludeDir;
exports.excludeDir = excludeDir;
exports.clearCaches = function() {
existsCache = {};
findCache = {};
taglibsByPath = {};
};

View File

@ -41,4 +41,7 @@ function registerTaglib(taglib) {
exports.excludeDir = taglibFinder.excludeDir;
exports.registerTaglib = registerTaglib;
exports.buildLookup = buildLookup;
exports.buildLookup = buildLookup;
exports.clearCaches = function() {
lookupCache = {};
};

View File

@ -23,7 +23,6 @@
var asyncWriter = require('async-writer');
var helpers = require('./helpers');
var loader = require('./loader');
var cache = {};
var Readable;
var AsyncWriter = asyncWriter.AsyncWriter;
var extend = require('raptor-util/extend');
@ -162,6 +161,8 @@ if (stream) {
}
function load(templatePath, options) {
var cache = exports.cache;
if (!templatePath) {
throw new Error('"templatePath" is required');
}
@ -191,12 +192,12 @@ exports.stream = function(templatePath, data) {
return load(templatePath).stream(data);
};
exports.unload = function(templatePath) {
delete cache[templatePath];
};
exports.cache = {};
exports.createWriter = function(writer) {
return new AsyncWriter(writer);
};
exports.helpers = helpers;
exports.Template = Template;