Skip to content
Snippets Groups Projects
Select Git revision
  • 551b9727d6b1198538355f07a687baf5ad1716b1
  • master default protected
  • 1.31
  • 4.25.2
  • 4.25.1
  • 4.25.0
  • 4.24.3
  • 4.24.2
  • 4.24.1
  • 4.24.0
  • 4.23.6
  • 4.23.5
  • 4.23.4
  • 4.23.3
  • 4.23.2
  • 4.23.1
  • 4.23.0
  • 4.22.3
  • 4.22.2
  • 4.22.1
  • 4.22.0
  • 4.21.0
  • 4.20.1
23 results

puppeteer.mjs

Blame
  • ready.mjs 2.46 KiB
    /**
     * Copyright © schukai GmbH and all contributing authors, {{copyRightYear}}. All rights reserved.
     * Node module: @schukai/monster
     *
     * This source code is licensed under the GNU Affero General Public License version 3 (AGPLv3).
     * The full text of the license can be found at: https://www.gnu.org/licenses/agpl-3.0.en.html
     *
     * For those who do not wish to adhere to the AGPLv3, a commercial license is available.
     * Acquiring a commercial license allows you to use this software without complying with the AGPLv3 terms.
     * For more information about purchasing a commercial license, please contact schukai GmbH.
     *
     * SPDX-License-Identifier: AGPL-3.0
     */
    
    import { getDocument, getWindow } from "./util.mjs";
    
    export { domReady, windowReady };
    
    /**
     * This variable is a promise fulfilled as soon as the dom is available.
     *
     * The DOMContentLoaded event is fired when the original HTML document is fully loaded and parsed
     * without waiting for stylesheets, images, and subframes to finish loading.
     *
     * document.readyState changes to interactive
     * window's DOMContentLoaded event gets fired
     * document.readyState changes to complete
     * window's load event gets fired load
     *
     * @license AGPLv3
     * @since 1.31.0
     * @summary variable to check if dom is ready
     * @type {Promise}
     * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/DOMContentLoaded_event
     * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/readyState
     */
    const domReady = new Promise((resolve) => {
    	const document = getDocument();
    
    	if (document.readyState === "loading") {
    		document.addEventListener("DOMContentLoaded", resolve);
    	} else {
    		resolve();
    	}
    });
    
    /**
     * This variable is a promise is fulfilled as soon as the windows is available.
     *
     * The load event fires when the entire page is loaded, including all dependent resources such as stylesheets,
     * assets, and images. Unlike DOMContentLoaded, which fires as soon as the DOM of the page is loaded,
     * without waiting for the resources to finish loading.
     *
     * @license AGPLv3
     * @since 1.31.0
     * @summary variable to check if window is ready
     * @type {Promise}
     * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
     * @see https://developer.mozilla.org/en-US/docs/Web/API/Document/readyState
     */
    const windowReady = new Promise((resolve) => {
    	const document = getDocument();
    	const window = getWindow();
    
    	if (document.readyState === "complete") {
    		resolve();
    	} else {
    		window.addEventListener("load", resolve);
    	}
    });