UNPKG

solone

Version:

A component file routing system

9 lines 4.3 kB
window.solone=function(){function g(a,e){return{get:function(){return e[a]},set:function(d){e[a]=d},enumerable:!0,configurable:!0}}function m(a){return a?(f.uriDecoder?f.uriDecoder(a):decodeURIComponent(a)).split(/[&]/g).reduce(function(a,d){d=d.split("=");a[d[0]]=1===d.length?!0:d[1];return a},{env:f.env}):{env:f.env}}function l(a,e,d,c){var b=document.createElement("script");d&&b.setAttribute("debug",d);b.setAttribute("env",e);b.title=a;b.type="text/javascript";b.textContent=c;document.head.appendChild(b); return b}function k(a){return new Promise(function(e,d){var c=new XMLHttpRequest,b=Object.keys(f.headers||{}),h=b.length;c.open("GET",a,!0);if(h){var g=0;for(g;g<h;g++)c.setRequestHeader(b[g],__headers[b[g]])}c.onreadystatechange=function(){if(4===c.readyState)return 200===c.status?e(c.responseText):d(Error(c.status))};c.send()})}function n(a,e,d,c){var b=f.prefix+"/components/"+(c?c+"/":"")+a;return"dev"===e?Promise.all([k(b+"/"+a+".js"),k(b+"/"+a+".html"),k(b+"/"+a+".css")]).then(function(h){var d= h[1],b=h[2];h="//@ sourceURL="+location.origin+"/components/"+(c?c+"/":"")+a+".js\r\n//# sourceURL="+location.origin+"/components/"+(c?c+"/":"")+a+'.js\r\n__KaleoiExtensions__.components["'+a+'"] = (function(){\r\n\t'+(h[0]||"function "+a+"() {\r\nconsole.error('NO JS COMPONENT FOR '"+a+");\r\n}").replace(/(\r\n)/g,"\r\n\t")+"\r\n\t"+a+'.prototype.__extensionsHTML__ = "'+d.replace(/[\r\n]/g,"").replace(/["]/g,"'")+'";\r\n\t'+a+'.prototype.__extensionsCSS__ = "'+b.replace(/[\r\n]/g,"").replace(/["]/g, "'")+'";\r\n\treturn '+a+";\r\n}());";l(a,e,!1,h);return __KaleoiExtensions__.components[a]}).catch(function(c){console.error(c,a,e)}):k(b+"/"+e+"/"+a+(d?"":".min")+".js").then(function(b){b="//@ sourceURL="+location.origin+"/components/"+(c?c+"/":"")+a+(d?"":".min")+".js\r\n//# sourceURL="+location.origin+"/components/"+(c?c+"/":"")+a+(d?"":".min")+'.js\r\n__KaleoiExtensions__.components["'+a+'"] = (function(){\r\n\t'+(b||"function "+a+"() {\r\nconsole.error('NO JS COMPONENT FOR '"+a+");\r\n}").replace(/(\r\n)/g, "\r\n\t")+"\r\n\treturn "+a+";\r\n}());";l(a,e,d,b);return __KaleoiExtensions__.components[a]}).catch(function(c){console.error(c,a,e)})}function f(a){var e=m(location.search),d=e.debug||f.debug||!1,c="",b=e.useDesignPatterns||f.useDesignPatterns||!0;return-1===f.environments.indexOf(e.env)||b&&-1!==a.indexOf("--")&&(b=a.split("--"),a=b[1],c=b[0],-1===f.designPatterns.indexOf(c))?Promise.reject():f.authentication({component:a,query:e,headers:f.headers}).then(function(){return __KaleoiExtensions__.components[a]? __KaleoiExtensions__.components[a]:f.backendRouting?k("/"+a+location.search).then(function(b){var f=a,g=e.env;var h=a;var k=c;b=b||"function "+h+"() {\r\nconsole.error('NO JS COMPONENT FOR '"+h+");\r\n}";h=(-1===b.indexOf("//@ sourceURL=")?"//@ sourceURL="+location.origin+"/components/"+(k?k+"/":"")+h+(d?"":".min")+".js\r\n":"")+(-1===b.indexOf("//# sourceURL=")?"//# sourceURL="+location.origin+"/components/"+(k?k+"/":"")+h+(d?"":".min")+".js\r\n":"")+b;l(f,g,d,h);return __KaleoiExtensions__.components[a]}): n(a,e.env,d,c)}).catch(function(b){console.error(b,a,env,d,c)})}__KaleoiExtensions__.config||(__KaleoiExtensions__.config={env:"dev",environments:["dev","prod"],designPatterns:["atoms","molecules","organisms","templates","pages"]});__KaleoiExtensions__.authentication||(__KaleoiExtensions__.authentication=__KaleoiExtensions__.config.authentication||function(){return Promise.resolve()});Object.defineProperties(f,{config:{value:__KaleoiExtensions__.config,writable:!1,enumerable:!1,configurable:!1},backendRouting:g("backendRouting", __KaleoiExtensions__.config),designPatterns:g("designPatterns",__KaleoiExtensions__.config),useDesignPatterns:g("useDesignPatterns",__KaleoiExtensions__.config),uriDecoder:g("uriDecoder",__KaleoiExtensions__.config),headers:g("headers",__KaleoiExtensions__.config),prefix:g("prefix",__KaleoiExtensions__.config),environments:g("environments",__KaleoiExtensions__.config),env:g("env",__KaleoiExtensions__.config),debug:g("debug",__KaleoiExtensions__.config),authentication:g("authentication",__KaleoiExtensions__)}); "function"===typeof define&&define.amd&&define("solone",function(){return f});"object"===typeof module&&"object"===typeof module.exports&&(module.exports.solone=f);return f}();