Skip to content

Commit

Permalink
feat: isLogger and ensureLogger utils
Browse files Browse the repository at this point in the history
  • Loading branch information
medikoo committed May 29, 2018
1 parent 517b48d commit 30d7ab6
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 0 deletions.
9 changes: 9 additions & 0 deletions ensure-logger.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
"use strict";

var toShortString = require("es5-ext/to-short-string-representation")
, isLogger = require("./is-logger");

module.exports = function (logger) {
if (isLogger(logger)) return logger;
throw new TypeError(toShortString(logger) + " is not a logger");
};
9 changes: 9 additions & 0 deletions is-logger.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
"use strict";

var isPlainFunction = require("es5-ext/object/is-plain-function");

module.exports = function (logger) {
if (!isPlainFunction(logger)) return false;
if (typeof logger.level !== "string") return false;
return typeof logger.isNamespaceInitialized === "function";
};
17 changes: 17 additions & 0 deletions test/ensure-logger.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
"use strict";

var test = require("tape")
, log = require("../")
, ensureLogger = require("../ensure-logger");

test("Ensure Logger", function (t) {
t.equal(ensureLogger(log), log, "Should return logger when logger is an argument");
t.throws(
function () {
ensureLogger(function () { return "foo"; });
},
TypeError,
"Should throw on non logger values"
);
t.end();
});
15 changes: 15 additions & 0 deletions test/is-logger.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
"use strict";

var test = require("tape")
, log = require("../")
, isLogger = require("../is-logger");

test("Is Logger", function (t) {
t.equal(isLogger(log), true, "Should return true on logger");
t.equal(isLogger(), false, "Should return false on non-value");
t.equal(
isLogger(function () { return "foo"; }), false,
"Should return false on non-logger function "
);
t.end();
});

0 comments on commit 30d7ab6

Please sign in to comment.