@jdeighan/coffee-utils 4.1.16 → 4.1.20
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 +4 -1
- package/src/coffee_utils.coffee +12 -0
- package/src/coffee_utils.js +14 -0
- package/src/debug_utils.coffee +15 -4
- package/src/debug_utils.js +17 -6
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jdeighan/coffee-utils",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.1.
|
|
4
|
+
"version": "4.1.20",
|
|
5
5
|
"description": "A set of utility functions for CoffeeScript",
|
|
6
6
|
"main": "coffee_utils.js",
|
|
7
7
|
"exports": {
|
|
@@ -19,6 +19,9 @@
|
|
|
19
19
|
"engines": {
|
|
20
20
|
"node": ">=12.0.0"
|
|
21
21
|
},
|
|
22
|
+
"ava": {
|
|
23
|
+
"verbose": false
|
|
24
|
+
},
|
|
22
25
|
"scripts": {
|
|
23
26
|
"build": "cls && rm -f ./src/*.js && coffee -c ./src",
|
|
24
27
|
"old_pretest": "npm run build && rm -f ./test/*.js && rm -f ./test/*.coffee && cielo -fq ./test",
|
package/src/coffee_utils.coffee
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
# coffee_utils.coffee
|
|
2
2
|
|
|
3
3
|
import getline from 'readline-sync'
|
|
4
|
+
import {execSync} from 'child_process'
|
|
5
|
+
|
|
4
6
|
import {log} from '@jdeighan/coffee-utils/log'
|
|
5
7
|
|
|
6
8
|
export sep_dash = '-'.repeat(42)
|
|
7
9
|
export sep_eq = '='.repeat(42)
|
|
8
10
|
`export const undef = undefined`
|
|
9
11
|
|
|
12
|
+
# ---------------------------------------------------------------------------
|
|
13
|
+
# exec - run external commands
|
|
14
|
+
|
|
15
|
+
export exec = (cmd) ->
|
|
16
|
+
|
|
17
|
+
buffer = execSync cmd, {
|
|
18
|
+
windowsHide: true
|
|
19
|
+
}
|
|
20
|
+
return buffer.toString()
|
|
21
|
+
|
|
10
22
|
# ---------------------------------------------------------------------------
|
|
11
23
|
# pass - do nothing
|
|
12
24
|
|
package/src/coffee_utils.js
CHANGED
|
@@ -4,6 +4,10 @@ var commentRegExp;
|
|
|
4
4
|
|
|
5
5
|
import getline from 'readline-sync';
|
|
6
6
|
|
|
7
|
+
import {
|
|
8
|
+
execSync
|
|
9
|
+
} from 'child_process';
|
|
10
|
+
|
|
7
11
|
import {
|
|
8
12
|
log
|
|
9
13
|
} from '@jdeighan/coffee-utils/log';
|
|
@@ -14,6 +18,16 @@ export var sep_eq = '='.repeat(42);
|
|
|
14
18
|
|
|
15
19
|
export const undef = undefined;
|
|
16
20
|
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
// exec - run external commands
|
|
23
|
+
export var exec = function(cmd) {
|
|
24
|
+
var buffer;
|
|
25
|
+
buffer = execSync(cmd, {
|
|
26
|
+
windowsHide: true
|
|
27
|
+
});
|
|
28
|
+
return buffer.toString();
|
|
29
|
+
};
|
|
30
|
+
|
|
17
31
|
// ---------------------------------------------------------------------------
|
|
18
32
|
// pass - do nothing
|
|
19
33
|
export var pass = function() {};
|
package/src/debug_utils.coffee
CHANGED
|
@@ -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) ->
|
|
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
|
-
|
|
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
|
package/src/debug_utils.js
CHANGED
|
@@ -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
|
|
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
|
|
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];
|