diff --git a/jsdom.js b/jsdom.js index 0e39a36..ceebc2e 100644 --- a/jsdom.js +++ b/jsdom.js @@ -1,6 +1,12 @@ //TODO: https://www.npmjs.com/package/html-element import { enviroment as env } from './src/dom-common.js'; env.ssr= " ssr"; + +const wa_store= new Set(); +env.qa= function(promise){ wa_store.add(promise); return promise; }; +env.qw= function(){ return Promise.allSettled(Array.from(wa_store)).then(()=> wa_store.clear()); }; +export const asyncQueue= env.ww; + const { setDeleteAttr }= env; /** @param {HTMLElement} obj */ env.setDeleteAttr= function(obj, prop, value){ diff --git a/src/dom-common.js b/src/dom-common.js index c9c1d22..713581e 100644 --- a/src/dom-common.js +++ b/src/dom-common.js @@ -6,6 +6,8 @@ export const enviroment= { H: globalThis.HTMLElement, S: globalThis.SVGElement, M: globalThis.MutationObserver, + qa: (p)=> p, + qw: ()=> Promise.resolve(), }; import { isUndef } from './helpers.js'; function setDeleteAttr(obj, prop, val){ diff --git a/src/dom.js b/src/dom.js index b8f9026..60b0ef5 100644 --- a/src/dom.js +++ b/src/dom.js @@ -1,6 +1,7 @@ import { signals } from "./signals-common.js"; import { enviroment as env } from './dom-common.js'; +export function asyncQueueAdd(promise){ return env.qa(promise); } /** @type {{ scope: object, prevent: boolean, host: function }[]} */ const scopes= [ { get scope(){ return env.D.body; },