@paroicms/server
Version:
The ParoiCMS server
21 lines • 1.1 kB
JavaScript
import { type } from "arktype";
import { getPluginAssetsUrl } from "../../connector/plugin-loader/plugin-public-helpers.js";
import { makeTagCacheKeyForRendering, } from "../../liquidjs-tools/liquidjs-rendering/rendering-context.js";
const StringOrUndefinedOrNullAT = type("string|undefined|null");
export async function pluginAssetUrlLiquidFilter(val, { renderingContext, args }) {
const relativeUrl = StringOrUndefinedOrNullAT.assert(val) ?? "";
const pluginSlug = StringOrUndefinedOrNullAT.assert(args[0]);
if (!pluginSlug)
return relativeUrl;
const cacheKey = makeTagCacheKeyForRendering("pluginAssetUrl", {
tagParameters: pluginSlug,
});
const cacheVal = renderingContext.getValueFromCache(cacheKey);
if (cacheVal.found)
return cacheVal.val;
const plugin = renderingContext.siteContext.pluginsBySlug.get(pluginSlug);
const result = plugin ? `${getPluginAssetsUrl(plugin)}${relativeUrl}` : relativeUrl;
renderingContext.setValueIntoCache(cacheKey, result);
return result;
}
//# sourceMappingURL=plugin-asset-url-filter.js.map