diff --git a/src/site/html/static/js/templates/.gitrepo b/src/site/html/static/js/templates/.gitrepo new file mode 100644 index 0000000..47d5079 --- /dev/null +++ b/src/site/html/static/js/templates/.gitrepo @@ -0,0 +1,12 @@ +; DO NOT EDIT (unless you know what you are doing) +; +; This subdirectory is a git "subrepo", and this file is maintained by the +; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme +; +[subrepo] + remote = /home/cloud/Code/pinski-plugins/templates + branch = master + commit = a768add65e7eb7cfd608ef5672342940b2232b4c + parent = e684a04b0313ed5a511a9e3cc50269ebc2b64691 + method = merge + cmdver = 0.4.0 diff --git a/src/site/html/static/js/templates/api/templates.js b/src/site/html/static/js/templates/api/templates.js new file mode 100644 index 0000000..f8df2d4 --- /dev/null +++ b/src/site/html/static/js/templates/api/templates.js @@ -0,0 +1,18 @@ +const passthrough = require("../../../../../passthrough") + +module.exports = [ + { + route: "/api/templates", methods: ["GET"], code: async () => { + const result = {} + const entries = passthrough.instance.pugCache.entries() + for (const [file, value] of entries) { + const match = file.match(/client\/.*?([^/]+)\.pug$/) + if (match) { + const name = match[1] + result[name] = value.client.toString() + } + } + return [200, result] + } + } +] diff --git a/src/site/html/static/js/templates/templates.js b/src/site/html/static/js/templates/templates.js new file mode 100644 index 0000000..4194aad --- /dev/null +++ b/src/site/html/static/js/templates/templates.js @@ -0,0 +1,14 @@ +import {AsyncValueCache} from "../avc/avc.js" + +const tc = new AsyncValueCache(true, () => { + return fetch("/api/templates").then(res => res.json()).then(data => { + Object.keys(data).forEach(key => { + let fn = Function(data[key] + "; return template")() + data[key] = fn + }) + console.log(`Loaded ${Object.keys(data).length} templates`) + return data + }) +}) + +export {tc}