/
define.min.js
8 lines (8 loc) · 10.1 KB
/
define.min.js
1
2
3
4
5
6
7
8
/*!
* Author: Darren Schnare
* Version: 1.0
* Keywords: javascript,amd,browser,pure,lightweight
* License: MIT ( http://www.opensource.org/licenses/mit-license.php )
* Repo: https://github.com/dschnare/definejs
*/
var define=function(n,t,i,r){function f(){if(f.prod)return;var i,e,h,u,s,o,r,t;for(r=f.getContainer()||f.buffer,t=n.createDocumentFragment(),o=function(){return n.createTextNode(" ")},u=function(){return n.createElement("br")},s=function(t){return n.createTextNode(t+"")},e=arguments.length,r!==f.buffer&&f.buffer&&(r.appendChild(f.buffer),f.buffer=null),i=0;i<e;i++)t.appendChild(s(arguments[i])),t.appendChild(o());t.appendChild(u()),r.appendChild(t),f.defer()}function k(){function i(){var i=n==="resolved"?u:r;while(i.length)i.shift()(t)}var u=[],r=[],n="unresolved",t;return{status:function(){return n},isResolved:function(){return n!=="unresolved"},resolve:function(r){if(n!=="unresolved")throw new Error("Cannot resolve a promise that is already resolved.");t=r,n="resolved",i()},error:function(r){if(n!=="unresolved")throw new Error("Cannot resolve a promise that is already resolved.");t=r,n="error",i()},done:function(i){n==="resolved"?i(t):n==="unresolved"&&u.push(i)},fail:function(i){n==="error"?i(t):n==="unresolved"&&r.push(i)}}}function g(){var n={};return{saveModuleExports:function(t,i){n[t]=i},removeModuleExports:function(t){delete n[t]},getModuleExports:function(t){return n[t]},containsModuleExports:function(t){return t in n}}}function h(n){var t,r,i;t={baseUrl:"",paths:{},urlArgs:"",timeout:5e3};if(!u.isObject(n))return t;"baseUrl"in n&&typeof n.baseUrl=="string"&&n.baseUrl.length!==0&&(t.baseUrl=n.baseUrl,n.baseUrl.charAt(n.baseUrl.length-1)!=="/"&&(t.baseUrl+="/"));if("urlArgs"in n)if(u.isString(n.urlArgs))t.urlArgs="?"+n.urlArgs.replace(/^\?/,"");else if(u.isObject(n.urlArgs)){i="";for(r in n.urlArgs)i="&"+r+"="+encodeURIComponent(n.urlArgs[r]+"");i.charAt(0)==="&"&&(i=i.substring(1)),t.urlArgs=i.length?"?"+i:i}u.isObject(n.paths)&&(t.paths=n.paths),!isNaN(n.timeout)&&parseFloat(n.timeout)>0&&(t.timeout=parseFloat(n.timeout));for(r in n)r in t||(t[r]=n[r]);return t}function ut(t,f,e,o){var s=n.createElement("script"),h;s.onload=function(){r(h),s.onload=null,s.onreadystatechange=null,s.onerror=null,u.isFunction(e)&&e(t)},s.onreadystatechange=function(){(s.readyState==="complete"||s.readyState==="loaded")&&s.onload()},s.onerror=function(){r(h),s.onload=null,s.onreadystatechange=null,s.onerror=null,u.isFunction(o)&&o(new Error("Failed to load script: "+t))},h=i(function(){s.onload=function(){},u.isFunction(o)&&o(new Error("Failed to load script '"+t+"' due to timeout ("+f+"ms)."))},f),s.src=t,n.getElementsByTagName("head")[0].appendChild(s)}function e(n){var f,i,t,u,r,o;u=e.VALID_CHARS_REGEXP,r=e.FILE_EXTENSION_LIKE_REGEXP,emptyTermRegExp=e.EMPTY_TERM_REGEXP,i=n.split("");for(f in i){t=i[f];if(typeof t!="string")continue;if(!u.test(t))return!1}return n.search(r)>0?!1:n.search(emptyTermRegExp)>=0?!1:!0}function it(n){return e(n)?n.substring(0,2)==="./"?!1:n.substring(0,3)==="../"?!1:n.search(/a-z+:/i)>=0?!1:!0:!1}function rt(n,t){var r,i;return i=t.split("/"),i.pop(),r=i.join("/")+(i.length?"/":""),n.substring(0,2)==="./"?n=r+n.substring(2):n.substring(0,3)==="../"&&(i.pop(),r=i.join("/")+(i.length?"/":""),n=r+n.substring(3)),n}function a(n,t,i,r,u,f){var s,e="",o=new RegExp("\\"+f+"$","i");return f=f||".js",n=rt(n,t),n in r&&(n=r[n]),/^\/|^[a-z]+:/i.test(n)||o.test(n)?n:(e=i+n,e+=f,e+=u)}function l(n,t,i){var r;if(n in i)if(n!==t){r=i[n];if(r.promise.isResolved())return!1;if(r.dependencies.contains(t))return!0;r.dependencies.forEach(function(n,r){if(l(r,t,i))return!0})}return!1}function v(n,t,i){return require=function(){if(u.isArray(arguments[0])){if(u.isFunction(arguments[1]))(function(r){function s(n,t){o&&(e[n]=t),--o==0&&h.apply(undefined,e)}var f=r[0],o=f.length,h=r[1],e=[],u;for(u in f){if(typeof f[u]=="function")continue;p(t,f[u],n,function(n){return function(t){s(n,t)}}(u),i)}})(arguments);else throw new Error("TypeError: Expected a callback function.");return}if(u.isString(arguments[0])){switch(arguments[0]){case"require":return v(n,t,i);case"config":return h.immutable(t.config)}if(!t.containsModuleExports(arguments[0]))throw new Error("Module has not been exported into context: "+arguments[0]);return t.getModuleExports(arguments[0])}throw new Error("TypeError: Expected a module ID.");},require.toUrl=function(){var i=/\.[a-zA-Z0-9_]+$/;return function(r){var o,e,f=t.config;if(u.isString(r)&&i.test(r))return o=r.match(i).pop(),e=r.replace(i,""),a(e,n,f.baseUrl,f.paths,"",o);throw new Error("TypeError: Expected a module ID of the form 'module-id.extension'.");}}(),require}function p(n,t,i,r,f){var c,e,o,h;r=function(n){return function(t){u.isFunction(n)&&n(t)}}(r),f=function(n){return function(t){u.isFunction(n)&&n(t)}}(f),o=n.config,e=a(t,i,o.baseUrl,o.paths,o.urlArgs),n.containsModuleExports(t)?r(n.getModuleExports(t)):t in n?l(t,i,n)?r(undefined):(n[t].promise.done(r),n[t].promise.fail(f)):e in n?(n[e].done(r),n[e].fail(f)):(n[e]=h=k(),ut(e,o.timeout,function(){delete n[e],s.dequeue()(n,t,e,function(n){r(n),h.resolve(n)},function(n){f(n),h.error(n)})},function(t){delete n[e],f(t)}))}function c(n){n=u.isArray(n)?n.slice():[];var t=n.length;return n.count=function(){return t},n.forEach=function(n){for(var t in this){if(typeof this[t]=="function")continue;n.call(undefined,t,this[t])}},n.remove=function(n){n in this&&(delete this[n],t-=1)},n.contains=function(n){for(var t in this){if(typeof this[t]=="function")continue;if(this[t]===n)return!0}return!1},n}function ft(){var t,n;return n=[],t={exports:null,module:null,require:null},{importCommonJsExports:function(i){return i.forEach(function(r,u){switch(u){case"exports":n[r]=t.exports={},i.remove(r)}}),t.exports},importCommonJs:function(i,r,u,f){f.forEach(function(e,o){switch(o){case"require":n[e]=t.require=v(i,u,null),t.require.main={id:i,uri:r},f.remove(e);break;case"module":n[e]=t.module={id:i,uri:r},f.remove(e)}})},set:function(t,i){n[t]=i},valueOf:function(){return n}}}function nt(n){var i,t,f,u,s,o,r,e=[];i=n.toString(),t=/^function\s*\((.*?)\)/.exec(i)[1];if(t)for(t=t.split(","),s=t.length,u=0;u<s;u++){f=t[u].replace(/^\s+|\s+$/g,"");switch(f){case"require":case"exports":case"module":e.push(f);break;default:throw new Error("Unrecognized dependency '"+f+"' in script: "+i);}}o=/require\(('|")(.+?)\1\)/g,r=o.exec(i);while(r)e.push(r[2]),r=o.exec(i);return e}function tt(n){var o,t,i={moduleId:"",dependencies:c()},e,r,f;if(n.length>1){f=[],e=u.isString(n[0])?n.shift()+"":"",r=u.isArray(n[0])?n.shift().slice():f,t=n.pop();if(r!==f&&!u.isFunction(t))throw new Error("Expected a module factory function, instead got '"+t+"'.");i.moduleId=e,i.dependencies=c(r)}else t=n.pop();return i.factory=function(n,i){var r;return u.isFunction(t)?(r=u.isArray(n)?t.apply(undefined,n):t.call(undefined,n),i||r):t},i.dependencies.count()===0&&u.isFunction(t)&&(i.dependencies=c(nt(t))),i}function y(n){function t(){var f,e,r,c,h,l;try{f=tt(w.prototype.slice.call(arguments))}catch(a){o.trigger(a);return}e=f.dependencies,c=ft(),r=c.importCommonJsExports(e),h=k();if(f.moduleId)if(it(f.moduleId)){if(f.moduleId in n){globalErrorHanlder.trigger("Module '"+f.moduleId+"' has already been defined.");return}r?n.saveModuleExports(f.moduleId,r):n[f.moduleId]={promise:h,dependencies:e}}else{o.trigger(new Error("Invalid explicit module ID: "+f.moduleId));return}s.enqueue(l=function(i,s,l,a,v){var y;s=f.moduleId||s,v=function(n){return function(t){delete y[s],u.isFunction(n)?(n(t),h.error(t)):o.trigger(t)}}(v),t===d?(i!==n&&(i[s]=n[s],delete n[s],r&&(i.saveModuleExports(s,r),n.removeModuleExports(s))),y=i):y=n;if(!r&&y.containsModuleExports(s)){v(new Error("Module '"+s+"' has already been defined."));return}try{c.importCommonJs(s,l,y,e)}catch(w){v(w);return}a=function(n){var t=f.dependencies.count();return function(i,e){t&&c.set(i,e);if(t===0||--t==0)try{r=f.factory(c.valueOf(),r),y.saveModuleExports(s,r),delete y[s],u.isFunction(n)&&n(r),h.resolve(r)}catch(o){v(o)}}}(a),r?n.saveModuleExports(s,r):y[s]={promise:h,dependencies:e},e.count()?e.forEach(function(n,t){p(y,t,s,function(t){a(n,t)},v)}):a()}),i(function(){s.contains(l)&&(s.remove(l),l(n,"",""))},1)}return t.error=o.error,t.log=f,t.context=function(n){var t=g();return t.config=h(n),{define:y(t)}},t.amd={plugins:!1,pluginDynamic:!1,multiversion:!0,defaultDeps:!1,jQuery:!0},t}if(t.define)return t.define;f.prod=!1,f.buffer=n.createDocumentFragment(),f.defer=function(){var n=f.getContainer();n?f.buffer&&(n.appendChild(f.buffer),f.buffer=null):i(f.defer,0)},f.getContainer=function(){return n.body};var d,s,u,o,w,b;return w=[].constructor,b="".constructor,u={isFunction:function(n){return typeof n=="function"},isArray:function(n){return{}.toString.call(n)==="[object Array]"},isString:function(n){return n instanceof b||typeof n=="string"},isObject:function(n){return n===null||n===undefined?!1:typeof n=="object"},object:{create:function(n){function t(){}return t.prototype=n,new t}}},o=function(){var n=[];return{error:function(t){u.isFunction(t)&&n.push(t)},trigger:function(t){var i,r=n.length;if(r===0)throw t;for(i=0;i<r;i++)n[i](t)}}}(),s=function(){var n=[];return n.enqueue=function(n){this.push(n)},n.dequeue=function(){return this.shift()},n.contains=function(n){for(var i=this.length,t=0;t<i;t++)if(this[t]===n)return!0;return!1},n.remove=function(n){for(var i=this.length,t=0;t<i;t++)if(this[t]===n){this.splice(t,1);break}},n.clear=function(){while(this.length)this.pop()},n}(),h.immutable=function(n){return n=u.object.create(n),n.paths&&(n.paths=u.object.create(n.paths)),n},e.VALID_CHARS_REGEXP=/[a-z0-9_\-\/\.]/i,e.FILE_EXTENSION_LIKE_REGEXP=/[^\/].[^\/]/,e.EMPTY_TERM_REGEXP=/\/\//,d=function(){function a(n){var t=new Function("window","document","alert","console",n);return t.call({})}var s,o,u,f,l,t,i,r,c,e;u=n.getElementsByTagName("script"),f=u.length,l=/define.*?\.js$/;while(f--)if(l.test(u[f].src)){t=u[f].innerHTML,t=t.replace(/^\s+|\s+$/g,""),t="return "+t+";";try{i=a(t),c=i?i.config:null,r=i?i.main:null}catch(v){e=Error("An error occurred while parsing the JSON initialization object."),e.nestedError=v;throw e;}break}return s=g(),s.config=h(c),o=y(s),r&&typeof r=="string"&&o([r],function(){}),o}()}(document,window,setTimeout,clearTimeout)