Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
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
8 changes: 7 additions & 1 deletion lib/handlebars/helpers/log.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
export default function (instance) {
instance.registerHelper('log', function (/* message, options */) {
let args = [undefined],
let args = [undefined, undefined],
options = arguments[arguments.length - 1];
for (let i = 0; i < arguments.length - 1; i++) {
args.push(arguments[i]);
Expand All @@ -14,6 +14,12 @@ export default function (instance) {
}
args[0] = level;

if (options.hash.depth != null) {
args[1] = options.hash.depth;
} else if (options.data && options.data.depth != null) {
args[1] = options.data.depth;
}

instance.log(...args);
Comment thread
btea marked this conversation as resolved.
});
}
28 changes: 27 additions & 1 deletion lib/handlebars/logger.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { indexOf } from './utils';
let logger = {
methodMap: ['debug', 'info', 'warn', 'error'],
level: 'info',
depth: 2,

// Maps a given level value to the `methodMap` indexes above.
lookupLevel: function (level) {
Expand All @@ -18,9 +19,19 @@ let logger = {
return level;
},

convertDepth: function (depth) {
depth = parseInt(depth, 10);
if (isNaN(depth) || depth < 0) {
depth = logger.depth;
}

return depth;
},

// Can be overridden in the host environment
log: function (level, ...message) {
log: function (level, depth, ...message) {
level = logger.lookupLevel(level);
depth = logger.convertDepth(depth);

Comment thread
btea marked this conversation as resolved.
if (
typeof console !== 'undefined' &&
Expand All @@ -31,6 +42,21 @@ let logger = {
if (!console[method]) {
method = 'log';
}

const isNodeEnvironment =
typeof process !== 'undefined' &&
process.versions && // eslint-disable-line no-undef
process.versions.node; // eslint-disable-line no-undef
if (isNodeEnvironment && depth !== 2) {
const { inspect } = import('util');
message = message.map((msg) => {
return inspect(msg, {
depth: depth,
colors: true,
Comment thread
btea marked this conversation as resolved.
Outdated
});
});
Comment thread
btea marked this conversation as resolved.
Outdated
}
Comment thread
btea marked this conversation as resolved.

console[method](...message); // eslint-disable-line no-console
}
},
Expand Down
Loading