mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
25 lines
856 B
JavaScript
25 lines
856 B
JavaScript
'use strict';
|
|
module.exports = {
|
|
render: function (input, context) {
|
|
var attributes = context.attributes;
|
|
var cacheProvider = attributes.cacheProvider;
|
|
var cache;
|
|
var cachedHtml;
|
|
var cacheKey = input.cacheKey;
|
|
if (!cacheKey) {
|
|
throw require('raptor').createError(new Error('cache-key is required for <caching:cached-fragment>'));
|
|
}
|
|
if (!cacheProvider) {
|
|
cacheProvider = require('raptor-caching').getDefaultProvider();
|
|
}
|
|
cache = cacheProvider.getCache(input.cacheName);
|
|
cachedHtml = cache.get(cacheKey, function () {
|
|
return context.captureString(function () {
|
|
if (input.invokeBody) {
|
|
input.invokeBody();
|
|
}
|
|
});
|
|
});
|
|
context.write(cachedHtml);
|
|
}
|
|
}; |