1
0
mirror of https://github.com/jaandrle/deka-dom-el synced 2025-04-02 20:15:53 +02:00
deka-dom-el/jsdom.js
Jan Andrle f0dfdfde54
v0.9.2 — 🐛 types, on.defer and other small (#36)
* 🔤  T now uses DocumentFragment

* 🔤

* 🔤 

* 🐛 lint

*  cleanup

*  🔤 lib download

*  🔤 ui

*  reorganize files

*  on.host

* 🐛 on.* types

*  🔤 cdn

* 🔤 converter

* 🐛 signal.set(value, force)

*  🔤

* 🔤  converter - convert also comments

*  bs/build

* 🔤 ui p14

* 🔤

* 🔤 Examples

* 🔤

* 🐛 now only el(..., string|number)

* 🐛 fixes #38

* 🔤

*  on.host → on.defer

* 🔤

* 📺
2025-03-16 11:30:42 +01:00

47 lines
1.1 KiB
JavaScript

import { enviroment as env } from './src/dom-lib/common.js';
env.ssr= " ssr";
const q_store= new Set();
env.q= function(promise){
if(promise) return ( q_store.add(promise), promise );
return Promise.allSettled(Array.from(q_store)).then(()=> q_store.clear());
};
export const queue= env.q;
const { setDeleteAttr }= env;
/** @param {HTMLElement} obj */
env.setDeleteAttr= function(obj, prop, value){
if("value"===prop) return obj.setAttribute(prop, value);
if("checked"!==prop) return setDeleteAttr(obj, prop, value);
if(value) return obj.setAttribute(prop, "");
obj.removeAttribute(prop);
};
const keys= {
N: "Node", H: "HTMLElement", S: "SVGElement", F: "DocumentFragment", D: "document", M: "MutationObserver",
};
let env_bk= {};
let dom_last;
export function register(dom){
if(dom_last!==dom){
const w= dom.window;
Object.entries(keys).forEach(([ kE, kW ])=> {
env_bk[kE]= env[kE];
env[kE]= w[kW];
});
w.console= globalThis.console;
}
dom_last= dom;
return import("./index.js");
}
export function unregister(){
if(!dom_last)
return false;
Object.assign(env, env_bk);
env_bk= {};
dom_last= undefined;
return true;
}