UNPKG

mount-script

Version:
58 lines (54 loc) 1.58 kB
/*! * mount-script v1.2.0 * A simple function for mounting javascript * (c) 2021-2023 saqqdy<https://github.com/saqqdy> * Released under the MIT License. */ this.mountScript = (function () { 'use strict'; /** * Dynamic loading of js linked resources * * @param src - resource address * @param option - parameters: attrs, props, force * @returns - result */ function mountScript(src, option) { if (option === void 0) { option = {}; } if (!src) throw new Error('[mountScript]: url is required'); var attrs = option.attrs, props = option.props, _a = option.force, force = _a === void 0 ? false : _a; return new Promise(function (resolve, reject) { if (!force && document.querySelector("script[src=\"".concat(src, "\"]"))) { resolve(true); return; } var dom = document.createElement('script'); var attr, prop; if (attrs) { for (attr in attrs) { dom[attr] = attrs[attr]; } } if (props) { for (prop in props) { dom[prop] = props[prop]; } } dom.src = src; document.body.appendChild(dom); dom.onload = dom.onreadystatechange = function () { if (!dom.readyState || ['loaded', 'complete'].includes(dom.readyState)) { dom.onload = dom.onreadystatechange = null; resolve(true); } }; dom.onerror = reject; }); } return mountScript; })();