@zoltanradics/async-script-loader 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -1,13 +1,14 @@
1
- function l(r, e) {
2
- if (typeof r != "string")
1
+ function y(t, e) {
2
+ if (typeof t != "string")
3
3
  return Promise.reject(new TypeError("baseUrl must be a string"));
4
- if (r.trim() === "")
4
+ if (t.trim() === "")
5
5
  return Promise.reject(new Error("baseUrl cannot be empty"));
6
- try {
7
- new URL(r);
8
- } catch {
9
- return Promise.reject(new Error("baseUrl must be a valid URL"));
10
- }
6
+ if (t.startsWith("http") || t.startsWith("https"))
7
+ try {
8
+ new URL(t);
9
+ } catch {
10
+ return Promise.reject(new Error("baseUrl must be a valid URL"));
11
+ }
11
12
  if (e == null)
12
13
  return Promise.reject(new TypeError("queryParamObject must be an object"));
13
14
  if (typeof e != "object" || Array.isArray(e))
@@ -15,26 +16,26 @@ function l(r, e) {
15
16
  for (const n of Object.keys(e))
16
17
  if (typeof e[n] != "string")
17
18
  return Promise.reject(new TypeError(`queryParamObject value for key "${n}" must be a string`));
18
- const c = 2e3, i = p(r, e), t = document.createElement("script");
19
- t.src = i, t.async = !0;
19
+ const c = 2e3, i = p(t, e), r = document.createElement("script");
20
+ r.src = i, r.async = !0;
20
21
  const o = document.getElementsByTagName("head")[0];
21
- return o ? (o.insertAdjacentElement("beforeend", t), new Promise(function(n, u) {
22
+ return o ? (o.insertAdjacentElement("beforeend", r), new Promise(function(n, u) {
22
23
  const a = setTimeout(() => {
23
24
  s(), n(), console.warn(`${i} was loading for too long time.`);
24
25
  }, c), s = () => {
25
- clearTimeout(a), t.removeEventListener("load", f), t.removeEventListener("error", m);
26
+ clearTimeout(a), r.removeEventListener("load", f), r.removeEventListener("error", m);
26
27
  }, f = function(d) {
27
28
  s(), n();
28
29
  }, m = function(d) {
29
30
  s(), u(new Error(`Failed to load ${i}.`));
30
31
  };
31
- t.addEventListener("load", f), t.addEventListener("error", m);
32
+ r.addEventListener("load", f), r.addEventListener("error", m);
32
33
  })) : Promise.reject(new Error("No <head> element found in document"));
33
34
  }
34
- function p(r, e) {
35
- if (typeof r != "string")
35
+ function p(t, e) {
36
+ if (typeof t != "string")
36
37
  throw new TypeError("baseUrl must be a string");
37
- if (r.trim() === "")
38
+ if (t.trim() === "")
38
39
  throw new Error("baseUrl cannot be empty");
39
40
  if (e == null)
40
41
  throw new TypeError("queryParamsObject must be an object");
@@ -45,13 +46,13 @@ function p(r, e) {
45
46
  throw new TypeError(`queryParamsObject value for key "${o}" must be a string`);
46
47
  const c = Object.keys(e);
47
48
  if (c.length === 0)
48
- return r;
49
- const i = r.includes("?") ? "&" : "?", t = c.reduce((o, n, u) => {
49
+ return t;
50
+ const i = t.includes("?") ? "&" : "?", r = c.reduce((o, n, u) => {
50
51
  const a = encodeURIComponent(n), s = encodeURIComponent(e[n]);
51
52
  return `${o}${u === 0 ? i : "&"}${a}=${s}`;
52
53
  }, "");
53
- return `${r}${t}`;
54
+ return `${t}${r}`;
54
55
  }
55
56
  export {
56
- l as asyncScriptLoader
57
+ y as asyncScriptLoader
57
58
  };
package/dist/index.umd.js CHANGED
@@ -1 +1 @@
1
- (function(i,s){typeof exports=="object"&&typeof module<"u"?s(exports):typeof define=="function"&&define.amd?define(["exports"],s):(i=typeof globalThis<"u"?globalThis:i||self,s(i.AsyncScriptLoader={}))})(this,(function(i){"use strict";function s(t,e){if(typeof t!="string")return Promise.reject(new TypeError("baseUrl must be a string"));if(t.trim()==="")return Promise.reject(new Error("baseUrl cannot be empty"));try{new URL(t)}catch{return Promise.reject(new Error("baseUrl must be a valid URL"))}if(e==null)return Promise.reject(new TypeError("queryParamObject must be an object"));if(typeof e!="object"||Array.isArray(e))return Promise.reject(new TypeError("queryParamObject must be a plain object"));for(const n of Object.keys(e))if(typeof e[n]!="string")return Promise.reject(new TypeError(`queryParamObject value for key "${n}" must be a string`));const d=2e3,c=y(t,e),r=document.createElement("script");r.src=c,r.async=!0;const o=document.getElementsByTagName("head")[0];return o?(o.insertAdjacentElement("beforeend",r),new Promise(function(n,f){const a=setTimeout(()=>{u(),n(),console.warn(`${c} was loading for too long time.`)},d),u=()=>{clearTimeout(a),r.removeEventListener("load",m),r.removeEventListener("error",p)},m=function(l){u(),n()},p=function(l){u(),f(new Error(`Failed to load ${c}.`))};r.addEventListener("load",m),r.addEventListener("error",p)})):Promise.reject(new Error("No <head> element found in document"))}function y(t,e){if(typeof t!="string")throw new TypeError("baseUrl must be a string");if(t.trim()==="")throw new Error("baseUrl cannot be empty");if(e==null)throw new TypeError("queryParamsObject must be an object");if(typeof e!="object"||Array.isArray(e))throw new TypeError("queryParamsObject must be a plain object");for(const o of Object.keys(e))if(typeof e[o]!="string")throw new TypeError(`queryParamsObject value for key "${o}" must be a string`);const d=Object.keys(e);if(d.length===0)return t;const c=t.includes("?")?"&":"?",r=d.reduce((o,n,f)=>{const a=encodeURIComponent(n),u=encodeURIComponent(e[n]);return`${o}${f===0?c:"&"}${a}=${u}`},"");return`${t}${r}`}i.asyncScriptLoader=s,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(i,s){typeof exports=="object"&&typeof module<"u"?s(exports):typeof define=="function"&&define.amd?define(["exports"],s):(i=typeof globalThis<"u"?globalThis:i||self,s(i.AsyncScriptLoader={}))})(this,(function(i){"use strict";function s(t,e){if(typeof t!="string")return Promise.reject(new TypeError("baseUrl must be a string"));if(t.trim()==="")return Promise.reject(new Error("baseUrl cannot be empty"));if(t.startsWith("http")||t.startsWith("https"))try{new URL(t)}catch{return Promise.reject(new Error("baseUrl must be a valid URL"))}if(e==null)return Promise.reject(new TypeError("queryParamObject must be an object"));if(typeof e!="object"||Array.isArray(e))return Promise.reject(new TypeError("queryParamObject must be a plain object"));for(const n of Object.keys(e))if(typeof e[n]!="string")return Promise.reject(new TypeError(`queryParamObject value for key "${n}" must be a string`));const f=2e3,c=y(t,e),r=document.createElement("script");r.src=c,r.async=!0;const o=document.getElementsByTagName("head")[0];return o?(o.insertAdjacentElement("beforeend",r),new Promise(function(n,d){const a=setTimeout(()=>{u(),n(),console.warn(`${c} was loading for too long time.`)},f),u=()=>{clearTimeout(a),r.removeEventListener("load",p),r.removeEventListener("error",m)},p=function(l){u(),n()},m=function(l){u(),d(new Error(`Failed to load ${c}.`))};r.addEventListener("load",p),r.addEventListener("error",m)})):Promise.reject(new Error("No <head> element found in document"))}function y(t,e){if(typeof t!="string")throw new TypeError("baseUrl must be a string");if(t.trim()==="")throw new Error("baseUrl cannot be empty");if(e==null)throw new TypeError("queryParamsObject must be an object");if(typeof e!="object"||Array.isArray(e))throw new TypeError("queryParamsObject must be a plain object");for(const o of Object.keys(e))if(typeof e[o]!="string")throw new TypeError(`queryParamsObject value for key "${o}" must be a string`);const f=Object.keys(e);if(f.length===0)return t;const c=t.includes("?")?"&":"?",r=f.reduce((o,n,d)=>{const a=encodeURIComponent(n),u=encodeURIComponent(e[n]);return`${o}${d===0?c:"&"}${a}=${u}`},"");return`${t}${r}`}i.asyncScriptLoader=s,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zoltanradics/async-script-loader",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Async javascript loader",
5
5
  "main": "./dist/index.umd.js",
6
6
  "module": "./dist/index.es.js",