redux-logger
Advanced tools
Comparing version 3.0.6 to 4.0.0
@@ -1,1 +0,1 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.reduxLogger=e.reduxLogger||{})}(this,function(e){"use strict";function t(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function r(e,t){Object.defineProperty(this,"kind",{value:e,enumerable:!0}),t&&t.length&&Object.defineProperty(this,"path",{value:t,enumerable:!0})}function n(e,t,r){n.super_.call(this,"E",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0}),Object.defineProperty(this,"rhs",{value:r,enumerable:!0})}function o(e,t){o.super_.call(this,"N",e),Object.defineProperty(this,"rhs",{value:t,enumerable:!0})}function i(e,t){i.super_.call(this,"D",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0})}function a(e,t,r){a.super_.call(this,"A",e),Object.defineProperty(this,"index",{value:t,enumerable:!0}),Object.defineProperty(this,"item",{value:r,enumerable:!0})}function f(e,t,r){var n=e.slice((r||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,n),e}function u(e){var t="undefined"==typeof e?"undefined":N(e);return"object"!==t?t:e===Math?"math":null===e?"null":Array.isArray(e)?"array":"[object Date]"===Object.prototype.toString.call(e)?"date":"function"==typeof e.toString&&/^\/.*\//.test(e.toString())?"regexp":"object"}function l(e,t,r,c,s,d,p){s=s||[],p=p||[];var g=s.slice(0);if("undefined"!=typeof d){if(c){if("function"==typeof c&&c(g,d))return;if("object"===("undefined"==typeof c?"undefined":N(c))){if(c.prefilter&&c.prefilter(g,d))return;if(c.normalize){var h=c.normalize(g,d,e,t);h&&(e=h[0],t=h[1])}}}g.push(d)}"regexp"===u(e)&&"regexp"===u(t)&&(e=e.toString(),t=t.toString());var y="undefined"==typeof e?"undefined":N(e),v="undefined"==typeof t?"undefined":N(t),b="undefined"!==y||p&&p[p.length-1].lhs&&p[p.length-1].lhs.hasOwnProperty(d),m="undefined"!==v||p&&p[p.length-1].rhs&&p[p.length-1].rhs.hasOwnProperty(d);if(!b&&m)r(new o(g,t));else if(!m&&b)r(new i(g,e));else if(u(e)!==u(t))r(new n(g,e,t));else if("date"===u(e)&&e-t!==0)r(new n(g,e,t));else if("object"===y&&null!==e&&null!==t)if(p.filter(function(t){return t.lhs===e}).length)e!==t&&r(new n(g,e,t));else{if(p.push({lhs:e,rhs:t}),Array.isArray(e)){var w;e.length;for(w=0;w<e.length;w++)w>=t.length?r(new a(g,w,new i(void 0,e[w]))):l(e[w],t[w],r,c,g,w,p);for(;w<t.length;)r(new a(g,w,new o(void 0,t[w++])))}else{var x=Object.keys(e),S=Object.keys(t);x.forEach(function(n,o){var i=S.indexOf(n);i>=0?(l(e[n],t[n],r,c,g,n,p),S=f(S,i)):l(e[n],void 0,r,c,g,n,p)}),S.forEach(function(e){l(void 0,t[e],r,c,g,e,p)})}p.length=p.length-1}else e!==t&&("number"===y&&isNaN(e)&&isNaN(t)||r(new n(g,e,t)))}function c(e,t,r,n){return n=n||[],l(e,t,function(e){e&&n.push(e)},r),n.length?n:void 0}function s(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n<i;n++)o=o[r.path[n]];switch(r.kind){case"A":s(o[r.path[n]],r.index,r.item);break;case"D":delete o[r.path[n]];break;case"E":case"N":o[r.path[n]]=r.rhs}}else switch(r.kind){case"A":s(e[t],r.index,r.item);break;case"D":e=f(e,t);break;case"E":case"N":e[t]=r.rhs}return e}function d(e,t,r){if(e&&t&&r&&r.kind){for(var n=e,o=-1,i=r.path?r.path.length-1:0;++o<i;)"undefined"==typeof n[r.path[o]]&&(n[r.path[o]]="number"==typeof r.path[o]?[]:{}),n=n[r.path[o]];switch(r.kind){case"A":s(r.path?n[r.path[o]]:n,r.index,r.item);break;case"D":delete n[r.path[o]];break;case"E":case"N":n[r.path[o]]=r.rhs}}}function p(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n<i;n++)o=o[r.path[n]];switch(r.kind){case"A":p(o[r.path[n]],r.index,r.item);break;case"D":o[r.path[n]]=r.lhs;break;case"E":o[r.path[n]]=r.lhs;break;case"N":delete o[r.path[n]]}}else switch(r.kind){case"A":p(e[t],r.index,r.item);break;case"D":e[t]=r.lhs;break;case"E":e[t]=r.lhs;break;case"N":e=f(e,t)}return e}function g(e,t,r){if(e&&t&&r&&r.kind){var n,o,i=e;for(o=r.path.length-1,n=0;n<o;n++)"undefined"==typeof i[r.path[n]]&&(i[r.path[n]]={}),i=i[r.path[n]];switch(r.kind){case"A":p(i[r.path[n]],r.index,r.item);break;case"D":i[r.path[n]]=r.lhs;break;case"E":i[r.path[n]]=r.lhs;break;case"N":delete i[r.path[n]]}}}function h(e,t,r){if(e&&t){var n=function(n){r&&!r(e,t,n)||d(e,t,n)};l(e,t,n)}}function y(e){return"color: "+F[e].color+"; font-weight: bold"}function v(e){var t=e.kind,r=e.path,n=e.lhs,o=e.rhs,i=e.index,a=e.item;switch(t){case"E":return[r.join("."),n,"→",o];case"N":return[r.join("."),o];case"D":return[r.join(".")];case"A":return[r.join(".")+"["+i+"]",a];default:return[]}}function b(e,t,r,n){var o=c(e,t);try{n?r.groupCollapsed("diff"):r.group("diff")}catch(e){r.log("diff")}o?o.forEach(function(e){var t=e.kind,n=v(e);r.log.apply(r,["%c "+F[t].text,y(t)].concat(P(n)))}):r.log("—— no diff ——");try{r.groupEnd()}catch(e){r.log("—— diff end —— ")}}function m(e,t,r,n){switch("undefined"==typeof e?"undefined":N(e)){case"object":return"function"==typeof e[n]?e[n].apply(e,P(r)):e[n];case"function":return e(t);default:return e}}function w(e){var t=e.timestamp,r=e.duration;return function(e,n,o){var i=["action"];return i.push("%c"+String(e.type)),t&&i.push("%c@ "+n),r&&i.push("%c(in "+o.toFixed(2)+" ms)"),i.join(" ")}}function x(e,t){var r=t.logger,n=t.actionTransformer,o=t.titleFormatter,i=void 0===o?w(t):o,a=t.collapsed,f=t.colors,u=t.level,l=t.diff,c="undefined"==typeof t.titleFormatter;e.forEach(function(o,s){var d=o.started,p=o.startedTime,g=o.action,h=o.prevState,y=o.error,v=o.took,w=o.nextState,x=e[s+1];x&&(w=x.prevState,v=x.started-d);var S=n(g),k="function"==typeof a?a(function(){return w},g,o):a,j=D(p),E=f.title?"color: "+f.title(S)+";":"",A=["color: gray; font-weight: lighter;"];A.push(E),t.timestamp&&A.push("color: gray; font-weight: lighter;"),t.duration&&A.push("color: gray; font-weight: lighter;");var O=i(S,j,v);try{k?f.title&&c?r.groupCollapsed.apply(r,["%c "+O].concat(A)):r.groupCollapsed(O):f.title&&c?r.group.apply(r,["%c "+O].concat(A)):r.group(O)}catch(e){r.log(O)}var N=m(u,S,[h],"prevState"),P=m(u,S,[S],"action"),C=m(u,S,[y,h],"error"),F=m(u,S,[w],"nextState");if(N)if(f.prevState){var L="color: "+f.prevState(h)+"; font-weight: bold";r[N]("%c prev state",L,h)}else r[N]("prev state",h);if(P)if(f.action){var T="color: "+f.action(S)+"; font-weight: bold";r[P]("%c action ",T,S)}else r[P]("action ",S);if(y&&C)if(f.error){var M="color: "+f.error(y,h)+"; font-weight: bold;";r[C]("%c error ",M,y)}else r[C]("error ",y);if(F)if(f.nextState){var _="color: "+f.nextState(w)+"; font-weight: bold";r[F]("%c next state",_,w)}else r[F]("next state",w);l&&b(h,w,r,k);try{r.groupEnd()}catch(e){r.log("—— log end ——")}})}function S(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},L,e),r=t.logger,n=t.stateTransformer,o=t.errorTransformer,i=t.predicate,a=t.logErrors,f=t.diffPredicate;if("undefined"==typeof r)return function(){return function(e){return function(t){return e(t)}}};if(e.getState&&e.dispatch)return console.error("[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\n// Logger with default options\nimport { logger } from 'redux-logger'\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\nimport createLogger from 'redux-logger'\nconst logger = createLogger({\n // ...options\n});\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n"),function(){return function(e){return function(t){return e(t)}}};var u=[];return function(e){var r=e.getState;return function(e){return function(l){if("function"==typeof i&&!i(r,l))return e(l);var c={};u.push(c),c.started=O.now(),c.startedTime=new Date,c.prevState=n(r()),c.action=l;var s=void 0;if(a)try{s=e(l)}catch(e){c.error=o(e)}else s=e(l);c.took=O.now()-c.started,c.nextState=n(r());var d=t.diff&&"function"==typeof f?f(r,l):t.diff;if(x(u,Object.assign({},t,{diff:d})),u.length=0,c.error)throw c.error;return s}}}}var k,j,E=function(e,t){return new Array(t+1).join(e)},A=function(e,t){return E("0",t-e.toString().length)+e},D=function(e){return A(e.getHours(),2)+":"+A(e.getMinutes(),2)+":"+A(e.getSeconds(),2)+"."+A(e.getMilliseconds(),3)},O="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance:Date,N="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},P=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)},C=[];k="object"===("undefined"==typeof global?"undefined":N(global))&&global?global:"undefined"!=typeof window?window:{},j=k.DeepDiff,j&&C.push(function(){"undefined"!=typeof j&&k.DeepDiff===c&&(k.DeepDiff=j,j=void 0)}),t(n,r),t(o,r),t(i,r),t(a,r),Object.defineProperties(c,{diff:{value:c,enumerable:!0},observableDiff:{value:l,enumerable:!0},applyDiff:{value:h,enumerable:!0},applyChange:{value:d,enumerable:!0},revertChange:{value:g,enumerable:!0},isConflict:{value:function(){return"undefined"!=typeof j},enumerable:!0},noConflict:{value:function(){return C&&(C.forEach(function(e){e()}),C=null),c},enumerable:!0}});var F={E:{color:"#2196F3",text:"CHANGED:"},N:{color:"#4CAF50",text:"ADDED:"},D:{color:"#F44336",text:"DELETED:"},A:{color:"#2196F3",text:"ARRAY:"}},L={level:"log",logger:console,logErrors:!0,collapsed:void 0,predicate:void 0,duration:!1,timestamp:!0,stateTransformer:function(e){return e},actionTransformer:function(e){return e},errorTransformer:function(e){return e},colors:{title:function(){return"inherit"},prevState:function(){return"#9E9E9E"},action:function(){return"#03A9F4"},nextState:function(){return"#4CAF50"},error:function(){return"#F20404"}},diff:!1,diffPredicate:void 0,transformer:void 0},T=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,r=e.getState;return"function"==typeof t||"function"==typeof r?S()({dispatch:t,getState:r}):void console.error("\n[redux-logger v3] BREAKING CHANGE\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\n[redux-logger v3] Change\n[redux-logger v3] import createLogger from 'redux-logger'\n[redux-logger v3] to\n[redux-logger v3] import { createLogger } from 'redux-logger'\n")};e.defaults=L,e.createLogger=S,e.logger=T,e.default=T,Object.defineProperty(e,"__esModule",{value:!0})}); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.reduxLogger=e.reduxLogger||{})}(this,function(e){"use strict";var t,r,n=function(e,t){return function(e,t){return new Array(t+1).join(e)}("0",t-e.toString().length)+e},L=function(e){return n(e.getHours(),2)+":"+n(e.getMinutes(),2)+":"+n(e.getSeconds(),2)+"."+n(e.getMilliseconds(),3)},p="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance:Date,v="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},i=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)},o=[];function a(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function l(e,t){Object.defineProperty(this,"kind",{value:e,enumerable:!0}),t&&t.length&&Object.defineProperty(this,"path",{value:t,enumerable:!0})}function y(e,t,r){y.super_.call(this,"E",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0}),Object.defineProperty(this,"rhs",{value:r,enumerable:!0})}function b(e,t){b.super_.call(this,"N",e),Object.defineProperty(this,"rhs",{value:t,enumerable:!0})}function m(e,t){m.super_.call(this,"D",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0})}function w(e,t,r){w.super_.call(this,"A",e),Object.defineProperty(this,"index",{value:t,enumerable:!0}),Object.defineProperty(this,"item",{value:r,enumerable:!0})}function x(e,t,r){var n=e.slice((r||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,n),e}function S(e){var t=void 0===e?"undefined":v(e);return"object"!==t?t:e===Math?"math":null===e?"null":Array.isArray(e)?"array":"[object Date]"===Object.prototype.toString.call(e)?"date":"function"==typeof e.toString&&/^\/.*\//.test(e.toString())?"regexp":"object"}function j(n,o,i,a,e,t,l){l=l||[];var c=(e=e||[]).slice(0);if(void 0!==t){if(a){if("function"==typeof a&&a(c,t))return;if("object"===(void 0===a?"undefined":v(a))){if(a.prefilter&&a.prefilter(c,t))return;if(a.normalize){var r=a.normalize(c,t,n,o);r&&(n=r[0],o=r[1])}}}c.push(t)}"regexp"===S(n)&&"regexp"===S(o)&&(n=n.toString(),o=o.toString());var u=void 0===n?"undefined":v(n),f=void 0===o?"undefined":v(o),s="undefined"!==u||l&&l[l.length-1].lhs&&l[l.length-1].lhs.hasOwnProperty(t),d="undefined"!==f||l&&l[l.length-1].rhs&&l[l.length-1].rhs.hasOwnProperty(t);if(!s&&d)i(new b(c,o));else if(!d&&s)i(new m(c,n));else if(S(n)!==S(o))i(new y(c,n,o));else if("date"===S(n)&&n-o!=0)i(new y(c,n,o));else if("object"===u&&null!==n&&null!==o)if(l.filter(function(e){return e.lhs===n}).length)n!==o&&i(new y(c,n,o));else{if(l.push({lhs:n,rhs:o}),Array.isArray(n)){var p;n.length;for(p=0;p<n.length;p++)p>=o.length?i(new w(c,p,new m(void 0,n[p]))):j(n[p],o[p],i,a,c,p,l);for(;p<o.length;)i(new w(c,p,new b(void 0,o[p++])))}else{var g=Object.keys(n),h=Object.keys(o);g.forEach(function(e,t){var r=h.indexOf(e);0<=r?(j(n[e],o[e],i,a,c,e,l),h=x(h,r)):j(n[e],void 0,i,a,c,e,l)}),h.forEach(function(e){j(void 0,o[e],i,a,c,e,l)})}l.length=l.length-1}else n!==o&&("number"===u&&isNaN(n)&&isNaN(o)||i(new y(c,n,o)))}function c(e,t,r,n){return n=n||[],j(e,t,function(e){e&&n.push(e)},r),n.length?n:void 0}function u(e,t,r){if(e&&t&&r&&r.kind){for(var n=e,o=-1,i=r.path?r.path.length-1:0;++o<i;)void 0===n[r.path[o]]&&(n[r.path[o]]="number"==typeof r.path[o]?[]:{}),n=n[r.path[o]];switch(r.kind){case"A":!function e(t,r,n){if(n.path&&n.path.length){var o,i=t[r],a=n.path.length-1;for(o=0;o<a;o++)i=i[n.path[o]];switch(n.kind){case"A":e(i[n.path[o]],n.index,n.item);break;case"D":delete i[n.path[o]];break;case"E":case"N":i[n.path[o]]=n.rhs}}else switch(n.kind){case"A":e(t[r],n.index,n.item);break;case"D":t=x(t,r);break;case"E":case"N":t[r]=n.rhs}return t}(r.path?n[r.path[o]]:n,r.index,r.item);break;case"D":delete n[r.path[o]];break;case"E":case"N":n[r.path[o]]=r.rhs}}}t="object"===("undefined"==typeof global?"undefined":v(global))&&global?global:"undefined"!=typeof window?window:{},(r=t.DeepDiff)&&o.push(function(){void 0!==r&&t.DeepDiff===c&&(t.DeepDiff=r,r=void 0)}),a(y,l),a(b,l),a(m,l),a(w,l),Object.defineProperties(c,{diff:{value:c,enumerable:!0},observableDiff:{value:j,enumerable:!0},applyDiff:{value:function(t,r,n){t&&r&&j(t,r,function(e){n&&!n(t,r,e)||u(t,r,e)})},enumerable:!0},applyChange:{value:u,enumerable:!0},revertChange:{value:function(e,t,r){if(e&&t&&r&&r.kind){var n,o,i=e;for(o=r.path.length-1,n=0;n<o;n++)void 0===i[r.path[n]]&&(i[r.path[n]]={}),i=i[r.path[n]];switch(r.kind){case"A":!function e(t,r,n){if(n.path&&n.path.length){var o,i=t[r],a=n.path.length-1;for(o=0;o<a;o++)i=i[n.path[o]];switch(n.kind){case"A":e(i[n.path[o]],n.index,n.item);break;case"D":case"E":i[n.path[o]]=n.lhs;break;case"N":delete i[n.path[o]]}}else switch(n.kind){case"A":e(t[r],n.index,n.item);break;case"D":case"E":t[r]=n.lhs;break;case"N":t=x(t,r)}return t}(i[r.path[n]],r.index,r.item);break;case"D":case"E":i[r.path[n]]=r.lhs;break;case"N":delete i[r.path[n]]}}},enumerable:!0},isConflict:{value:function(){return void 0!==r},enumerable:!0},noConflict:{value:function(){return o&&(o.forEach(function(e){e()}),o=null),c},enumerable:!0}});var f={E:{color:"#2196F3",text:"CHANGED:"},N:{color:"#4CAF50",text:"ADDED:"},D:{color:"#F44336",text:"DELETED:"},A:{color:"#2196F3",text:"ARRAY:"}};function M(e,t,n,r){var o=c(e,t);try{r?n.groupCollapsed("diff"):n.group("diff")}catch(e){n.log("diff")}o?o.forEach(function(e){var t=e.kind,r=function(e){var t=e.kind,r=e.path,n=e.lhs,o=e.rhs,i=e.index,a=e.item;switch(t){case"E":return[r.join("."),n,"→",o];case"N":return[r.join("."),o];case"D":return[r.join(".")];case"A":return[r.join(".")+"["+i+"]",a];default:return[]}}(e);n.log.apply(n,["%c "+f[t].text,function(e){return"color: "+f[e].color+"; font-weight: bold"}(t)].concat(i(r)))}):n.log("—— no diff ——");try{n.groupEnd()}catch(e){n.log("—— diff end —— ")}}function _(e,t,r,n){switch(void 0===e?"undefined":v(e)){case"object":return"function"==typeof e[n]?e[n].apply(e,i(r)):e[n];case"function":return e(t);default:return e}}function g(E,k){var A=k.logger,D=k.actionTransformer,e=k.titleFormatter,O=void 0===e?function(e){var o=e.timestamp,i=e.duration;return function(e,t,r){var n=["action"];return n.push("%c"+String(e.type)),o&&n.push("%c@ "+t),i&&n.push("%c(in "+r.toFixed(2)+" ms)"),n.join(" ")}}(k):e,N=k.collapsed,C=k.colors,P=k.level,T=k.diff,F=void 0===k.titleFormatter;E.forEach(function(e,t){var r=e.started,n=e.startedTime,o=e.action,i=e.prevState,a=e.error,l=e.took,c=e.nextState,u=E[t+1];u&&(c=u.prevState,l=u.started-r);var f=D(o),s="function"==typeof N?N(function(){return c},o,e):N,d=L(n),p=C.title?"color: "+C.title(f)+";":"",g=["color: gray; font-weight: lighter;"];g.push(p),k.timestamp&&g.push("color: gray; font-weight: lighter;"),k.duration&&g.push("color: gray; font-weight: lighter;");var h=O(f,d,l);try{s?C.title&&F?A.groupCollapsed.apply(A,["%c "+h].concat(g)):A.groupCollapsed(h):C.title&&F?A.group.apply(A,["%c "+h].concat(g)):A.group(h)}catch(e){A.log(h)}var v=_(P,f,[i],"prevState"),y=_(P,f,[f],"action"),b=_(P,f,[a,i],"error"),m=_(P,f,[c],"nextState");if(v)if(C.prevState){var w="color: "+C.prevState(i)+"; font-weight: bold";A[v]("%c prev state",w,i)}else A[v]("prev state",i);if(y)if(C.action){var x="color: "+C.action(f)+"; font-weight: bold";A[y]("%c action ",x,f)}else A[y]("action ",f);if(a&&b)if(C.error){var S="color: "+C.error(a,i)+"; font-weight: bold;";A[b]("%c error ",S,a)}else A[b]("error ",a);if(m)if(C.nextState){var j="color: "+C.nextState(c)+"; font-weight: bold";A[m]("%c next state",j,c)}else A[m]("next state",c);A.withTrace&&(A.groupCollapsed("TRACE"),A.trace(),A.groupEnd()),T&&M(i,c,A,s);try{A.groupEnd()}catch(e){A.log("—— log end ——")}})}var h={level:"log",logger:console,logErrors:!0,collapsed:void 0,predicate:void 0,duration:!1,timestamp:!0,stateTransformer:function(e){return e},actionTransformer:function(e){return e},errorTransformer:function(e){return e},colors:{title:function(){return"inherit"},prevState:function(){return"#9E9E9E"},action:function(){return"#03A9F4"},nextState:function(){return"#4CAF50"},error:function(){return"#F20404"}},diff:!1,diffPredicate:void 0,transformer:void 0};function s(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},a=Object.assign({},h,e),t=a.logger,l=a.stateTransformer,c=a.errorTransformer,u=a.predicate,f=a.logErrors,s=a.diffPredicate;if(void 0===t)return function(){return function(t){return function(e){return t(e)}}};if(e.getState&&e.dispatch)return console.error("[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\n// Logger with default options\nimport { logger } from 'redux-logger'\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\nimport { createLogger } from 'redux-logger'\nconst logger = createLogger({\n // ...options\n});\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n"),function(){return function(t){return function(e){return t(e)}}};var d=[];return function(e){var i=e.getState;return function(o){return function(e){if("function"==typeof u&&!u(i,e))return o(e);var t={};d.push(t),t.started=p.now(),t.startedTime=new Date,t.prevState=l(i()),t.action=e;var r=void 0;if(f)try{r=o(e)}catch(e){t.error=c(e)}else r=o(e);t.took=p.now()-t.started,t.nextState=l(i());var n=a.diff&&"function"==typeof s?s(i,e):a.diff;if(g(d,Object.assign({},a,{diff:n})),d.length=0,t.error)throw t.error;return r}}}}var d=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,r=e.getState;if("function"==typeof t||"function"==typeof r)return s()({dispatch:t,getState:r});console.error("\n[redux-logger v3] BREAKING CHANGE\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\n[redux-logger v3] Change\n[redux-logger v3] import createLogger from 'redux-logger'\n[redux-logger v3] to\n[redux-logger v3] import { createLogger } from 'redux-logger'\n")};e.defaults=h,e.createLogger=s,e.logger=d,e.default=d,Object.defineProperty(e,"__esModule",{value:!0})}); |
{ | ||
"name": "redux-logger", | ||
"version": "3.0.6", | ||
"version": "4.0.0", | ||
"description": "Logger for Redux", | ||
"main": "dist/redux-logger.js", | ||
"module": "dist/redux-logger.es.js", | ||
"jsnext:main": "dist/redux-logger.es.js", | ||
"scripts": { | ||
@@ -15,5 +17,6 @@ "lint": "eslint src", | ||
"clean": "rimraf dist", | ||
"build": "rollup -c", | ||
"precommit": "npm test", | ||
"prepublish": "npm run clean && npm test && npm run build" | ||
"uglify": "uglifyjs dist/redux-logger.js -cm -o dist/redux-logger.js", | ||
"build": "rollup -c && npm run uglify", | ||
"precommit": "npm test && npm run lint", | ||
"prepublish": "npm run clean && npm test && npm run lint && npm run build" | ||
}, | ||
@@ -47,3 +50,3 @@ "eslintConfig": { | ||
"type": "git", | ||
"url": "git+https://github.com/theaqua/redux-logger.git" | ||
"url": "git+https://github.com/LogRocket/redux-logger.git" | ||
}, | ||
@@ -56,8 +59,8 @@ "keywords": [ | ||
], | ||
"author": "Eugene Rodionov (https://github.com/theaqua)", | ||
"author": "Eugene Rodionov (https://github.com/evgenyrodionov)", | ||
"license": "MIT", | ||
"bugs": { | ||
"url": "https://github.com/theaqua/redux-logger/issues" | ||
"url": "https://github.com/LogRocket/redux-logger/issues" | ||
}, | ||
"homepage": "https://github.com/theaqua/redux-logger#readme", | ||
"homepage": "https://github.com/LogRocket/redux-logger#readme", | ||
"devDependencies": { | ||
@@ -85,4 +88,4 @@ "babel-core": "^6.24.0", | ||
"rollup-plugin-node-resolve": "^3.0.0", | ||
"rollup-plugin-uglify": "^1.0.2", | ||
"sinon": "^1.17.7" | ||
"sinon": "^1.17.7", | ||
"uglify-js": "^3.0.8" | ||
}, | ||
@@ -89,0 +92,0 @@ "dependencies": { |
# Logger for Redux | ||
[![npm](https://img.shields.io/npm/v/redux-logger.svg?maxAge=2592000?style=plastic)](https://www.npmjs.com/package/redux-logger) | ||
[![npm](https://img.shields.io/npm/dm/redux-logger.svg?maxAge=2592000?style=plastic)](https://www.npmjs.com/package/redux-logger) | ||
[![Build Status](https://travis-ci.org/evgenyrodionov/redux-logger.svg?branch=master)](https://travis-ci.org/evgenyrodionov/redux-logger) | ||
[![Build Status](https://circleci.com/gh/LogRocket/redux-logger/tree/master.svg?style=svg)](https://circleci.com/gh/LogRocket/redux-logger/tree/master) | ||
![redux-logger](http://i.imgur.com/CgAuHlE.png) | ||
Now maintained by [LogRocket](https://logrocket.com?cid=github_redux)! | ||
[![](https://i.imgur.com/Yp5mUx2.png)](https://logrocket.com?cid=github_redux) | ||
> LogRocket is a production Redux logging tool that lets you replay problems as if they happened in your own browser. Instead of guessing why errors happen, or asking users for screenshots and log dumps, LogRocket lets you replay Redux actions + state, network requests, console logs, and see a video of what the user saw. | ||
For more informatiom about the future of redux-logger, check out the [discussion here](https://github.com/LogRocket/redux-logger/issues/314). | ||
## Table of contents | ||
@@ -26,2 +34,6 @@ * [Install](#install) | ||
Typescript types are also available, via [DefinitelyTyped](https://www.npmjs.com/package/@types/redux-logger): | ||
`npm i @types/redux-logger` | ||
## Usage | ||
@@ -41,3 +53,3 @@ ```javascript | ||
Or you can create your own logger with custom [options](https://github.com/evgenyrodionov/redux-logger#options): | ||
Or you can create your own logger with custom [options](https://github.com/LogRocket/redux-logger#options): | ||
```javascript | ||
@@ -57,3 +69,3 @@ import { applyMiddleware, createStore } from 'redux'; | ||
Note: logger **must be** the last middleware in chain, otherwise it will log thunk and promise, not actual actions ([#20](https://github.com/evgenyrodionov/redux-logger/issues/20)). | ||
Note: logger **must be** the last middleware in chain, otherwise it will log thunk and promise, not actual actions ([#20](https://github.com/LogRocket/redux-logger/issues/20)). | ||
@@ -69,3 +81,3 @@ ## Options | ||
level = 'log': 'log' | 'console' | 'warn' | 'error' | 'info', // console's level | ||
colors: ColorsObject, // colors for title, prev state, action and next state: https://github.com/evgenyrodionov/redux-logger/blob/master/src/defaults.js#L12-L18 | ||
colors: ColorsObject, // colors for title, prev state, action and next state: https://github.com/LogRocket/redux-logger/blob/master/src/defaults.js#L12-L18 | ||
titleFormatter, // Format the title used when logging actions. | ||
@@ -297,5 +309,5 @@ | ||
## Known issues | ||
* Performance issues in react-native ([#32](https://github.com/evgenyrodionov/redux-logger/issues/32)) | ||
* Performance issues in react-native ([#32](https://github.com/LogRocket/redux-logger/issues/32)) | ||
## License | ||
MIT |
@@ -128,2 +128,8 @@ import { formatTime } from './helpers'; | ||
if (logger.withTrace) { | ||
logger.groupCollapsed('TRACE'); | ||
logger.trace(); | ||
logger.groupEnd(); | ||
} | ||
if (diff) { | ||
@@ -130,0 +136,0 @@ diffLogger(prevState, nextState, logger, isCollapsed); |
@@ -52,3 +52,3 @@ import printBuffer from './core'; | ||
// Or you can create your own logger with custom options http://bit.ly/redux-logger-options | ||
import createLogger from 'redux-logger' | ||
import { createLogger } from 'redux-logger' | ||
const logger = createLogger({ | ||
@@ -55,0 +55,0 @@ // ...options |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
59132
10
1067
309
2