@jdeighan/coffee-utils 2.1.8 → 2.1.12
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +1 -1
- package/src/coffee_utils.coffee +2 -0
- package/src/coffee_utils.js +2 -0
- package/src/debug_utils.coffee +18 -22
- package/src/debug_utils.js +16 -22
- package/src/log_utils.coffee +16 -5
- package/src/log_utils.js +18 -7
package/package.json
CHANGED
package/src/coffee_utils.coffee
CHANGED
package/src/coffee_utils.js
CHANGED
@@ -383,6 +383,8 @@ export var oneline = function(obj) {
|
|
383
383
|
}
|
384
384
|
};
|
385
385
|
|
386
|
+
export var OL = oneline;
|
387
|
+
|
386
388
|
// ---------------------------------------------------------------------------
|
387
389
|
// truncateBlock - limit block to a certain number of lines
|
388
390
|
export var truncateBlock = function(str, numLines) {
|
package/src/debug_utils.coffee
CHANGED
@@ -26,6 +26,12 @@ lDebugFuncs = undef
|
|
26
26
|
|
27
27
|
# ---------------------------------------------------------------------------
|
28
28
|
|
29
|
+
stripArrow = (prefix) ->
|
30
|
+
|
31
|
+
return prefix.replace(arrow, ' ')
|
32
|
+
|
33
|
+
# ---------------------------------------------------------------------------
|
34
|
+
|
29
35
|
export debugIfLineMatches = (regexp=undef) ->
|
30
36
|
|
31
37
|
ifMatches = regexp
|
@@ -92,20 +98,6 @@ export resetDebugging = () ->
|
|
92
98
|
lDebugStack = []
|
93
99
|
return
|
94
100
|
|
95
|
-
# ---------------------------------------------------------------------------
|
96
|
-
# --- export only to allow unit testing
|
97
|
-
|
98
|
-
export patchDebugStr = (str) ->
|
99
|
-
|
100
|
-
# --- Match things like "$varname$" to "'#{escapeStr(varname)}'"
|
101
|
-
re = /\$([A-Za-z_][A-Za-z0-9_]*)\$/g
|
102
|
-
|
103
|
-
replacer = (match, ident) ->
|
104
|
-
|
105
|
-
return "'\#\{escapeStr(#{ident})\}'"
|
106
|
-
|
107
|
-
return str.replace(re, replacer)
|
108
|
-
|
109
101
|
# ---------------------------------------------------------------------------
|
110
102
|
|
111
103
|
export debug = (lArgs...) ->
|
@@ -128,13 +120,13 @@ export debug = (lArgs...) ->
|
|
128
120
|
item = lArgs[1]
|
129
121
|
|
130
122
|
# --- determine if we're entering or returning from a function
|
131
|
-
entering =
|
123
|
+
entering = returning = false
|
132
124
|
curFunc = undef
|
133
125
|
if (lMatches = str.match(///^
|
134
126
|
\s*
|
135
127
|
enter
|
136
128
|
\s+
|
137
|
-
([A-Za-z_][A-Za-z0-9_]*)
|
129
|
+
([A-Za-z_][A-Za-z0-9_\.]*)
|
138
130
|
///))
|
139
131
|
entering = true
|
140
132
|
curFunc = lMatches[1]
|
@@ -144,9 +136,9 @@ export debug = (lArgs...) ->
|
|
144
136
|
.*
|
145
137
|
from
|
146
138
|
\s+
|
147
|
-
([A-Za-z_][A-Za-z0-9_]*)
|
139
|
+
([A-Za-z_][A-Za-z0-9_\.]*)
|
148
140
|
///))
|
149
|
-
|
141
|
+
returning = true
|
150
142
|
curFunc = lMatches[1]
|
151
143
|
|
152
144
|
if entering && lDebugFuncs && funcMatch(curFunc)
|
@@ -155,7 +147,7 @@ export debug = (lArgs...) ->
|
|
155
147
|
if debugging && (not ifMatches? || str.match(ifMatches))
|
156
148
|
|
157
149
|
# --- set the prefix, i.e. indentation to use
|
158
|
-
if
|
150
|
+
if returning
|
159
151
|
if (debugLevel==0)
|
160
152
|
prefix = arrow
|
161
153
|
else
|
@@ -166,15 +158,19 @@ export debug = (lArgs...) ->
|
|
166
158
|
if (nArgs==1)
|
167
159
|
log str, item, {prefix}
|
168
160
|
else
|
169
|
-
log str, item, {
|
161
|
+
log str, item, {
|
162
|
+
prefix,
|
163
|
+
logItem: true,
|
164
|
+
itemPrefix: stripArrow(prefix),
|
165
|
+
}
|
170
166
|
|
171
|
-
if
|
167
|
+
if returning && lDebugFuncs && funcMatch(curFunc)
|
172
168
|
setDebugging false # revert to previous setting - might still be on
|
173
169
|
|
174
170
|
if debugging
|
175
171
|
if entering
|
176
172
|
debugLevel += 1
|
177
|
-
if
|
173
|
+
if returning && (debugLevel > 0)
|
178
174
|
debugLevel -= 1
|
179
175
|
return
|
180
176
|
|
package/src/debug_utils.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
// Generated by CoffeeScript 2.5.1
|
2
2
|
// debug_utils.coffee
|
3
|
-
var arrow, arrowhead, corner, debugLevel, getPrefix, hbar, ifMatches, indent, lDebugFuncs, lDebugStack, reMethod, restoreDebugEnv, saveDebugEnv, vbar;
|
3
|
+
var arrow, arrowhead, corner, debugLevel, getPrefix, hbar, ifMatches, indent, lDebugFuncs, lDebugStack, reMethod, restoreDebugEnv, saveDebugEnv, stripArrow, vbar;
|
4
4
|
|
5
5
|
import {
|
6
6
|
strict as assert
|
@@ -48,6 +48,11 @@ ifMatches = undef;
|
|
48
48
|
|
49
49
|
lDebugFuncs = undef;
|
50
50
|
|
51
|
+
// ---------------------------------------------------------------------------
|
52
|
+
stripArrow = function(prefix) {
|
53
|
+
return prefix.replace(arrow, ' ');
|
54
|
+
};
|
55
|
+
|
51
56
|
// ---------------------------------------------------------------------------
|
52
57
|
export var debugIfLineMatches = function(regexp = undef) {
|
53
58
|
ifMatches = regexp;
|
@@ -106,21 +111,9 @@ export var resetDebugging = function() {
|
|
106
111
|
lDebugStack = [];
|
107
112
|
};
|
108
113
|
|
109
|
-
// ---------------------------------------------------------------------------
|
110
|
-
// --- export only to allow unit testing
|
111
|
-
export var patchDebugStr = function(str) {
|
112
|
-
var re, replacer;
|
113
|
-
// --- Match things like "$varname$" to "'#{escapeStr(varname)}'"
|
114
|
-
re = /\$([A-Za-z_][A-Za-z0-9_]*)\$/g;
|
115
|
-
replacer = function(match, ident) {
|
116
|
-
return `'\#\{escapeStr(${ident})\}'`;
|
117
|
-
};
|
118
|
-
return str.replace(re, replacer);
|
119
|
-
};
|
120
|
-
|
121
114
|
// ---------------------------------------------------------------------------
|
122
115
|
export var debug = function(...lArgs) {
|
123
|
-
var curFunc, entering,
|
116
|
+
var curFunc, entering, item, lMatches, nArgs, prefix, returning, str;
|
124
117
|
// --- either 1 or 2 args
|
125
118
|
if (!debugging && (lDebugFuncs == null)) {
|
126
119
|
return;
|
@@ -135,13 +128,13 @@ export var debug = function(...lArgs) {
|
|
135
128
|
item = lArgs[1];
|
136
129
|
}
|
137
130
|
// --- determine if we're entering or returning from a function
|
138
|
-
entering =
|
131
|
+
entering = returning = false;
|
139
132
|
curFunc = undef;
|
140
|
-
if ((lMatches = str.match(/^\s*enter\s+([A-Za-z_][A-Za-z0-9_]*)/))) {
|
133
|
+
if ((lMatches = str.match(/^\s*enter\s+([A-Za-z_][A-Za-z0-9_\.]*)/))) {
|
141
134
|
entering = true;
|
142
135
|
curFunc = lMatches[1];
|
143
|
-
} else if ((lMatches = str.match(/^\s*return.*from\s+([A-Za-z_][A-Za-z0-9_]*)/))) {
|
144
|
-
|
136
|
+
} else if ((lMatches = str.match(/^\s*return.*from\s+([A-Za-z_][A-Za-z0-9_\.]*)/))) {
|
137
|
+
returning = true;
|
145
138
|
curFunc = lMatches[1];
|
146
139
|
}
|
147
140
|
if (entering && lDebugFuncs && funcMatch(curFunc)) {
|
@@ -149,7 +142,7 @@ export var debug = function(...lArgs) {
|
|
149
142
|
}
|
150
143
|
if (debugging && ((ifMatches == null) || str.match(ifMatches))) {
|
151
144
|
// --- set the prefix, i.e. indentation to use
|
152
|
-
if (
|
145
|
+
if (returning) {
|
153
146
|
if (debugLevel === 0) {
|
154
147
|
prefix = arrow;
|
155
148
|
} else {
|
@@ -163,18 +156,19 @@ export var debug = function(...lArgs) {
|
|
163
156
|
} else {
|
164
157
|
log(str, item, {
|
165
158
|
prefix,
|
166
|
-
logItem: true
|
159
|
+
logItem: true,
|
160
|
+
itemPrefix: stripArrow(prefix)
|
167
161
|
});
|
168
162
|
}
|
169
163
|
}
|
170
|
-
if (
|
164
|
+
if (returning && lDebugFuncs && funcMatch(curFunc)) {
|
171
165
|
setDebugging(false); // revert to previous setting - might still be on
|
172
166
|
}
|
173
167
|
if (debugging) {
|
174
168
|
if (entering) {
|
175
169
|
debugLevel += 1;
|
176
170
|
}
|
177
|
-
if (
|
171
|
+
if (returning && (debugLevel > 0)) {
|
178
172
|
debugLevel -= 1;
|
179
173
|
}
|
180
174
|
}
|
package/src/log_utils.coffee
CHANGED
@@ -77,10 +77,10 @@ export log = (lArgs...) ->
|
|
77
77
|
# valid options:
|
78
78
|
# prefix
|
79
79
|
# logItem
|
80
|
+
# itemPrefix
|
80
81
|
|
81
82
|
if (lArgs.length==0)
|
82
83
|
return
|
83
|
-
prefix = ''
|
84
84
|
str = lArgs[0]
|
85
85
|
switch lArgs.length
|
86
86
|
when 1
|
@@ -92,11 +92,22 @@ export log = (lArgs...) ->
|
|
92
92
|
item = lArgs[1] # might not be logged, though
|
93
93
|
hOptions = lArgs[2]
|
94
94
|
assert isHash(hOptions), "log(): 3rd arg must be a hash"
|
95
|
-
if hOptions.prefix?
|
96
|
-
prefix = hOptions.prefix
|
97
95
|
if hOptions.logItem?
|
98
96
|
logItem = hOptions.logItem
|
99
97
|
|
98
|
+
if hOptions?
|
99
|
+
if hOptions.prefix?
|
100
|
+
prefix = hOptions.prefix
|
101
|
+
else
|
102
|
+
prefix = ''
|
103
|
+
|
104
|
+
if hOptions.itemPrefix?
|
105
|
+
itemPrefix = hOptions.itemPrefix
|
106
|
+
else
|
107
|
+
itemPrefix = ''
|
108
|
+
else
|
109
|
+
prefix = itemPrefix = ''
|
110
|
+
|
100
111
|
if (not logItem)
|
101
112
|
logger "#{prefix}#{str}"
|
102
113
|
else if not item?
|
@@ -110,7 +121,7 @@ export log = (lArgs...) ->
|
|
110
121
|
else
|
111
122
|
logger "#{prefix}#{str}:"
|
112
123
|
for line in stringToArray(item)
|
113
|
-
logger "#{
|
124
|
+
logger "#{itemPrefix} #{escapeStr(line)}"
|
114
125
|
else
|
115
126
|
# --- It's some type of object
|
116
127
|
json = JSON.stringify(item)
|
@@ -119,7 +130,7 @@ export log = (lArgs...) ->
|
|
119
130
|
else
|
120
131
|
logger "#{prefix}#{str}:"
|
121
132
|
for str in stringToArray(stringify(item))
|
122
|
-
logger "#{
|
133
|
+
logger "#{itemPrefix} #{str}"
|
123
134
|
return
|
124
135
|
|
125
136
|
# ---------------------------------------------------------------------------
|
package/src/log_utils.js
CHANGED
@@ -81,15 +81,15 @@ maxOneLine = 32;
|
|
81
81
|
|
82
82
|
// ---------------------------------------------------------------------------
|
83
83
|
export var log = function(...lArgs) {
|
84
|
-
var esc, hOptions, i, item, j, json, len, len1, line, logItem, prefix, ref, ref1, str;
|
84
|
+
var esc, hOptions, i, item, itemPrefix, j, json, len, len1, line, logItem, prefix, ref, ref1, str;
|
85
85
|
// --- (str, item, hOptions)
|
86
86
|
// valid options:
|
87
87
|
// prefix
|
88
88
|
// logItem
|
89
|
+
// itemPrefix
|
89
90
|
if (lArgs.length === 0) {
|
90
91
|
return;
|
91
92
|
}
|
92
|
-
prefix = '';
|
93
93
|
str = lArgs[0];
|
94
94
|
switch (lArgs.length) {
|
95
95
|
case 1:
|
@@ -103,13 +103,24 @@ export var log = function(...lArgs) {
|
|
103
103
|
item = lArgs[1];
|
104
104
|
hOptions = lArgs[2];
|
105
105
|
assert(isHash(hOptions), "log(): 3rd arg must be a hash");
|
106
|
-
if (hOptions.prefix != null) {
|
107
|
-
prefix = hOptions.prefix;
|
108
|
-
}
|
109
106
|
if (hOptions.logItem != null) {
|
110
107
|
logItem = hOptions.logItem;
|
111
108
|
}
|
112
109
|
}
|
110
|
+
if (hOptions != null) {
|
111
|
+
if (hOptions.prefix != null) {
|
112
|
+
prefix = hOptions.prefix;
|
113
|
+
} else {
|
114
|
+
prefix = '';
|
115
|
+
}
|
116
|
+
if (hOptions.itemPrefix != null) {
|
117
|
+
itemPrefix = hOptions.itemPrefix;
|
118
|
+
} else {
|
119
|
+
itemPrefix = '';
|
120
|
+
}
|
121
|
+
} else {
|
122
|
+
prefix = itemPrefix = '';
|
123
|
+
}
|
113
124
|
if (!logItem) {
|
114
125
|
logger(`${prefix}${str}`);
|
115
126
|
} else if (item == null) {
|
@@ -125,7 +136,7 @@ export var log = function(...lArgs) {
|
|
125
136
|
ref = stringToArray(item);
|
126
137
|
for (i = 0, len = ref.length; i < len; i++) {
|
127
138
|
line = ref[i];
|
128
|
-
logger(`${
|
139
|
+
logger(`${itemPrefix} ${escapeStr(line)}`);
|
129
140
|
}
|
130
141
|
}
|
131
142
|
} else {
|
@@ -138,7 +149,7 @@ export var log = function(...lArgs) {
|
|
138
149
|
ref1 = stringToArray(stringify(item));
|
139
150
|
for (j = 0, len1 = ref1.length; j < len1; j++) {
|
140
151
|
str = ref1[j];
|
141
|
-
logger(`${
|
152
|
+
logger(`${itemPrefix} ${str}`);
|
142
153
|
}
|
143
154
|
}
|
144
155
|
}
|