1
1
/**
2
2
* tFunk for colours/compiler
3
3
*/
4
- var tfunk = require ( "tfunk " ) ;
4
+ var chalk = require ( "chalk " ) ;
5
5
6
6
/**
7
7
* Lodash clonedeep & merge
@@ -40,10 +40,10 @@ var defaults = {
40
40
*/
41
41
prefixes : {
42
42
"trace" : "[trace] " ,
43
- "debug" : "{ yellow: [debug]} " ,
44
- "info" : "{ cyan: [info]} " ,
45
- "warn" : "{ magenta: [warn]} " ,
46
- "error" : "{ red: [error]} "
43
+ "debug" : chalk . yellow ( " [debug] " ) ,
44
+ "info" : chalk . cyan ( " [info] " ) ,
45
+ "warn" : chalk . magenta ( " [warn] " ) ,
46
+ "error" : chalk . red ( " [error] " )
47
47
} ,
48
48
49
49
/**
@@ -68,7 +68,6 @@ var Logger = function(config) {
68
68
this . _mute = false ;
69
69
this . config = _ . merge ( { } , defaults , config ) ;
70
70
this . addLevelMethods ( this . config . levels ) ;
71
- this . compiler = new tfunk . Compiler ( this . config . custom || { } , this . config ) ;
72
71
this . _memo = { } ;
73
72
74
73
return this ;
@@ -176,12 +175,7 @@ Logger.prototype.setLevelPrefixes = function (state) {
176
175
* @param prefix
177
176
*/
178
177
Logger . prototype . setPrefix = function ( prefix ) {
179
- if ( typeof prefix === "string" ) {
180
- this . compiler . prefix = this . compiler . compile ( prefix , true ) ;
181
- }
182
- if ( typeof prefix === "function" ) {
183
- this . compiler . prefix = prefix ;
184
- }
178
+ this . config . prefix = strOrFn ( prefix ) ;
185
179
} ;
186
180
187
181
/**
@@ -200,7 +194,7 @@ Logger.prototype.unprefixed = function (level, msg) {
200
194
201
195
/**
202
196
* @param {Array } args
203
- * @param {String } msg
197
+ * @param {()=> String } msg
204
198
* @param {String } level
205
199
* @param {boolean } [unprefixed]
206
200
* @returns {Logger }
@@ -213,13 +207,16 @@ Logger.prototype.logOne = function (args, msg, level, unprefixed) {
213
207
214
208
args = args . slice ( 2 ) ;
215
209
210
+ var incomingMessage = typeof msg === "string" ? msg : msg ( ) ;
211
+
216
212
if ( this . config . useLevelPrefixes && ! unprefixed ) {
217
- msg = this . config . prefixes [ level ] + msg ;
213
+ incomingMessage = this . config . prefixes [ level ] + incomingMessage ;
218
214
}
219
215
220
- msg = this . compiler . compile ( msg , unprefixed ) ;
216
+ var prefix = strOrFn ( this . config . prefix ) ;
217
+ var result = unprefixed ? [ incomingMessage ] : [ prefix , incomingMessage ] ;
221
218
222
- args . unshift ( msg ) ;
219
+ args . unshift ( result . join ( "" ) ) ;
223
220
224
221
console . log . apply ( console , args ) ;
225
222
@@ -265,5 +262,17 @@ Logger.prototype.clone = function (opts) {
265
262
return new Logger ( config ) ;
266
263
} ;
267
264
265
+ /**
266
+ * @param input
267
+ */
268
+ function strOrFn ( input ) {
269
+ if ( typeof input === "string" ) {
270
+ return input ;
271
+ }
272
+ if ( typeof input === "function" ) {
273
+ return input ( ) ;
274
+ }
275
+ throw new Error ( "unreachable" ) ;
276
+ }
277
+
268
278
module . exports . Logger = Logger ;
269
- module . exports . compile = tfunk ;
0 commit comments