@orca-fe/pocket
Version:
UI components by orca-team
31 lines (30 loc) • 799 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = loadScript;
var cache = new Map();
function loadScript(src) {
var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (e) {};
var p = cache.get(src);
if (!p) {
p = new Promise(function (resolve, reject) {
var script = document.createElement('script');
script.src = src;
script.onload = function (e) {
resolve(e);
};
script.onerror = function (event, source, lineno, colno, error) {
cache.delete(src);
reject(error);
};
document.body.appendChild(script);
});
cache.set(src, p);
}
return p.then(function () {
callback();
}).catch(function (err) {
callback(err);
});
}