Comparing version 3.5.1 to 3.5.2
{ | ||
"name": "loadjs", | ||
"version": "3.5.1", | ||
"version": "3.5.2", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "authors": [ |
# LoadJS Changelog | ||
## 3.5.2 - January 10, 2018 | ||
* Added support for success function as callback argument | ||
## 3.5.1 - August 9, 2017 | ||
@@ -4,0 +8,0 @@ |
@@ -82,2 +82,17 @@ loadjs = (function () { | ||
/** | ||
* Execute callbacks. | ||
* @param {Object or Function} args - The callback args | ||
* @param {string[]} depsNotFound - List of dependencies not found | ||
*/ | ||
function executeCallbacks(args, depsNotFound) { | ||
// accept function as argument | ||
if (args.call) args = {success: args}; | ||
// success and error callbacks | ||
if (depsNotFound.length) (args.error || devnull)(depsNotFound); | ||
else (args.success || devnull)(args); | ||
} | ||
/** | ||
* Load individual file. | ||
@@ -210,5 +225,4 @@ * @param {string} path - The file path | ||
loadFiles(paths, function (pathsNotFound) { | ||
// success and error callbacks | ||
if (pathsNotFound.length) (args.error || devnull)(pathsNotFound); | ||
else (args.success || devnull)(); | ||
// execute callbacks | ||
executeCallbacks(args, pathsNotFound); | ||
@@ -230,4 +244,3 @@ // publish bundle load event | ||
// execute callbacks | ||
if (depsNotFound.length) (args.error || devnull)(depsNotFound); | ||
else (args.success || devnull)(); | ||
executeCallbacks(args, depsNotFound); | ||
}); | ||
@@ -234,0 +247,0 @@ |
@@ -1,1 +0,1 @@ | ||
loadjs=function(){function e(e,n){var t,r,i,c=[],o=(e=e.push?e:[e]).length,f=o;for(t=function(e,t){t.length&&c.push(e),--f||n(c)};o--;)r=e[o],(i=s[r])?t(r,i):(u[r]=u[r]||[]).push(t)}function n(e,n){if(e){var t=u[e];if(s[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function t(e,n,r,i){var o,s,u=document,f=r.async,a=(r.numRetries||0)+1,h=r.before||c;i=i||0,/(^css!|\.css$)/.test(e)?(o=!0,(s=u.createElement("link")).rel="stylesheet",s.href=e.replace(/^css!/,"")):((s=u.createElement("script")).src=e,s.async=void 0===f||f),s.onload=s.onerror=s.onbeforeload=function(c){var u=c.type[0];if(o&&"hideFocus"in s)try{s.sheet.cssText.length||(u="e")}catch(e){u="e"}if("e"==u&&(i+=1)<a)return t(e,n,r,i);n(e,u,c.defaultPrevented)},!1!==h(e,s)&&u.head.appendChild(s)}function r(e,n,r){var i,c,o=(e=e.push?e:[e]).length,s=o,u=[];for(i=function(e,t,r){if("e"==t&&u.push(e),"b"==t){if(!r)return;u.push(e)}--o||n(u)},c=0;c<s;c++)t(e[c],i,r)}function i(e,t,i){var s,u;if(t&&t.trim&&(s=t),u=(s?i:t)||{},s){if(s in o)throw"LoadJS";o[s]=!0}r(e,function(e){e.length?(u.error||c)(e):(u.success||c)(),n(s,e)},u)}var c=function(){},o={},s={},u={};return i.ready=function(n,t){return e(n,function(e){e.length?(t.error||c)(e):(t.success||c)()}),i},i.done=function(e){n(e,[])},i.reset=function(){o={},s={},u={}},i.isDefined=function(e){return e in o},i}(); | ||
loadjs=function(){var n=function(){},e={},t={},r={};function c(n,e){if(n){var c=r[n];if(t[n]=e,c)for(;c.length;)c[0](n,e),c.splice(0,1)}}function i(e,t){e.call&&(e={success:e}),t.length?(e.error||n)(t):(e.success||n)(e)}function o(e,t,r,c){var i,s,u=document,f=r.async,a=(r.numRetries||0)+1,h=r.before||n;c=c||0,/(^css!|\.css$)/.test(e)?(i=!0,(s=u.createElement("link")).rel="stylesheet",s.href=e.replace(/^css!/,"")):((s=u.createElement("script")).src=e,s.async=void 0===f||f),s.onload=s.onerror=s.onbeforeload=function(n){var u=n.type[0];if(i&&"hideFocus"in s)try{s.sheet.cssText.length||(u="e")}catch(n){u="e"}if("e"==u&&(c+=1)<a)return o(e,t,r,c);t(e,u,n.defaultPrevented)},!1!==h(e,s)&&u.head.appendChild(s)}function s(n,t,r){var s,u;if(t&&t.trim&&(s=t),u=(s?r:t)||{},s){if(s in e)throw"LoadJS";e[s]=!0}!function(n,e,t){var r,c,i=(n=n.push?n:[n]).length,s=i,u=[];for(r=function(n,t,r){if("e"==t&&u.push(n),"b"==t){if(!r)return;u.push(n)}--i||e(u)},c=0;c<s;c++)o(n[c],r,t)}(n,function(n){i(u,n),c(s,n)},u)}return s.ready=function(n,e){return function(n,e){var c,i,o,s=[],u=(n=n.push?n:[n]).length,f=u;for(c=function(n,t){t.length&&s.push(n),--f||e(s)};u--;)i=n[u],(o=t[i])?c(i,o):(r[i]=r[i]||[]).push(c)}(n,function(n){i(e,n)}),s},s.done=function(n){c(n,[])},s.reset=function(){e={},t={},r={}},s.isDefined=function(n){return n in e},s}(); |
@@ -90,2 +90,17 @@ (function(root, factory) { | ||
/** | ||
* Execute callbacks. | ||
* @param {Object or Function} args - The callback args | ||
* @param {string[]} depsNotFound - List of dependencies not found | ||
*/ | ||
function executeCallbacks(args, depsNotFound) { | ||
// accept function as argument | ||
if (args.call) args = {success: args}; | ||
// success and error callbacks | ||
if (depsNotFound.length) (args.error || devnull)(depsNotFound); | ||
else (args.success || devnull)(args); | ||
} | ||
/** | ||
* Load individual file. | ||
@@ -218,5 +233,4 @@ * @param {string} path - The file path | ||
loadFiles(paths, function (pathsNotFound) { | ||
// success and error callbacks | ||
if (pathsNotFound.length) (args.error || devnull)(pathsNotFound); | ||
else (args.success || devnull)(); | ||
// execute callbacks | ||
executeCallbacks(args, pathsNotFound); | ||
@@ -238,4 +252,3 @@ // publish bundle load event | ||
// execute callbacks | ||
if (depsNotFound.length) (args.error || devnull)(depsNotFound); | ||
else (args.success || devnull)(); | ||
executeCallbacks(args, depsNotFound); | ||
}); | ||
@@ -242,0 +255,0 @@ |
@@ -82,2 +82,17 @@ loadjs = (function () { | ||
/** | ||
* Execute callbacks. | ||
* @param {Object or Function} args - The callback args | ||
* @param {string[]} depsNotFound - List of dependencies not found | ||
*/ | ||
function executeCallbacks(args, depsNotFound) { | ||
// accept function as argument | ||
if (args.call) args = {success: args}; | ||
// success and error callbacks | ||
if (depsNotFound.length) (args.error || devnull)(depsNotFound); | ||
else (args.success || devnull)(args); | ||
} | ||
/** | ||
* Load individual file. | ||
@@ -210,5 +225,4 @@ * @param {string} path - The file path | ||
loadFiles(paths, function (pathsNotFound) { | ||
// success and error callbacks | ||
if (pathsNotFound.length) (args.error || devnull)(pathsNotFound); | ||
else (args.success || devnull)(); | ||
// execute callbacks | ||
executeCallbacks(args, pathsNotFound); | ||
@@ -230,4 +244,3 @@ // publish bundle load event | ||
// execute callbacks | ||
if (depsNotFound.length) (args.error || devnull)(depsNotFound); | ||
else (args.success || devnull)(); | ||
executeCallbacks(args, depsNotFound); | ||
}); | ||
@@ -234,0 +247,0 @@ |
@@ -1,1 +0,1 @@ | ||
loadjs=function(){function e(e,n){var t,r,i,c=[],o=(e=e.push?e:[e]).length,f=o;for(t=function(e,t){t.length&&c.push(e),--f||n(c)};o--;)r=e[o],(i=s[r])?t(r,i):(u[r]=u[r]||[]).push(t)}function n(e,n){if(e){var t=u[e];if(s[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function t(e,n,r,i){var o,s,u=document,f=r.async,a=(r.numRetries||0)+1,h=r.before||c;i=i||0,/(^css!|\.css$)/.test(e)?(o=!0,(s=u.createElement("link")).rel="stylesheet",s.href=e.replace(/^css!/,"")):((s=u.createElement("script")).src=e,s.async=void 0===f||f),s.onload=s.onerror=s.onbeforeload=function(c){var u=c.type[0];if(o&&"hideFocus"in s)try{s.sheet.cssText.length||(u="e")}catch(e){u="e"}if("e"==u&&(i+=1)<a)return t(e,n,r,i);n(e,u,c.defaultPrevented)},!1!==h(e,s)&&u.head.appendChild(s)}function r(e,n,r){var i,c,o=(e=e.push?e:[e]).length,s=o,u=[];for(i=function(e,t,r){if("e"==t&&u.push(e),"b"==t){if(!r)return;u.push(e)}--o||n(u)},c=0;c<s;c++)t(e[c],i,r)}function i(e,t,i){var s,u;if(t&&t.trim&&(s=t),u=(s?i:t)||{},s){if(s in o)throw"LoadJS";o[s]=!0}r(e,function(e){e.length?(u.error||c)(e):(u.success||c)(),n(s,e)},u)}var c=function(){},o={},s={},u={};return i.ready=function(n,t){return e(n,function(e){e.length?(t.error||c)(e):(t.success||c)()}),i},i.done=function(e){n(e,[])},i.reset=function(){o={},s={},u={}},i.isDefined=function(e){return e in o},i}(); | ||
loadjs=function(){var n=function(){},e={},t={},r={};function c(n,e){if(n){var c=r[n];if(t[n]=e,c)for(;c.length;)c[0](n,e),c.splice(0,1)}}function i(e,t){e.call&&(e={success:e}),t.length?(e.error||n)(t):(e.success||n)(e)}function o(e,t,r,c){var i,s,u=document,f=r.async,a=(r.numRetries||0)+1,h=r.before||n;c=c||0,/(^css!|\.css$)/.test(e)?(i=!0,(s=u.createElement("link")).rel="stylesheet",s.href=e.replace(/^css!/,"")):((s=u.createElement("script")).src=e,s.async=void 0===f||f),s.onload=s.onerror=s.onbeforeload=function(n){var u=n.type[0];if(i&&"hideFocus"in s)try{s.sheet.cssText.length||(u="e")}catch(n){u="e"}if("e"==u&&(c+=1)<a)return o(e,t,r,c);t(e,u,n.defaultPrevented)},!1!==h(e,s)&&u.head.appendChild(s)}function s(n,t,r){var s,u;if(t&&t.trim&&(s=t),u=(s?r:t)||{},s){if(s in e)throw"LoadJS";e[s]=!0}!function(n,e,t){var r,c,i=(n=n.push?n:[n]).length,s=i,u=[];for(r=function(n,t,r){if("e"==t&&u.push(n),"b"==t){if(!r)return;u.push(n)}--i||e(u)},c=0;c<s;c++)o(n[c],r,t)}(n,function(n){i(u,n),c(s,n)},u)}return s.ready=function(n,e){return function(n,e){var c,i,o,s=[],u=(n=n.push?n:[n]).length,f=u;for(c=function(n,t){t.length&&s.push(n),--f||e(s)};u--;)i=n[u],(o=t[i])?c(i,o):(r[i]=r[i]||[]).push(c)}(n,function(n){i(e,n)}),s},s.done=function(n){c(n,[])},s.reset=function(){e={},t={},r={}},s.isDefined=function(n){return n in e},s}(); |
{ | ||
"name": "loadjs", | ||
"version": "3.5.1", | ||
"version": "3.5.2", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "description": "Tiny async loader for modern browsers", |
@@ -5,3 +5,3 @@ # LoadJS | ||
LoadJS is a tiny async loader for modern browsers (738 bytes). | ||
LoadJS is a tiny async loader for modern browsers (753 bytes). | ||
@@ -24,3 +24,3 @@ [![Dependency Status](https://david-dm.org/muicss/loadjs.svg)](https://david-dm.org/muicss/loadjs) | ||
// execute code elsewhere when the bundle has loaded | ||
// execute code when the bundle loads | ||
loadjs.ready('foobar', { | ||
@@ -30,7 +30,12 @@ success: function() { /* foo.js & bar.js loaded */ }, | ||
}); | ||
// use simpler syntax to only execute success function | ||
loadjs.ready('foobar', function() { | ||
// foo.js & bar.js loaded | ||
}); | ||
``` | ||
The latest version of LoadJS can be found in the `dist/` directory in this repository: | ||
* [loadjs.js](https://cdn.rawgit.com/muicss/loadjs/3.5.1/dist/loadjs.js) | ||
* [loadjs.min.js](https://cdn.rawgit.com/muicss/loadjs/3.5.1/dist/loadjs.min.js) | ||
* [loadjs.js](https://cdn.rawgit.com/muicss/loadjs/3.5.2/dist/loadjs.js) | ||
* [loadjs.min.js](https://cdn.rawgit.com/muicss/loadjs/3.5.2/dist/loadjs.min.js) | ||
@@ -85,3 +90,3 @@ You can also use it as a CJS or AMD module: | ||
loadjs(['/path/to/foo.js', '/path/to/bar.js'], { | ||
success: function() { /* foo.js & bar.js loaded */ } | ||
success: function() { /* foo.js and bar.js loaded */ } | ||
}); | ||
@@ -249,2 +254,14 @@ ``` | ||
1. Use success callback functions for simplicity | ||
```javascript | ||
loadjs('/path/to/foo.js', 'foo', function() { | ||
// foo.js loaded | ||
}); | ||
loadjs.ready('foo', function() { | ||
// foo.js loaded | ||
}); | ||
``` | ||
## Directory structure | ||
@@ -251,0 +268,0 @@ |
@@ -81,2 +81,17 @@ /** | ||
/** | ||
* Execute callbacks. | ||
* @param {Object or Function} args - The callback args | ||
* @param {string[]} depsNotFound - List of dependencies not found | ||
*/ | ||
function executeCallbacks(args, depsNotFound) { | ||
// accept function as argument | ||
if (args.call) args = {success: args}; | ||
// success and error callbacks | ||
if (depsNotFound.length) (args.error || devnull)(depsNotFound); | ||
else (args.success || devnull)(args); | ||
} | ||
/** | ||
* Load individual file. | ||
@@ -209,5 +224,4 @@ * @param {string} path - The file path | ||
loadFiles(paths, function (pathsNotFound) { | ||
// success and error callbacks | ||
if (pathsNotFound.length) (args.error || devnull)(pathsNotFound); | ||
else (args.success || devnull)(); | ||
// execute callbacks | ||
executeCallbacks(args, pathsNotFound); | ||
@@ -229,4 +243,3 @@ // publish bundle load event | ||
// execute callbacks | ||
if (depsNotFound.length) (args.error || devnull)(depsNotFound); | ||
else (args.success || devnull)(); | ||
executeCallbacks(args, depsNotFound); | ||
}); | ||
@@ -233,0 +246,0 @@ |
@@ -82,2 +82,17 @@ loadjs = (function () { | ||
/** | ||
* Execute callbacks. | ||
* @param {Object or Function} args - The callback args | ||
* @param {string[]} depsNotFound - List of dependencies not found | ||
*/ | ||
function executeCallbacks(args, depsNotFound) { | ||
// accept function as argument | ||
if (args.call) args = {success: args}; | ||
// success and error callbacks | ||
if (depsNotFound.length) (args.error || devnull)(depsNotFound); | ||
else (args.success || devnull)(args); | ||
} | ||
/** | ||
* Load individual file. | ||
@@ -210,5 +225,4 @@ * @param {string} path - The file path | ||
loadFiles(paths, function (pathsNotFound) { | ||
// success and error callbacks | ||
if (pathsNotFound.length) (args.error || devnull)(pathsNotFound); | ||
else (args.success || devnull)(); | ||
// execute callbacks | ||
executeCallbacks(args, pathsNotFound); | ||
@@ -230,4 +244,3 @@ // publish bundle load event | ||
// execute callbacks | ||
if (depsNotFound.length) (args.error || devnull)(depsNotFound); | ||
else (args.success || devnull)(); | ||
executeCallbacks(args, depsNotFound); | ||
}); | ||
@@ -234,0 +247,0 @@ |
@@ -1,1 +0,1 @@ | ||
loadjs=function(){function e(e,n){var t,r,i,c=[],o=(e=e.push?e:[e]).length,f=o;for(t=function(e,t){t.length&&c.push(e),--f||n(c)};o--;)r=e[o],(i=s[r])?t(r,i):(u[r]=u[r]||[]).push(t)}function n(e,n){if(e){var t=u[e];if(s[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function t(e,n,r,i){var o,s,u=document,f=r.async,a=(r.numRetries||0)+1,h=r.before||c;i=i||0,/(^css!|\.css$)/.test(e)?(o=!0,(s=u.createElement("link")).rel="stylesheet",s.href=e.replace(/^css!/,"")):((s=u.createElement("script")).src=e,s.async=void 0===f||f),s.onload=s.onerror=s.onbeforeload=function(c){var u=c.type[0];if(o&&"hideFocus"in s)try{s.sheet.cssText.length||(u="e")}catch(e){u="e"}if("e"==u&&(i+=1)<a)return t(e,n,r,i);n(e,u,c.defaultPrevented)},!1!==h(e,s)&&u.head.appendChild(s)}function r(e,n,r){var i,c,o=(e=e.push?e:[e]).length,s=o,u=[];for(i=function(e,t,r){if("e"==t&&u.push(e),"b"==t){if(!r)return;u.push(e)}--o||n(u)},c=0;c<s;c++)t(e[c],i,r)}function i(e,t,i){var s,u;if(t&&t.trim&&(s=t),u=(s?i:t)||{},s){if(s in o)throw"LoadJS";o[s]=!0}r(e,function(e){e.length?(u.error||c)(e):(u.success||c)(),n(s,e)},u)}var c=function(){},o={},s={},u={};return i.ready=function(n,t){return e(n,function(e){e.length?(t.error||c)(e):(t.success||c)()}),i},i.done=function(e){n(e,[])},i.reset=function(){o={},s={},u={}},i.isDefined=function(e){return e in o},i}(); | ||
loadjs=function(){var n=function(){},e={},t={},r={};function c(n,e){if(n){var c=r[n];if(t[n]=e,c)for(;c.length;)c[0](n,e),c.splice(0,1)}}function i(e,t){e.call&&(e={success:e}),t.length?(e.error||n)(t):(e.success||n)(e)}function o(e,t,r,c){var i,s,u=document,f=r.async,a=(r.numRetries||0)+1,h=r.before||n;c=c||0,/(^css!|\.css$)/.test(e)?(i=!0,(s=u.createElement("link")).rel="stylesheet",s.href=e.replace(/^css!/,"")):((s=u.createElement("script")).src=e,s.async=void 0===f||f),s.onload=s.onerror=s.onbeforeload=function(n){var u=n.type[0];if(i&&"hideFocus"in s)try{s.sheet.cssText.length||(u="e")}catch(n){u="e"}if("e"==u&&(c+=1)<a)return o(e,t,r,c);t(e,u,n.defaultPrevented)},!1!==h(e,s)&&u.head.appendChild(s)}function s(n,t,r){var s,u;if(t&&t.trim&&(s=t),u=(s?r:t)||{},s){if(s in e)throw"LoadJS";e[s]=!0}!function(n,e,t){var r,c,i=(n=n.push?n:[n]).length,s=i,u=[];for(r=function(n,t,r){if("e"==t&&u.push(n),"b"==t){if(!r)return;u.push(n)}--i||e(u)},c=0;c<s;c++)o(n[c],r,t)}(n,function(n){i(u,n),c(s,n)},u)}return s.ready=function(n,e){return function(n,e){var c,i,o,s=[],u=(n=n.push?n:[n]).length,f=u;for(c=function(n,t){t.length&&s.push(n),--f||e(s)};u--;)i=n[u],(o=t[i])?c(i,o):(r[i]=r[i]||[]).push(c)}(n,function(n){i(e,n)}),s},s.done=function(n){c(n,[])},s.reset=function(){e={},t={},r={}},s.isDefined=function(n){return n in e},s}(); |
@@ -93,5 +93,9 @@ /** | ||
// verify that file was added to body | ||
document.body.querySelectorAll('script').forEach(function(el) { | ||
var els = document.body.querySelectorAll('script'), | ||
el; | ||
for (var i=0; i < els.length; i++) { | ||
el = els[i]; | ||
if (el.src.indexOf('assets/file1.js') !== -1) done(); | ||
}); | ||
} | ||
} | ||
@@ -129,2 +133,4 @@ }); | ||
it('should support async false', function(done) { | ||
this.timeout(5000); | ||
var numCompleted = 0, | ||
@@ -291,5 +297,5 @@ numTests = 20, | ||
it('should support forced "css!" files', function(done) { | ||
this.timeout(0); | ||
//this.timeout(0); | ||
loadjs(['css!assets/cssfile.custom'], { | ||
loadjs(['css!assets/file1.css'], { | ||
success: function() { | ||
@@ -302,3 +308,3 @@ // loop through files | ||
while (i--) { | ||
if (els[i].href.indexOf('cssfile.custom') !== -1) done(); | ||
if (els[i].href.indexOf('file1.css') !== -1) done(); | ||
} | ||
@@ -515,3 +521,18 @@ } | ||
}); | ||
it('should accept success callback functions to loadjs()', function(done) { | ||
loadjs('assets/file1.js', function() { | ||
done(); | ||
}); | ||
}); | ||
it('should accept success callback functions to .ready()', function(done) { | ||
loadjs.done('plugin'); | ||
loadjs.ready('plugin', function() { | ||
done(); | ||
}); | ||
}); | ||
}); | ||
}); |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
906038
25077
341
39
19