Skip to content

Commit ab17c1b

Browse files
Alan PearceSpaceK33z
Alan Pearce
authored andcommitted
Make log & warn functions replaceable (#124)
1 parent a2c4d52 commit ab17c1b

File tree

2 files changed

+17
-16
lines changed

2 files changed

+17
-16
lines changed

middleware.js

+7-5
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ var defaultReporter = function(reporterOptions) {
2222
options.noInfo)
2323
displayStats = false;
2424
if(displayStats) {
25-
console.log(stats.toString(options.stats));
25+
options.log(stats.toString(options.stats));
2626
}
2727
if(!options.noInfo && !options.quiet) {
28-
console.info("webpack: bundle is now VALID.");
28+
options.log("webpack: bundle is now VALID.");
2929
}
3030
} else {
31-
console.info("webpack: bundle is now INVALID.");
31+
options.log("webpack: bundle is now INVALID.");
3232
}
3333
};
3434

@@ -38,7 +38,7 @@ module.exports = function(compiler, options) {
3838
if(typeof options.watchOptions === "undefined") options.watchOptions = {};
3939
if(typeof options.watchDelay !== "undefined") {
4040
// TODO remove this in next major version
41-
console.warn("options.watchDelay is deprecated: Use 'options.watchOptions.aggregateTimeout' instead");
41+
options.warn("options.watchDelay is deprecated: Use 'options.watchOptions.aggregateTimeout' instead");
4242
options.watchOptions.aggregateTimeout = options.watchDelay;
4343
}
4444
if(typeof options.watchOptions.aggregateTimeout === "undefined") options.watchOptions.aggregateTimeout = 200;
@@ -53,6 +53,8 @@ module.exports = function(compiler, options) {
5353
}
5454
}
5555
if(typeof options.reporter !== "function") options.reporter = defaultReporter;
56+
if(typeof options.log !== "function") options.log = console.log.bind(console);
57+
if(typeof options.warn !== "function") options.warn = console.warn.bind(console);
5658

5759
// store our files in memory
5860
var fs;
@@ -130,7 +132,7 @@ module.exports = function(compiler, options) {
130132
function ready(fn, req) {
131133
if(state) return fn();
132134
if(!options.noInfo && !options.quiet)
133-
console.log("webpack: wait until bundle finished: " + (req.url || fn.name));
135+
options.log("webpack: wait until bundle finished: " + (req.url || fn.name));
134136
callbacks.push(fn);
135137
}
136138

test/Reporter.test.js

+10-11
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ describe("Reporter", function() {
3030
beforeEach(function() {
3131
plugins = {};
3232
this.sinon.stub(console, 'log');
33-
this.sinon.stub(console, 'info');
3433
});
3534

3635
describe("valid/invalid messages", function() {
@@ -39,8 +38,8 @@ describe("Reporter", function() {
3938

4039
plugins.done(simpleStats);
4140
setTimeout(function() {
42-
should.strictEqual(console.info.callCount, 1);
43-
should.strictEqual(console.info.calledWith("webpack: bundle is now VALID."), true);
41+
should.strictEqual(console.log.callCount, 2);
42+
should.strictEqual(console.log.calledWith("webpack: bundle is now VALID."), true);
4443
done();
4544
});
4645
});
@@ -50,7 +49,7 @@ describe("Reporter", function() {
5049

5150
plugins.done(simpleStats);
5251
setTimeout(function() {
53-
should.strictEqual(console.info.callCount, 0);
52+
should.strictEqual(console.log.callCount, 0);
5453
done();
5554
});
5655
});
@@ -60,7 +59,7 @@ describe("Reporter", function() {
6059

6160
plugins.done(simpleStats);
6261
setTimeout(function() {
63-
should.strictEqual(console.info.callCount, 0);
62+
should.strictEqual(console.log.callCount, 0);
6463
done();
6564
});
6665
});
@@ -70,8 +69,8 @@ describe("Reporter", function() {
7069
plugins.done(simpleStats);
7170
plugins.invalid();
7271
setTimeout(function() {
73-
should.strictEqual(console.info.callCount, 1);
74-
should.strictEqual(console.info.calledWith("webpack: bundle is now INVALID."), true);
72+
should.strictEqual(console.log.callCount, 1);
73+
should.strictEqual(console.log.calledWith("webpack: bundle is now INVALID."), true);
7574
done();
7675
});
7776
});
@@ -82,7 +81,7 @@ describe("Reporter", function() {
8281
plugins.done(simpleStats);
8382
plugins.invalid();
8483
setTimeout(function() {
85-
should.strictEqual(console.info.callCount, 0);
84+
should.strictEqual(console.log.callCount, 0);
8685
done();
8786
});
8887
});
@@ -93,7 +92,7 @@ describe("Reporter", function() {
9392
plugins.done(simpleStats);
9493
plugins.invalid();
9594
setTimeout(function() {
96-
should.strictEqual(console.info.callCount, 0);
95+
should.strictEqual(console.log.callCount, 0);
9796
done();
9897
});
9998
});
@@ -117,7 +116,7 @@ describe("Reporter", function() {
117116

118117
plugins.done(stats);
119118
setTimeout(function() {
120-
should.strictEqual(console.log.callCount, 1);
119+
should.strictEqual(console.log.callCount, 2);
121120
should.strictEqual(console.log.calledWith(stats.toString()), true);
122121
done();
123122
});
@@ -128,7 +127,7 @@ describe("Reporter", function() {
128127

129128
plugins.done(stats);
130129
setTimeout(function() {
131-
should.strictEqual(console.log.callCount, 0);
130+
should.strictEqual(console.log.callCount, 1);
132131
done();
133132
});
134133
});

0 commit comments

Comments
 (0)