cordova-elm-template-jumpstart
Version:
Cordova template to jumpstart development using Elm and Webpack
35 lines (25 loc) • 1.12 kB
JavaScript
/*
* Require the DOM to be ready before we are ready to go.
*
* We are stealing the impl from jQuery, but trying to avoid including jQuery itself.
* https://github.com/jquery/jquery/blob/bd984f0ee2cf40107a669d80d92566b8625b1e6b/src/core/ready-no-deferred.js#L77-L93
*
* If you already include jQuery in your project, then use this code:
* import Promise from "bluebird";
* import $ from jQuery;
* module.exports = new Promise((resolved) => $(() => resolved(true))):
* */
import Promise from "bluebird";
import _ from "lodash";
module.exports = new Promise((resolved) => {
const resolve = _.once(() => resolved(true));
if ( document.readyState === "complete" || ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
// Handle it asynchronously to allow scripts the opportunity to delay ready
window.setTimeout( resolve );
} else {
// Use the handy event callback
document.addEventListener( "DOMContentLoaded", resolve );
// A fallback to window.onload, that will always work
window.addEventListener( "load", resolve );
}
}).return(true);