@jdeighan/coffee-utils 7.0.53 → 7.0.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/call_stack.coffee +1 -1
- package/src/call_stack.js +1 -1
- package/src/debug_utils.coffee +22 -12
- package/src/debug_utils.js +21 -21
- package/src/log_utils.coffee +6 -0
- package/src/log_utils.js +5 -0
package/package.json
CHANGED
package/src/call_stack.coffee
CHANGED
package/src/call_stack.js
CHANGED
|
@@ -168,7 +168,7 @@ export var CallStack = class CallStack {
|
|
|
168
168
|
ref = this.lStack;
|
|
169
169
|
for (i = j = 0, len = ref.length; j < len; i = ++j) {
|
|
170
170
|
item = ref[i];
|
|
171
|
-
LOG(` ${i}: ${
|
|
171
|
+
LOG(` ${i}: ${item.fullName} ${item.isLogged}`);
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
}
|
package/src/debug_utils.coffee
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
assert, undef, error, croak, warn, defined,
|
|
5
|
-
isString, isFunction, isBoolean,
|
|
5
|
+
isString, isFunction, isBoolean,
|
|
6
6
|
OL, escapeStr, isNumber, isArray, words, pass,
|
|
7
7
|
} from '@jdeighan/coffee-utils'
|
|
8
8
|
import {blockToArray} from '@jdeighan/coffee-utils/block'
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
getPrefix, addArrow, removeLastVbar,
|
|
14
14
|
} from '@jdeighan/coffee-utils/arrow'
|
|
15
15
|
import {
|
|
16
|
-
log, logItem, LOG, shortEnough,
|
|
16
|
+
log, logItem, LOG, shortEnough, dashes,
|
|
17
17
|
} from '@jdeighan/coffee-utils/log'
|
|
18
18
|
|
|
19
19
|
callStack = new CallStack()
|
|
@@ -38,6 +38,9 @@ export debug = (label, lObjects...) ->
|
|
|
38
38
|
LOG "debug(): type = #{OL(type)}"
|
|
39
39
|
LOG "debug(): funcName = #{OL(funcName)}"
|
|
40
40
|
|
|
41
|
+
# --- function shouldLog() returns the (possibly modified) label
|
|
42
|
+
# if we should log this, else it returns undef
|
|
43
|
+
|
|
41
44
|
switch type
|
|
42
45
|
when 'enter'
|
|
43
46
|
callStack.enter funcName
|
|
@@ -64,25 +67,27 @@ export debug = (label, lObjects...) ->
|
|
|
64
67
|
if doLog
|
|
65
68
|
level = callStack.getLevel()
|
|
66
69
|
prefix = getPrefix(level)
|
|
70
|
+
itemPrefix = removeLastVbar(prefix)
|
|
67
71
|
|
|
68
72
|
if doDebugDebug
|
|
69
73
|
LOG "callStack", callStack
|
|
70
74
|
LOG "level = #{OL(level)}"
|
|
71
75
|
LOG "prefix = #{OL(prefix)}"
|
|
76
|
+
LOG "itemPrefix = #{OL(itemPrefix)}"
|
|
72
77
|
|
|
73
78
|
switch type
|
|
74
79
|
when 'enter'
|
|
75
80
|
log label, {prefix}
|
|
76
81
|
for obj,i in lObjects
|
|
77
82
|
if (i > 0)
|
|
78
|
-
log
|
|
79
|
-
logItem undef, obj, {
|
|
83
|
+
log dashes(itemPrefix, 40)
|
|
84
|
+
logItem undef, obj, {itemPrefix}
|
|
80
85
|
when 'return'
|
|
81
86
|
log label, {prefix: addArrow(prefix)}
|
|
82
87
|
for obj,i in lObjects
|
|
83
88
|
if (i > 0)
|
|
84
|
-
log
|
|
85
|
-
logItem undef, obj, {
|
|
89
|
+
log dashes(itemPrefix, 40)
|
|
90
|
+
logItem undef, obj, {itemPrefix}
|
|
86
91
|
when 'string'
|
|
87
92
|
log label, {prefix}
|
|
88
93
|
when 'objects'
|
|
@@ -95,7 +100,7 @@ export debug = (label, lObjects...) ->
|
|
|
95
100
|
for obj in lObjects
|
|
96
101
|
logItem undef, obj, {prefix}
|
|
97
102
|
|
|
98
|
-
if (type == 'enter') && doLog
|
|
103
|
+
if (type == 'enter') && doLog && (label.indexOf('call') == -1)
|
|
99
104
|
callStack.logCurFunc()
|
|
100
105
|
else if (type == 'return')
|
|
101
106
|
callStack.returnFrom funcName
|
|
@@ -119,20 +124,25 @@ export stdShouldLog = (label, type, funcName, stack) ->
|
|
|
119
124
|
else
|
|
120
125
|
assert funcName == undef, "func name #{OL(funcName)} not undef"
|
|
121
126
|
assert stack instanceof CallStack, "not a call stack object"
|
|
127
|
+
|
|
122
128
|
if doDebugDebug
|
|
123
129
|
LOG "stdShouldLog(#{OL(label)}, #{OL(type)}, #{OL(funcName)}, stack)"
|
|
124
130
|
LOG "stack", stack
|
|
125
131
|
LOG "lFuncList", lFuncList
|
|
132
|
+
|
|
126
133
|
switch type
|
|
127
134
|
when 'enter'
|
|
128
135
|
if funcMatch(stack, lFuncList)
|
|
129
136
|
return label
|
|
130
137
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
138
|
+
else
|
|
139
|
+
# --- As a special case, if we enter a function where we will not
|
|
140
|
+
# be logging, but we were logging in the calling function,
|
|
141
|
+
# we'll log out the call itself
|
|
142
|
+
|
|
143
|
+
prevLogged = stack.isLoggingPrev()
|
|
144
|
+
if prevLogged
|
|
145
|
+
return label.replace('enter', 'call')
|
|
136
146
|
else
|
|
137
147
|
if funcMatch(stack, lFuncList)
|
|
138
148
|
return label
|
package/src/debug_utils.js
CHANGED
|
@@ -12,7 +12,6 @@ import {
|
|
|
12
12
|
isString,
|
|
13
13
|
isFunction,
|
|
14
14
|
isBoolean,
|
|
15
|
-
sep_dash,
|
|
16
15
|
OL,
|
|
17
16
|
escapeStr,
|
|
18
17
|
isNumber,
|
|
@@ -47,7 +46,8 @@ import {
|
|
|
47
46
|
log,
|
|
48
47
|
logItem,
|
|
49
48
|
LOG,
|
|
50
|
-
shortEnough
|
|
49
|
+
shortEnough,
|
|
50
|
+
dashes
|
|
51
51
|
} from '@jdeighan/coffee-utils/log';
|
|
52
52
|
|
|
53
53
|
callStack = new CallStack();
|
|
@@ -60,7 +60,7 @@ export var lFuncList = [];
|
|
|
60
60
|
|
|
61
61
|
// ---------------------------------------------------------------------------
|
|
62
62
|
export var debug = function(label, ...lObjects) {
|
|
63
|
-
var doLog, funcName, i, j, k, l, len1, len2, len3, level, nObjects, obj, prefix, type;
|
|
63
|
+
var doLog, funcName, i, itemPrefix, j, k, l, len1, len2, len3, level, nObjects, obj, prefix, type;
|
|
64
64
|
assert(isString(label), `1st arg ${OL(label)} should be a string`);
|
|
65
65
|
// --- We want to allow objects to be undef. Therefore, we need to
|
|
66
66
|
// distinguish between 1 arg sent vs. 2 or more args sent
|
|
@@ -71,6 +71,8 @@ export var debug = function(label, ...lObjects) {
|
|
|
71
71
|
LOG(`debug(): type = ${OL(type)}`);
|
|
72
72
|
LOG(`debug(): funcName = ${OL(funcName)}`);
|
|
73
73
|
}
|
|
74
|
+
// --- function shouldLog() returns the (possibly modified) label
|
|
75
|
+
// if we should log this, else it returns undef
|
|
74
76
|
switch (type) {
|
|
75
77
|
case 'enter':
|
|
76
78
|
callStack.enter(funcName);
|
|
@@ -99,10 +101,12 @@ export var debug = function(label, ...lObjects) {
|
|
|
99
101
|
if (doLog) {
|
|
100
102
|
level = callStack.getLevel();
|
|
101
103
|
prefix = getPrefix(level);
|
|
104
|
+
itemPrefix = removeLastVbar(prefix);
|
|
102
105
|
if (doDebugDebug) {
|
|
103
106
|
LOG("callStack", callStack);
|
|
104
107
|
LOG(`level = ${OL(level)}`);
|
|
105
108
|
LOG(`prefix = ${OL(prefix)}`);
|
|
109
|
+
LOG(`itemPrefix = ${OL(itemPrefix)}`);
|
|
106
110
|
}
|
|
107
111
|
switch (type) {
|
|
108
112
|
case 'enter':
|
|
@@ -110,13 +114,9 @@ export var debug = function(label, ...lObjects) {
|
|
|
110
114
|
for (i = j = 0, len1 = lObjects.length; j < len1; i = ++j) {
|
|
111
115
|
obj = lObjects[i];
|
|
112
116
|
if (i > 0) {
|
|
113
|
-
log(
|
|
114
|
-
prefix: removeLastVbar(prefix)
|
|
115
|
-
});
|
|
117
|
+
log(dashes(itemPrefix, 40));
|
|
116
118
|
}
|
|
117
|
-
logItem(undef, obj, {
|
|
118
|
-
prefix: removeLastVbar(prefix)
|
|
119
|
-
});
|
|
119
|
+
logItem(undef, obj, {itemPrefix});
|
|
120
120
|
}
|
|
121
121
|
break;
|
|
122
122
|
case 'return':
|
|
@@ -126,13 +126,9 @@ export var debug = function(label, ...lObjects) {
|
|
|
126
126
|
for (i = k = 0, len2 = lObjects.length; k < len2; i = ++k) {
|
|
127
127
|
obj = lObjects[i];
|
|
128
128
|
if (i > 0) {
|
|
129
|
-
log(
|
|
130
|
-
prefix: removeLastVbar(prefix)
|
|
131
|
-
});
|
|
129
|
+
log(dashes(itemPrefix, 40));
|
|
132
130
|
}
|
|
133
|
-
logItem(undef, obj, {
|
|
134
|
-
prefix: removeLastVbar(prefix)
|
|
135
|
-
});
|
|
131
|
+
logItem(undef, obj, {itemPrefix});
|
|
136
132
|
}
|
|
137
133
|
break;
|
|
138
134
|
case 'string':
|
|
@@ -153,7 +149,7 @@ export var debug = function(label, ...lObjects) {
|
|
|
153
149
|
}
|
|
154
150
|
}
|
|
155
151
|
}
|
|
156
|
-
if ((type === 'enter') && doLog) {
|
|
152
|
+
if ((type === 'enter') && doLog && (label.indexOf('call') === -1)) {
|
|
157
153
|
callStack.logCurFunc();
|
|
158
154
|
} else if (type === 'return') {
|
|
159
155
|
callStack.returnFrom(funcName);
|
|
@@ -164,6 +160,7 @@ export var debug = function(label, ...lObjects) {
|
|
|
164
160
|
|
|
165
161
|
// ---------------------------------------------------------------------------
|
|
166
162
|
export var stdShouldLog = function(label, type, funcName, stack) {
|
|
163
|
+
var prevLogged;
|
|
167
164
|
// --- if type is 'enter', then funcName won't be on the stack yet
|
|
168
165
|
// returns the (possibly modified) label to log
|
|
169
166
|
|
|
@@ -187,11 +184,14 @@ export var stdShouldLog = function(label, type, funcName, stack) {
|
|
|
187
184
|
case 'enter':
|
|
188
185
|
if (funcMatch(stack, lFuncList)) {
|
|
189
186
|
return label;
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
187
|
+
} else {
|
|
188
|
+
// --- As a special case, if we enter a function where we will not
|
|
189
|
+
// be logging, but we were logging in the calling function,
|
|
190
|
+
// we'll log out the call itself
|
|
191
|
+
prevLogged = stack.isLoggingPrev();
|
|
192
|
+
if (prevLogged) {
|
|
193
|
+
return label.replace('enter', 'call');
|
|
194
|
+
}
|
|
195
195
|
}
|
|
196
196
|
break;
|
|
197
197
|
default:
|
package/src/log_utils.coffee
CHANGED
|
@@ -20,6 +20,12 @@ fourSpaces = ' '
|
|
|
20
20
|
|
|
21
21
|
# ---------------------------------------------------------------------------
|
|
22
22
|
|
|
23
|
+
export dashes = (prefix, totalLen=64, ch='-') ->
|
|
24
|
+
|
|
25
|
+
return prefix + ch.repeat(totalLen - prefix.length)
|
|
26
|
+
|
|
27
|
+
# ---------------------------------------------------------------------------
|
|
28
|
+
|
|
23
29
|
export debugLog = (flag=true) ->
|
|
24
30
|
|
|
25
31
|
doDebugLog = flag
|
package/src/log_utils.js
CHANGED
|
@@ -39,6 +39,11 @@ export var stringify = undef;
|
|
|
39
39
|
|
|
40
40
|
fourSpaces = ' ';
|
|
41
41
|
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
export var dashes = function(prefix, totalLen = 64, ch = '-') {
|
|
44
|
+
return prefix + ch.repeat(totalLen - prefix.length);
|
|
45
|
+
};
|
|
46
|
+
|
|
42
47
|
// ---------------------------------------------------------------------------
|
|
43
48
|
export var debugLog = function(flag = true) {
|
|
44
49
|
doDebugLog = flag;
|