Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
use object.assign pollfill
to support ES5 environments eg IE11
  • Loading branch information
Thomas Grainger committed May 31, 2017
commit 11bb06de4da817dd2efabedf2ff53a486035c268
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@
"sinon": "^1.17.7"
},
"dependencies": {
"deep-diff": "^0.3.5"
"deep-diff": "^0.3.5",
"object.assign": "^4.0.4"
}
}
3 changes: 2 additions & 1 deletion spec/diff.spec.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import sinon from 'sinon';
import { expect } from 'chai';
import { style, render, default as diffLogger } from '../src/diff';
import { merge } from '../src/helpers';

context('Diff', () => {
describe('style', () => {
Expand Down Expand Up @@ -90,7 +91,7 @@ context('Diff', () => {
});

it('should log no diff without group', () => {
const loggerWithNoGroupCollapsed = Object.assign({}, logger, {
const loggerWithNoGroupCollapsed = merge(logger, {
groupCollapsed: () => {
throw new Error()
},
Expand Down
4 changes: 4 additions & 0 deletions src/helpers.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
import objectAssign from 'object.assign';

export const repeat = (str, times) => (new Array(times + 1)).join(str);

export const pad = (num, maxLength) => repeat('0', maxLength - num.toString().length) + num;

export const formatTime = time => `${pad(time.getHours(), 2)}:${pad(time.getMinutes(), 2)}:${pad(time.getSeconds(), 2)}.${pad(time.getMilliseconds(), 3)}`;

export const merge = (...args) => objectAssign({}, ...args);

// Use performance API if it's available in order to get better precision
export const timer =
(typeof performance !== 'undefined' && performance !== null) && typeof performance.now === 'function' ?
Expand Down
6 changes: 3 additions & 3 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import printBuffer from './core';
import { timer } from './helpers';
import { timer, merge } from './helpers';
import defaults from './defaults';
/* eslint max-len: ["error", 110, { "ignoreComments": true }] */
/**
Expand All @@ -22,7 +22,7 @@ import defaults from './defaults';
* @returns {function} logger middleware
*/
function createLogger(options = {}) {
const loggerOptions = Object.assign({}, defaults, options);
const loggerOptions = merge(defaults, options);

const {
logger,
Expand Down Expand Up @@ -97,7 +97,7 @@ const store = createStore(
? diffPredicate(getState, action)
: loggerOptions.diff;

printBuffer(logBuffer, Object.assign({}, loggerOptions, { diff }));
printBuffer(logBuffer, merge(loggerOptions, { diff }));
logBuffer.length = 0;

if (logEntry.error) throw logEntry.error;
Expand Down