@jdeighan/coffee-utils 4.1.19 → 4.1.20

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jdeighan/coffee-utils",
3
3
  "type": "module",
4
- "version": "4.1.19",
4
+ "version": "4.1.20",
5
5
  "description": "A set of utility functions for CoffeeScript",
6
6
  "main": "coffee_utils.js",
7
7
  "exports": {
@@ -33,7 +33,7 @@ export resetDebugging = (funcDoDebug=undef, funcDoLog=undef) ->
33
33
  debugging = false
34
34
  debugLevel = 0
35
35
  stack.reset()
36
- shouldDebug = (funcName) -> debugging
36
+ shouldDebug = (funcName, curDebugging) -> curDebugging
37
37
  shouldLog = (str) -> debugging
38
38
  if funcDoDebug
39
39
  setDebugging funcDoDebug, funcDoLog
@@ -49,8 +49,8 @@ export setDebugging = (funcDoDebug=undef, funcDoLog=undef) ->
49
49
  debugging = false
50
50
  lFuncNames = words(funcDoDebug)
51
51
  assert isArray(lFuncNames), "words('#{funcDoDebug}') returned non-array"
52
- shouldDebug = (funcName) ->
53
- debugging || funcMatch(funcName, lFuncNames)
52
+ shouldDebug = (funcName, curDebugging) ->
53
+ curDebugging || funcMatch(funcName, lFuncNames)
54
54
  else if isFunction(funcDoDebug)
55
55
  shouldDebug = funcDoDebug
56
56
  else
@@ -126,6 +126,17 @@ getPrefix = (level) ->
126
126
 
127
127
  # ---------------------------------------------------------------------------
128
128
 
129
+ envSaysDebug = (curFunc) ->
130
+
131
+ if process.env.DEBUG_FUNC?
132
+ return curFunc == process.env.DEBUG_FUNC
133
+ else if process.env.DEBUG_FUNCS?
134
+ return process.env.DEBUG_FUNCS.split(',').indexOf(curFunc) > -1
135
+ else
136
+ return false
137
+
138
+ # ---------------------------------------------------------------------------
139
+
129
140
  export debug = (lArgs...) ->
130
141
  # --- either 1 or 2 args
131
142
 
@@ -158,7 +169,7 @@ export debug = (lArgs...) ->
158
169
  entering = true
159
170
  curFunc = lMatches[1]
160
171
  stack.call(curFunc, curEnv())
161
- debugging = shouldDebug(curFunc, debugging)
172
+ debugging = envSaysDebug(curFunc) || shouldDebug(curFunc, debugging)
162
173
  else if (lMatches = str.match(///^
163
174
  \s*
164
175
  return
@@ -1,6 +1,6 @@
1
1
  // Generated by CoffeeScript 2.6.1
2
2
  // debug_utils.coffee
3
- var arrow, arrowhead, corner, curEnv, debugLevel, getPrefix, hbar, indent, logger, reMethod, setEnv, shouldDebug, shouldLog, stack, stdLogger, stripArrow, vbar;
3
+ var arrow, arrowhead, corner, curEnv, debugLevel, envSaysDebug, getPrefix, hbar, indent, logger, reMethod, setEnv, shouldDebug, shouldLog, stack, stdLogger, stripArrow, vbar;
4
4
 
5
5
  import {
6
6
  assert,
@@ -63,8 +63,8 @@ export var resetDebugging = function(funcDoDebug = undef, funcDoLog = undef) {
63
63
  debugging = false;
64
64
  debugLevel = 0;
65
65
  stack.reset();
66
- shouldDebug = function(funcName) {
67
- return debugging;
66
+ shouldDebug = function(funcName, curDebugging) {
67
+ return curDebugging;
68
68
  };
69
69
  shouldLog = function(str) {
70
70
  return debugging;
@@ -83,8 +83,8 @@ export var setDebugging = function(funcDoDebug = undef, funcDoLog = undef) {
83
83
  debugging = false;
84
84
  lFuncNames = words(funcDoDebug);
85
85
  assert(isArray(lFuncNames), `words('${funcDoDebug}') returned non-array`);
86
- shouldDebug = function(funcName) {
87
- return debugging || funcMatch(funcName, lFuncNames);
86
+ shouldDebug = function(funcName, curDebugging) {
87
+ return curDebugging || funcMatch(funcName, lFuncNames);
88
88
  };
89
89
  } else if (isFunction(funcDoDebug)) {
90
90
  shouldDebug = funcDoDebug;
@@ -153,6 +153,17 @@ getPrefix = function(level) {
153
153
  return ' '.repeat(level);
154
154
  };
155
155
 
156
+ // ---------------------------------------------------------------------------
157
+ envSaysDebug = function(curFunc) {
158
+ if (process.env.DEBUG_FUNC != null) {
159
+ return curFunc === process.env.DEBUG_FUNC;
160
+ } else if (process.env.DEBUG_FUNCS != null) {
161
+ return process.env.DEBUG_FUNCS.split(',').indexOf(curFunc) > -1;
162
+ } else {
163
+ return false;
164
+ }
165
+ };
166
+
156
167
  // ---------------------------------------------------------------------------
157
168
  export var debug = function(...lArgs) {
158
169
  var curFunc, entering, hInfo, item, lMatches, nArgs, prefix, returning, str;
@@ -177,7 +188,7 @@ export var debug = function(...lArgs) {
177
188
  entering = true;
178
189
  curFunc = lMatches[1];
179
190
  stack.call(curFunc, curEnv());
180
- debugging = shouldDebug(curFunc, debugging);
191
+ debugging = envSaysDebug(curFunc) || shouldDebug(curFunc, debugging);
181
192
  } else if ((lMatches = str.match(/^\s*return.+from\s+([A-Za-z_][A-Za-z0-9_\.]*)/))) {
182
193
  returning = true;
183
194
  curFunc = lMatches[1];