@jdeighan/coffee-utils 4.1.18 → 4.1.22

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@jdeighan/coffee-utils",
3
3
  "type": "module",
4
- "version": "4.1.18",
4
+ "version": "4.1.22",
5
5
  "description": "A set of utility functions for CoffeeScript",
6
6
  "main": "coffee_utils.js",
7
7
  "exports": {
8
8
  ".": "./src/coffee_utils.js",
9
+ "./external": "./src/external.js",
9
10
  "./fs": "./src/fs_utils.js",
10
11
  "./log": "./src/log_utils.js",
11
12
  "./block": "./src/block_utils.js",
@@ -25,7 +26,7 @@
25
26
  "scripts": {
26
27
  "build": "cls && rm -f ./src/*.js && coffee -c ./src",
27
28
  "old_pretest": "npm run build && rm -f ./test/*.js && rm -f ./test/*.coffee && cielo -fq ./test",
28
- "pretest": "cls && coffee -c .",
29
+ "pretest": "cls && cielo -ckq .",
29
30
  "test": "ava ./test/*.test.js",
30
31
  "prefinaltest": "npm run pretest",
31
32
  "finaltest": "cross-env FINALTEST=yes ava ./test/*.test.js"
@@ -1,6 +1,5 @@
1
1
  # coffee_utils.coffee
2
2
 
3
- import getline from 'readline-sync'
4
3
  import {log} from '@jdeighan/coffee-utils/log'
5
4
 
6
5
  export sep_dash = '-'.repeat(42)
@@ -249,15 +248,6 @@ export say = (x) ->
249
248
  console.log x
250
249
  return
251
250
 
252
- # ---------------------------------------------------------------------------
253
- # ask - ask a question
254
- # later, on a web page, prompt the user for answer to question
255
-
256
- export ask = (prompt) ->
257
-
258
- answer = getline.question("{prompt}? ")
259
- return answer
260
-
261
251
  # ---------------------------------------------------------------------------
262
252
 
263
253
  export titleLine = (title, char='=', padding=2, linelen=42) ->
@@ -2,8 +2,6 @@
2
2
  // coffee_utils.coffee
3
3
  var commentRegExp;
4
4
 
5
- import getline from 'readline-sync';
6
-
7
5
  import {
8
6
  log
9
7
  } from '@jdeighan/coffee-utils/log';
@@ -251,15 +249,6 @@ export var say = function(x) {
251
249
  }
252
250
  };
253
251
 
254
- // ---------------------------------------------------------------------------
255
- // ask - ask a question
256
- // later, on a web page, prompt the user for answer to question
257
- export var ask = function(prompt) {
258
- var answer;
259
- answer = getline.question("{prompt}? ");
260
- return answer;
261
- };
262
-
263
252
  // ---------------------------------------------------------------------------
264
253
  export var titleLine = function(title, char = '=', padding = 2, linelen = 42) {
265
254
  var nLeft, nRight, strLeft, strMiddle, strRight, titleLen;
@@ -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];
@@ -0,0 +1,24 @@
1
+ # external.coffee
2
+
3
+ import getline from 'readline-sync'
4
+ import {execSync} from 'child_process'
5
+
6
+ # ---------------------------------------------------------------------------
7
+ # exec - run external commands
8
+
9
+ export exec = (cmd) ->
10
+
11
+ buffer = execSync cmd, {
12
+ windowsHide: true
13
+ }
14
+ return buffer.toString()
15
+
16
+ # ---------------------------------------------------------------------------
17
+ # ask - ask a question
18
+ # later, on a web page, prompt the user for answer to question
19
+
20
+ export ask = (prompt) ->
21
+
22
+ answer = getline.question("{prompt}? ")
23
+ return answer
24
+
@@ -0,0 +1,26 @@
1
+ // Generated by CoffeeScript 2.6.1
2
+ // external.coffee
3
+ import getline from 'readline-sync';
4
+
5
+ import {
6
+ execSync
7
+ } from 'child_process';
8
+
9
+ // ---------------------------------------------------------------------------
10
+ // exec - run external commands
11
+ export var exec = function(cmd) {
12
+ var buffer;
13
+ buffer = execSync(cmd, {
14
+ windowsHide: true
15
+ });
16
+ return buffer.toString();
17
+ };
18
+
19
+ // ---------------------------------------------------------------------------
20
+ // ask - ask a question
21
+ // later, on a web page, prompt the user for answer to question
22
+ export var ask = function(prompt) {
23
+ var answer;
24
+ answer = getline.question("{prompt}? ");
25
+ return answer;
26
+ };