@jdeighan/coffee-utils 7.0.57 → 7.0.58
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/debug_utils.coffee +62 -51
- package/src/debug_utils.js +75 -72
package/package.json
CHANGED
package/src/debug_utils.coffee
CHANGED
|
@@ -50,21 +50,25 @@ logif = (label, lObjects...) ->
|
|
|
50
50
|
assert isString(label), "1st arg #{OL(label)} should be a string"
|
|
51
51
|
nObjects = lObjects.length
|
|
52
52
|
[type, funcName] = getType(label, nObjects)
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
53
|
+
|
|
54
|
+
level = callStack.getLevel()
|
|
55
|
+
prefix = getPrefix(level)
|
|
56
|
+
itemPrefix = removeLastVbar(prefix)
|
|
57
|
+
sep = dashes(itemPrefix, 40)
|
|
58
|
+
|
|
59
|
+
if (type == 'enter')
|
|
60
|
+
if defined(lFunctions) && (funcName not in lFunctions)
|
|
61
|
+
return
|
|
62
|
+
callStack.enter funcName
|
|
63
|
+
else if (type == 'return')
|
|
64
|
+
if defined(lFunctions) && (funcName not in lFunctions)
|
|
65
|
+
return
|
|
66
|
+
|
|
67
|
+
doTheLogging type, label, lObjects
|
|
68
|
+
|
|
69
|
+
if (type == 'return')
|
|
70
|
+
callStack.returnFrom funcName
|
|
71
|
+
|
|
68
72
|
return
|
|
69
73
|
|
|
70
74
|
# ---------------------------------------------------------------------------
|
|
@@ -109,42 +113,7 @@ export debug = (label, lObjects...) ->
|
|
|
109
113
|
logif "#{nObjects} objects"
|
|
110
114
|
|
|
111
115
|
if doLog
|
|
112
|
-
|
|
113
|
-
prefix = getPrefix(level)
|
|
114
|
-
itemPrefix = removeLastVbar(prefix)
|
|
115
|
-
sep = dashes(itemPrefix, 40)
|
|
116
|
-
assert isString(sep), "sep is not a string"
|
|
117
|
-
|
|
118
|
-
logif "callStack", callStack
|
|
119
|
-
logif "level = #{OL(level)}"
|
|
120
|
-
logif "prefix = #{OL(prefix)}"
|
|
121
|
-
logif "itemPrefix = #{OL(itemPrefix)}"
|
|
122
|
-
logif "sep = #{OL(sep)}"
|
|
123
|
-
|
|
124
|
-
switch type
|
|
125
|
-
when 'enter'
|
|
126
|
-
log label, {prefix}
|
|
127
|
-
for obj,i in lObjects
|
|
128
|
-
if (i > 0)
|
|
129
|
-
log sep
|
|
130
|
-
logItem undef, obj, {itemPrefix}
|
|
131
|
-
when 'return'
|
|
132
|
-
log label, {prefix: addArrow(prefix)}
|
|
133
|
-
for obj,i in lObjects
|
|
134
|
-
if (i > 0)
|
|
135
|
-
log sep
|
|
136
|
-
logItem undef, obj, {itemPrefix}
|
|
137
|
-
when 'string'
|
|
138
|
-
log label, {prefix}
|
|
139
|
-
when 'objects'
|
|
140
|
-
if (nObjects==1) && shortEnough(label, lObjects[0])
|
|
141
|
-
logItem label, lObjects[0], {prefix}
|
|
142
|
-
else
|
|
143
|
-
if (label.indexOf(':') != label.length - 1)
|
|
144
|
-
label += ':'
|
|
145
|
-
log label, {prefix}
|
|
146
|
-
for obj in lObjects
|
|
147
|
-
logItem undef, obj, {prefix}
|
|
116
|
+
doTheLogging type, label, lObjects
|
|
148
117
|
|
|
149
118
|
if (type == 'enter') && doLog && (label.indexOf('call') == -1)
|
|
150
119
|
callStack.logCurFunc()
|
|
@@ -156,6 +125,48 @@ export debug = (label, lObjects...) ->
|
|
|
156
125
|
|
|
157
126
|
# ---------------------------------------------------------------------------
|
|
158
127
|
|
|
128
|
+
export doTheLogging = (type, label, lObjects) ->
|
|
129
|
+
|
|
130
|
+
level = callStack.getLevel()
|
|
131
|
+
prefix = getPrefix(level)
|
|
132
|
+
itemPrefix = removeLastVbar(prefix)
|
|
133
|
+
sep = dashes(itemPrefix, 40)
|
|
134
|
+
assert isString(sep), "sep is not a string"
|
|
135
|
+
|
|
136
|
+
logif "callStack", callStack
|
|
137
|
+
logif "level = #{OL(level)}"
|
|
138
|
+
logif "prefix = #{OL(prefix)}"
|
|
139
|
+
logif "itemPrefix = #{OL(itemPrefix)}"
|
|
140
|
+
logif "sep = #{OL(sep)}"
|
|
141
|
+
|
|
142
|
+
switch type
|
|
143
|
+
when 'enter'
|
|
144
|
+
log label, {prefix}
|
|
145
|
+
for obj,i in lObjects
|
|
146
|
+
if (i > 0)
|
|
147
|
+
log sep
|
|
148
|
+
logItem undef, obj, {itemPrefix}
|
|
149
|
+
when 'return'
|
|
150
|
+
log label, {prefix: addArrow(prefix)}
|
|
151
|
+
for obj,i in lObjects
|
|
152
|
+
if (i > 0)
|
|
153
|
+
log sep
|
|
154
|
+
logItem undef, obj, {itemPrefix}
|
|
155
|
+
when 'string'
|
|
156
|
+
log label, {prefix}
|
|
157
|
+
when 'objects'
|
|
158
|
+
if (lObjects.length==1) && shortEnough(label, lObjects[0])
|
|
159
|
+
logItem label, lObjects[0], {prefix}
|
|
160
|
+
else
|
|
161
|
+
if (label.indexOf(':') != label.length - 1)
|
|
162
|
+
label += ':'
|
|
163
|
+
log label, {prefix}
|
|
164
|
+
for obj in lObjects
|
|
165
|
+
logItem undef, obj, {prefix}
|
|
166
|
+
return
|
|
167
|
+
|
|
168
|
+
# ---------------------------------------------------------------------------
|
|
169
|
+
|
|
159
170
|
export stdShouldLog = (label, type, funcName, stack) ->
|
|
160
171
|
# --- if type is 'enter', then funcName won't be on the stack yet
|
|
161
172
|
# returns the (possibly modified) label to log
|
package/src/debug_utils.js
CHANGED
|
@@ -81,39 +81,36 @@ export var setDebugDebugging = function(value = true) {
|
|
|
81
81
|
|
|
82
82
|
// ---------------------------------------------------------------------------
|
|
83
83
|
logif = function(label, ...lObjects) {
|
|
84
|
-
var funcName, nObjects, type;
|
|
84
|
+
var funcName, itemPrefix, level, nObjects, prefix, sep, type;
|
|
85
85
|
if (!doDebugDebug) {
|
|
86
86
|
return;
|
|
87
87
|
}
|
|
88
88
|
assert(isString(label), `1st arg ${OL(label)} should be a string`);
|
|
89
89
|
nObjects = lObjects.length;
|
|
90
90
|
[type, funcName] = getType(label, nObjects);
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
break;
|
|
109
|
-
case 'objects':
|
|
110
|
-
log(label, ...lObjects);
|
|
91
|
+
level = callStack.getLevel();
|
|
92
|
+
prefix = getPrefix(level);
|
|
93
|
+
itemPrefix = removeLastVbar(prefix);
|
|
94
|
+
sep = dashes(itemPrefix, 40);
|
|
95
|
+
if (type === 'enter') {
|
|
96
|
+
if (defined(lFunctions) && (indexOf.call(lFunctions, funcName) < 0)) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
callStack.enter(funcName);
|
|
100
|
+
} else if (type === 'return') {
|
|
101
|
+
if (defined(lFunctions) && (indexOf.call(lFunctions, funcName) < 0)) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
doTheLogging(type, label, lObjects);
|
|
106
|
+
if (type === 'return') {
|
|
107
|
+
callStack.returnFrom(funcName);
|
|
111
108
|
}
|
|
112
109
|
};
|
|
113
110
|
|
|
114
111
|
// ---------------------------------------------------------------------------
|
|
115
112
|
export var debug = function(label, ...lObjects) {
|
|
116
|
-
var doLog, funcName,
|
|
113
|
+
var doLog, funcName, nObjects, type;
|
|
117
114
|
logif(`enter debug(${OL(label)})`, ...lObjects);
|
|
118
115
|
assert(isString(label), `1st arg ${OL(label)} should be a string`);
|
|
119
116
|
// --- We want to allow objects to be undef. Therefore, we need to
|
|
@@ -146,56 +143,7 @@ export var debug = function(label, ...lObjects) {
|
|
|
146
143
|
logif(`doLog = ${OL(doLog)}`);
|
|
147
144
|
logif(`${nObjects} objects`);
|
|
148
145
|
if (doLog) {
|
|
149
|
-
|
|
150
|
-
prefix = getPrefix(level);
|
|
151
|
-
itemPrefix = removeLastVbar(prefix);
|
|
152
|
-
sep = dashes(itemPrefix, 40);
|
|
153
|
-
assert(isString(sep), "sep is not a string");
|
|
154
|
-
logif("callStack", callStack);
|
|
155
|
-
logif(`level = ${OL(level)}`);
|
|
156
|
-
logif(`prefix = ${OL(prefix)}`);
|
|
157
|
-
logif(`itemPrefix = ${OL(itemPrefix)}`);
|
|
158
|
-
logif(`sep = ${OL(sep)}`);
|
|
159
|
-
switch (type) {
|
|
160
|
-
case 'enter':
|
|
161
|
-
log(label, {prefix});
|
|
162
|
-
for (i = j = 0, len = lObjects.length; j < len; i = ++j) {
|
|
163
|
-
obj = lObjects[i];
|
|
164
|
-
if (i > 0) {
|
|
165
|
-
log(sep);
|
|
166
|
-
}
|
|
167
|
-
logItem(undef, obj, {itemPrefix});
|
|
168
|
-
}
|
|
169
|
-
break;
|
|
170
|
-
case 'return':
|
|
171
|
-
log(label, {
|
|
172
|
-
prefix: addArrow(prefix)
|
|
173
|
-
});
|
|
174
|
-
for (i = k = 0, len1 = lObjects.length; k < len1; i = ++k) {
|
|
175
|
-
obj = lObjects[i];
|
|
176
|
-
if (i > 0) {
|
|
177
|
-
log(sep);
|
|
178
|
-
}
|
|
179
|
-
logItem(undef, obj, {itemPrefix});
|
|
180
|
-
}
|
|
181
|
-
break;
|
|
182
|
-
case 'string':
|
|
183
|
-
log(label, {prefix});
|
|
184
|
-
break;
|
|
185
|
-
case 'objects':
|
|
186
|
-
if ((nObjects === 1) && shortEnough(label, lObjects[0])) {
|
|
187
|
-
logItem(label, lObjects[0], {prefix});
|
|
188
|
-
} else {
|
|
189
|
-
if (label.indexOf(':') !== label.length - 1) {
|
|
190
|
-
label += ':';
|
|
191
|
-
}
|
|
192
|
-
log(label, {prefix});
|
|
193
|
-
for (l = 0, len2 = lObjects.length; l < len2; l++) {
|
|
194
|
-
obj = lObjects[l];
|
|
195
|
-
logItem(undef, obj, {prefix});
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
146
|
+
doTheLogging(type, label, lObjects);
|
|
199
147
|
}
|
|
200
148
|
if ((type === 'enter') && doLog && (label.indexOf('call') === -1)) {
|
|
201
149
|
callStack.logCurFunc();
|
|
@@ -207,6 +155,61 @@ export var debug = function(label, ...lObjects) {
|
|
|
207
155
|
};
|
|
208
156
|
|
|
209
157
|
|
|
158
|
+
// ---------------------------------------------------------------------------
|
|
159
|
+
export var doTheLogging = function(type, label, lObjects) {
|
|
160
|
+
var i, itemPrefix, j, k, l, len, len1, len2, level, obj, prefix, sep;
|
|
161
|
+
level = callStack.getLevel();
|
|
162
|
+
prefix = getPrefix(level);
|
|
163
|
+
itemPrefix = removeLastVbar(prefix);
|
|
164
|
+
sep = dashes(itemPrefix, 40);
|
|
165
|
+
assert(isString(sep), "sep is not a string");
|
|
166
|
+
logif("callStack", callStack);
|
|
167
|
+
logif(`level = ${OL(level)}`);
|
|
168
|
+
logif(`prefix = ${OL(prefix)}`);
|
|
169
|
+
logif(`itemPrefix = ${OL(itemPrefix)}`);
|
|
170
|
+
logif(`sep = ${OL(sep)}`);
|
|
171
|
+
switch (type) {
|
|
172
|
+
case 'enter':
|
|
173
|
+
log(label, {prefix});
|
|
174
|
+
for (i = j = 0, len = lObjects.length; j < len; i = ++j) {
|
|
175
|
+
obj = lObjects[i];
|
|
176
|
+
if (i > 0) {
|
|
177
|
+
log(sep);
|
|
178
|
+
}
|
|
179
|
+
logItem(undef, obj, {itemPrefix});
|
|
180
|
+
}
|
|
181
|
+
break;
|
|
182
|
+
case 'return':
|
|
183
|
+
log(label, {
|
|
184
|
+
prefix: addArrow(prefix)
|
|
185
|
+
});
|
|
186
|
+
for (i = k = 0, len1 = lObjects.length; k < len1; i = ++k) {
|
|
187
|
+
obj = lObjects[i];
|
|
188
|
+
if (i > 0) {
|
|
189
|
+
log(sep);
|
|
190
|
+
}
|
|
191
|
+
logItem(undef, obj, {itemPrefix});
|
|
192
|
+
}
|
|
193
|
+
break;
|
|
194
|
+
case 'string':
|
|
195
|
+
log(label, {prefix});
|
|
196
|
+
break;
|
|
197
|
+
case 'objects':
|
|
198
|
+
if ((lObjects.length === 1) && shortEnough(label, lObjects[0])) {
|
|
199
|
+
logItem(label, lObjects[0], {prefix});
|
|
200
|
+
} else {
|
|
201
|
+
if (label.indexOf(':') !== label.length - 1) {
|
|
202
|
+
label += ':';
|
|
203
|
+
}
|
|
204
|
+
log(label, {prefix});
|
|
205
|
+
for (l = 0, len2 = lObjects.length; l < len2; l++) {
|
|
206
|
+
obj = lObjects[l];
|
|
207
|
+
logItem(undef, obj, {prefix});
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
|
|
210
213
|
// ---------------------------------------------------------------------------
|
|
211
214
|
export var stdShouldLog = function(label, type, funcName, stack) {
|
|
212
215
|
var prevLogged;
|