ricejs
Version:
Architecture for development of applications with javascript with high capacity of integration to diverse frameworks.
1 lines • 5.05 kB
JavaScript
;function _defineProperty(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function mapping(e,r,t){if("string"==typeof r){var r=r.split("."),i=e;if(t){r.reverse();for(var n=_defineProperty({},r[0],t),o=1;o<r.length-1;o++)n=_defineProperty({},r[o],n);var c=r[r.length-1];i[c]=n[c]}else for(var a=0;a<r.length;a++)i=i[r[a]];return i}return e}function uuid(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}function RiceCore(){var e={service:{},controller:{}};return e.name="Rice!",e._getData=function(){return __RiceData},e.addConstructor=function(e){__RiceData._.constructors.push(e)},e.init=function(){for(var r in __RiceData._.constructors){var t=__RiceData._.constructors[r].call(e);t&&(e=t)}return e},e.addConfig=function(e,r){function t(e,r){if(mapping(__RiceData._.config,e))return console.error('There is already an item named "'+e+'" in config. To update this item use setConfig ()');mapping(__RiceData._.config,e,r)}if("object"==(void 0===e?"undefined":_typeof(e)))for(var i in e)t(i,e[i]);else t(e,r)},e.setConfig=function(e,r){function t(e,r){mapping(__RiceData._.config,e,r)}if("object"==(void 0===e?"undefined":_typeof(e)))for(var i in e)t(i,e[i]);else t(e,r)},e.getConfig=function(e){return mapping(__RiceData._.config,e)},e.add=function(r,t){return e[r]?console.error('"Rice.'+r+'" was not created. A key with this name already exists.'):(e[r]=t,e)},e.build=function(r,t){__RiceData._.build[r]||(__RiceData._.build[r]={});var i=e;i.addData=function(e,t){return __RiceData._.build[r][e]?void console.error("rice-"+r+': "'+e+'" was not created. A key with this name already exists.'):__RiceData._.build[r][e]=t},i.setData=function(e,t){__RiceData._.build[r][e]=t},i.getData=function(e){return __RiceData._.build[r][e]};var n=t.apply(e);return n?Rice=n:e},e.setCache=function(e,r){var t=uuid();return __RiceData._.cache[t+"_"+e]=r,t},e.getCache=function(e,r){return r?__RiceData._.cache[e+"_"+r]:__RiceData._.cache[e]},e.removeCache=function(e,r){if(r)return void delete __RiceData._.cache[e+"_"+r];delete __RiceData._.cache[e]},e.global=function(e,r){if(void 0==r)return __RiceData._.globals[e]?__RiceData._.globals[e]:void 0;__RiceData._.globals[e]=r},e.addService=function(e,r){if(__RiceData._.services[e])return console.error('Can not create the "'+e+'" service. Another service with this name already exists');__RiceData._.services[e]=r},e.initService=function(r){for(var t=arguments.length,i=Array(t>1?t-1:0),n=1;n<t;n++)i[n-1]=arguments[n];if(!__RiceData._.services[r])return console.error('There is no registered service called "'+r+'"');e.service[r]=__RiceData._.services[r].apply(null,i),e.service[r].init&&e.service[r].init()},e.initAllServices=function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t in __RiceData._.services){var i=[t];r[t]&&(Array.isArray(r[t])?r[t].map(function(e){i.push(r[e])}):i.push(r[t])),e.initService.apply(null,i)}},e.stopService=function(r){e.service[r]&&(e.service[r].stop?e.service[r].stop(function(){delete e.service[r]}):delete e.service[r],delete __RiceData._.services[r])},e.stopAllServices=function(r){for(var t in e.service)e.stopService(t)},e.addController=function(e,r){__RiceData._.controllers[e]=r},e.controller=function(e){try{for(var r=__RiceData._.controllers[e],t=arguments.length,i=Array(t>1?t-1:0),n=1;n<t;n++)i[n-1]=arguments[n];return r.apply(null,i)}catch(r){if(!__RiceData._.controllers[e])return console.error('The controller "'+e+'" has not been registered. Use Rice.addController("'+e+'", function(){...}) to register it.');console.error(r)}},e}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};String.prototype.replaceRecursive=function(e,r){return this.replace(new RegExp(e,"g"),r)},String.prototype.replaceAll=function(e,r){var t=this;if(Array.isArray(e)){for(var i in e)t=t.replaceRecursive(e[i],r);return t}if("object"==(void 0===e?"undefined":_typeof(e))){for(var i in e)t=t.replaceRecursive(i,e[i]);return t}return t.replaceRecursive(i,e[i])},String.prototype.replaceVar=function(e,r,t){var i=this;if(t||(t="%"),Array.isArray(e)){for(var n in e)i=i.replaceAll(t+e[n]+t,r);return i}if("object"==(void 0===e?"undefined":_typeof(e))){for(var n in e)i=i.replaceAll(t+n+t,e[n]);return i}return i.replaceAll(t+n+t,e[n])};var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},__RiceData={_:{services:{},servicesLoaded:{},globals:{},cache:{},constructors:[],controllers:{},config:{test:{ok:!0}},build:{}}};if("object"==("undefined"==typeof module?"undefined":_typeof(module))&&"object"==_typeof(module.exports))module.exports=new RiceCore;else var Rice=new RiceCore;