import { getResolverOption } from "./resolver"; export const __DISCOURSE_RAW_TEMPLATES = {}; export function addRawTemplate(name, template, opts = {}) { // Core templates should never overwrite themes / plugins if (opts.core && __DISCOURSE_RAW_TEMPLATES[name]) { return; } __DISCOURSE_RAW_TEMPLATES[name] = template; } export function removeRawTemplate(name) { delete __DISCOURSE_RAW_TEMPLATES[name]; } export function findRawTemplate(name) { if (getResolverOption("mobileView")) { return ( __DISCOURSE_RAW_TEMPLATES[`javascripts/mobile/${name}`] || __DISCOURSE_RAW_TEMPLATES[`javascripts/${name}`] || __DISCOURSE_RAW_TEMPLATES[`mobile/${name}`] || __DISCOURSE_RAW_TEMPLATES[name] ); } return ( __DISCOURSE_RAW_TEMPLATES[`javascripts/${name}`] || __DISCOURSE_RAW_TEMPLATES[name] ); } export function buildRawConnectorCache(findOutlets) { let result = {}; findOutlets(__DISCOURSE_RAW_TEMPLATES, (outletName, resource) => { result[outletName] = result[outletName] || []; result[outletName].push({ template: __DISCOURSE_RAW_TEMPLATES[resource], }); }); return result; }