var taglibLoader = require('./taglib-loader'); var taglibFinder = require('./taglib-finder'); var TaglibLookup = require('./TaglibLookup'); exports.registeredTaglibs = []; var lookupCache = {}; function buildLookup(dirname) { var taglibs = taglibFinder.find(dirname, exports.registeredTaglibs); var lookupCacheKey = taglibs .map(function(taglib) { return taglib.id; }) .join(','); var lookup = lookupCache[lookupCacheKey]; if (lookup === undefined) { lookup = new TaglibLookup(); for (var i=taglibs.length-1; i>=0; i--) { var taglib = taglibs[i]; lookup.addTaglib(taglib); if (taglib.imports) { for (var j=0; j