UNPKG

@eastsideco/escshopify

Version:

WIP JS library for Shopify, containing a variety of useful functionality.

238 lines (215 loc) 16.9 kB
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <base data-ice="baseUrl" href="../../../../"> <title data-ice="title">src/utils/loggers/ConsoleLogger.js | @eastsideco/escshopify</title> <link type="text/css" rel="stylesheet" href="css/style.css"> <link type="text/css" rel="stylesheet" href="css/prettify-tomorrow.css"> <script src="script/prettify/prettify.js"></script> <script src="script/manual.js"></script> </head> <body class="layout-container" data-ice="rootContainer"> <header> <a href="./">Home</a> <a href="./manual/index.html" data-ice="manualHeaderLink">Manual</a> <a href="identifiers.html">Reference</a> <a href="source.html">Source</a> <div class="search-box"> <span> <img src="./image/search.png"> <span class="search-input-edge"></span><input class="search-input"><span class="search-input-edge"></span> </span> <ul class="search-result"></ul> </div> <a href="https://bitbucket.org/sigapps/escshopify.git">Repository</a></header> <nav class="navigation" data-ice="nav"><div> <ul> <li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-entities">entities</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-plugins">plugins</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-utils">utils</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-external">E</span><span data-ice="name"><span><a href="https://www.npmjs.com/package/evee">evee</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-external">E</span><span data-ice="name"><span><a href="https://www.npmjs.com/package/js-money">js-money</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-external">E</span><span data-ice="name"><span><a href="https://www.npmjs.com/package/promise-queue">promise-queue</a></span></span></li> <li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#entities">entities</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/entities/Cart.js~Cart.html">Cart</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/entities/Shop.js~Shop.html">Shop</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/entities/index.js~Entities.html">Entities</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-ShopifyCart">ShopifyCart</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-ShopifyCartLineItem">ShopifyCartLineItem</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-ShopifyAddress">ShopifyAddress</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-ShopifyPolicy">ShopifyPolicy</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-ShopifyShop">ShopifyShop</a></span></span></li> <li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#http">http</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/http/RequestQueuable.js~RequestQueuable.html">RequestQueuable</a></span></span></li> <li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#plugins">plugins</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/index.js~Plugins.html">Plugins</a></span></span></li> <li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#plugins-easycurrency">plugins/easycurrency</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/easycurrency/EasyCurrency.js~EasyCurrency.html">EasyCurrency</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/easycurrency/MoneySpan.js~MoneySpan.html">MoneySpan</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/easycurrency/MoneySpanSet.js~MoneySpanSet.html">MoneySpanSet</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/easycurrency/Session.js~Session.html">Session</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/easycurrency/config.js~Config.html">Config</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/easycurrency/state.js~State.html">State</a></span></span></li> <li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#plugins-easycurrency-formatters">plugins/easycurrency/formatters</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/easycurrency/formatters/DefaultFormatter.js~DefaultFormatter.html">DefaultFormatter</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/easycurrency/formatters/Formatter.js~Formatter.html">Formatter</a></span></span></li> <li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#plugins-easycurrency-helpers">plugins/easycurrency/helpers</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/easycurrency/helpers/SelectHelper.js~SelectHelper.html">SelectHelper</a></span></span></li> <li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#plugins-easycurrency-resolvers">plugins/easycurrency/resolvers</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/easycurrency/resolvers/CurrencyResolver.js~CurrencyResolver.html">CurrencyResolver</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/easycurrency/resolvers/GeoserviceResolver.js~GeoserviceResolver.html">GeoserviceResolver</a></span></span></li> <li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#plugins-geoservice">plugins/geoservice</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/geoservice/API.js~API.html">API</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/plugins/geoservice/GeoService.js~GeoService.html">GeoService</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-GSContinent">GSContinent</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-GSCountry">GSCountry</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-GSCurrencyRates">GSCurrencyRates</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-GSCurrencyResponse">GSCurrencyResponse</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-GSGeoResponse">GSGeoResponse</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-GSLocation">GSLocation</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-typedef">T</span><span data-ice="name"><span><a href="typedef/index.html#static-typedef-GSTranslatedString">GSTranslatedString</a></span></span></li> <li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#utils">utils</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/utils/Log.js~Log.html">Log</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/utils/general.js~GeneralUtils.html">GeneralUtils</a></span></span></li> <li data-ice="doc"><a data-ice="dirPath" class="nav-dir-path" href="identifiers.html#utils-loggers">utils/loggers</a><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/utils/loggers/ConsoleLogger.js~ConsoleLogger.html">ConsoleLogger</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/utils/loggers/Logger.js~Logger.html">Logger</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-class">C</span><span data-ice="name"><span><a href="class/src/utils/loggers/logLevel.js~LogLevel.html">LogLevel</a></span></span></li> <li data-ice="doc"><span data-ice="kind" class="kind-variable">V</span><span data-ice="name"><span><a href="variable/index.html#static-variable-logLevel">logLevel</a></span></span></li> </ul> </div> </nav> <div class="content" data-ice="content"><h1 data-ice="title">src/utils/loggers/ConsoleLogger.js</h1> <pre class="source-code line-number raw-source-code"><code class="prettyprint linenums" data-ice="content">import logLevel from &apos;./logLevel.js&apos;; import Logger from &apos;./Logger&apos;; /** * Basic logger that logs to the environment console. */ export default class ConsoleLogger extends Logger { /** * Create a new ConsoleLogger. */ constructor() { super(); /** @type {Number} */ this.level = logLevel.DEBUG; /** @type {Boolean} */ this.useFancyStyling = this._canUseFancyStyling(); } _canUseFancyStyling() { var browser = {}; browser.isFirefox = /firefox/i.test(navigator.userAgent); browser.isIE = document.documentMode; var support = {}; support.consoleApply = !browser.isIE || document.documentMode &amp;&amp; document.documentMode &gt; 9; support.functionGetters = support.consoleApply; support.console = !!window.console; support.modifiedConsole = !browser.isIE &amp;&amp; support.console &amp;&amp; console.log.toString().indexOf(&apos;apply&apos;) !== -1; support.consoleStyles = !!window.chrome || !!browser.isFirefox; support.consoleGroups = !!(window.console &amp;&amp; console.group); return support.consoleStyles; } /** * Sets current logging level. Messages below this log level will be ignored. * @param {Number} level */ setLogLevel(level) { this.level = level; } /** * Logs a message to the console * @param {type} level - Logging level * @param {type} tag - Logging tag * @param {type} text - Text to log */ send(level, tag, text) { if (level &lt; this.level) { return; } var fn = console.log; if ((console.error &amp;&amp; level == logLevel.ERROR) || (console.error &amp;&amp; level == logLevel.FATAL)) { fn = console.error; } if (console.warn &amp;&amp; level == logLevel.WARN) { fn = console.warn; } if (console.info &amp;&amp; level == logLevel.INFO) { fn = console.info; } if (console.debug &amp;&amp; level == logLevel.DEBUG) { fn = console.debug; } // Binding back to console because iOS Safari is weird if (this.useFancyStyling) { var str = &apos;%c&apos; + this.logPrefix + &apos;%c&apos; + logLevel.levelToString(level); str += &apos;%c %c&apos;+tag+&apos;%c&apos;+text; var levelColor = { DEBUG: &apos;#454F5B; color: white;&apos;, INFO: &apos;#007ACE; color: white;&apos;, WARN: &apos;#EEC200; color: white;&apos;, ERROR: &apos;#BF0711; color: white;&apos;, FATAL: &apos;linear-gradient(to top, #EEC200 0, #BF0711 100%); color: white;&apos; }[logLevel.levelToString(level)]; var styles = [ &apos;background: #202E78; border-top-left-radius: 4px; border-bottom-left-radius: 4px; padding: 0 8px;color: white&apos;, &apos;width: 55px; text-align: center; padding: 0 8px; border-bottom-right-radius: 4px; border-top-right-radius: 4px;background:&apos;+levelColor, &apos;padding: 0 2px;&apos;, &apos;background: #084E8A;padding:0 8px; color: white;border-radius: 8px;&apos;, &apos;padding:0 8px;&apos; ]; fn.bind(console)(str, ...styles); } else { fn.bind(console)(&apos;[&apos;+this.logPrefix+&apos;] &apos; + logLevel.levelToString(level) + &apos;: &apos; + &apos;[&apos; + tag + &apos;] &apos; + text); } } /** * Log an object. * @param {type} level - Logging level * @param {type} tag - Logging tag * @param {type} text - Logging text * @param {type} object - Object to be logged */ sendObject(level, tag, text, object) { if (level &lt; this.level) { return; } var fn = console.log; if ((console.error &amp;&amp; level == logLevel.ERROR) || (console.error &amp;&amp; level == logLevel.FATAL)) { fn = console.error; } if (console.warn &amp;&amp; level == logLevel.WARN) { fn = console.warn; } if (console.info &amp;&amp; level == logLevel.INFO) { fn = console.info; } if (console.debug &amp;&amp; level == this.DEBUG) { fn = console.debug; } // Binding back to console because iOS Safari is weird if (this.useFancyStyling) { var str = &apos;%c&apos; + this.logPrefix + &apos;%c&apos; + logLevel.levelToString(level); str += &apos;%c %c&apos;+tag+&apos;%c&apos;+text+ &apos; %o&apos;; var levelColor = { DEBUG: &apos;#454F5B; color: white;&apos;, INFO: &apos;#007ACE; color: white;&apos;, WARN: &apos;#EEC200; color: white;&apos;, ERROR: &apos;#BF0711; color: white;&apos;, FATAL: &apos;linear-gradient(to top, #EEC200 0, #BF0711 100%); color: white;&apos; }[logLevel.levelToString(level)]; var styles = [ &apos;background: #202E78; border-top-left-radius: 4px; border-bottom-left-radius: 4px; padding: 0 8px;color: white&apos;, &apos;width: 55px; text-align: center; padding: 0 8px; border-bottom-right-radius: 4px; border-top-right-radius: 4px;background:&apos;+levelColor, &apos;padding: 0 2px;&apos;, &apos;background: #084E8A;padding:1px 8px; color: white;border-radius: 8px;&apos;, &apos;padding-left: 8px;&apos; ]; fn.bind(console)(str, ...styles, object); } else { fn.bind(console)(&apos;[&apos;+this.logPrefix+&apos;] &apos; + logLevel.levelToString(level) + &apos;: &apos; + &apos;[&apos; + tag + &apos;] &apos; + text, object); } } } </code></pre> </div> <footer class="footer"> Generated by <a href="https://esdoc.org">ESDoc<span data-ice="esdocVersion">(1.0.4)</span><img src="./image/esdoc-logo-mini-black.png"></a> </footer> <script src="script/search_index.js"></script> <script src="script/search.js"></script> <script src="script/pretty-print.js"></script> <script src="script/inherited-summary.js"></script> <script src="script/test-summary.js"></script> <script src="script/inner-link.js"></script> <script src="script/patch-for-local.js"></script> </body> </html>