css cachign

This commit is contained in:
CoolElectronics 2024-02-19 11:10:24 -05:00
parent 696a60ee1e
commit 12fe739da4
No known key found for this signature in database
GPG key ID: F63593D168636C50

7
css.js
View file

@ -1,5 +1,5 @@
Object.assign(window, { css, rule, styled: { new: css, rule: rule } });
const cssmap = {};
function scopify_css(uid, css) {
const virtualDoc = document.implementation.createHTMLDocument("");
const virtualStyleElement = document.createElement("style");
@ -20,6 +20,9 @@ function scopify_css(uid, css) {
return cssParsed;
}
function tagcss(strings, values, isblock) {
let cached = cssmap[strings[0]];
let cachable = strings.length == 1;
if (cachable && cached) return cached;
const uid = `dl${Array(5)
.fill(0)
.map(() => {
@ -68,6 +71,8 @@ function tagcss(strings, values, isblock) {
styleElement.textContent = `.${uid} { ${flattened_template.join("")}; }`
}
if (cachable) cssmap[strings[0]] = uid;
return uid;
}
export function rule(strings, ...values) {