UNPKG

@waiting/log

Version:

Lightweight logging for browser

13 lines (11 loc) 3.89 kB
/** * @waiting/log * Lightweight logging for browser * * @version 1.0.2 * @author waiting * @license MIT * @link https://github.com/waitingsong/log#readme */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define("log",["exports"],t):t((e=e||self).log={})}(this,function(e){"use strict";const t={maxMsgLength:1024,runLevel:"log",persist:!0,persistTTL:604800,storagePrefix:"log"};var n;function r(e,t){const n=e.split("-");if(n.length<3)return!1;const r=n.shift(),o=n.shift(),i=n.join("-");if(r!==t)return!1;if(!o)return!1;if(!i)return!1;{const e=new Date(i);if("function"!=typeof e.getTime||Number.isNaN(e.getTime()))return!1}return!0}function o(t,n){return e.LogLevel[n]<e.LogLevel[t]}function i(e,t){return!!e&&(!t||e===t)}function s(e,t){if(!e)return!1;const n=new Date(e);return n<t}function f(e){a(e),t.maxMsgLength=Math.ceil(e)}function a(e){if("number"!=typeof e||e<=0)throw new TypeError("Value of parameter maxMsgLenth invalid")}function u(e){l(e),t.persist=e}function l(e){if("boolean"!=typeof e)throw new TypeError("Value of parameter persist invalid")}function c(e){g(e),t.persistTTL=Math.ceil(e)}function g(e){if("number"!=typeof e)throw new TypeError("Value of parameter ttl invalid");if(+e<0)throw new TypeError("Value of parameter ttl invalid")}function p(e){L(e),t.runLevel=e}function L(t){if("silent"!==t&&"function"!=typeof console[t])throw new TypeError(`Function console.${t}() NOT exists`);if(!t||"number"!=typeof e.LogLevel[t])throw new TypeError("Value of parameter logLevel invalid: "+t)}function v(e){y(e),t.storagePrefix=e.replace(/-/g,"_")}function y(e){if(!e||"string"!=typeof e)throw new TypeError("Value of parameter key invalid")}function d(e,t,n,r){if("silent"===e)return"";const o=(new Date).toISOString(),i=`${n}-${e}-${o}`;return h(i,t,r),i}function h(e,t,n){let r=t;"string"==typeof t&&t.length>n&&(r=t.slice(0,n)+" ...");const o=JSON.stringify(r);if("object"==typeof localStorage)try{localStorage.setItem(encodeURIComponent(e),o)}catch(e){console.error(e)}}function m(e,t){if("silent"!==e)if(Array.isArray(t)){console.group("Group log:");for(let n=0;n<t.length;n++)console[e](t[n]);console.groupEnd()}else console[e](t)}function b(e,t){return N("trace",e,t)}function T(e,t){return N("debug",e,t)}function w(e,t){return N("log",e,t)}function x(e,t){return N("info",e,t)}function P(e,t){return N("warn",e,t)}function M(e,t){return N("error",e,t)}function E(e,t){return N("silent",e,t)}function S(){return Object.assign({},t)}function j(e){if(e&&"object"==typeof e)for(const[t,n]of Object.entries(e))switch(t){case"maxMsgLength":f(n);break;case"persist":u(n);break;case"persistTTL":c(n);break;case"runLevel":p(n);break;case"storagePrefix":v(n);break;default:x(`setConfig(config): value of param invalid: key "${t}"/value "${n}"`)}else x(`setConfig(config): value of param invalid: "${e}"`);return S()}function k(){const t=[];return Object.keys(e.LogLevel).forEach(e=>{if(e&&"string"==typeof e&&Number.isNaN(+e))try{L(e),t.push(e)}catch(e){}}),t}function N(e,n,r){if(o(t.runLevel,e))return;if("silent"===e)return;m(e,n);const i="boolean"==typeof r?r:t.persist;i&&d(e,n,t.storagePrefix,t.maxMsgLength)}(n=e.LogLevel||(e.LogLevel={}))[n.trace=0]="trace",n[n.debug=1]="debug",n[n.log=2]="log",n[n.info=3]="info",n[n.warn=4]="warn",n[n.error=5]="error",n[n.silent=6]="silent",e.trace=b,e.debug=T,e.log=w,e.info=x,e.warn=P,e.error=M,e.silent=E,e.getConfig=S,e.setConfig=j,e.getAvailableLogLevel=k,e.isLocalStorageKey=r,e.isSuppressLogLevel=o,e.isLogLevelToPrune=i,e.isTimeToPrune=s,e.setMaxMsgLength=f,e.validateMaxMsgLength=a,e.setPersist=u,e.validatePersist=l,e.setPersistTTL=c,e.validatePersistTTL=g,e.setRunLevel=p,e.validateLogLevel=L,e.setStoragePrefix=v,e.validateStoragePrefix=y,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=log.umd.min.js.map