@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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jdeighan/coffee-utils",
3
3
  "type": "module",
4
- "version": "7.0.57",
4
+ "version": "7.0.58",
5
5
  "description": "A set of utility functions for CoffeeScript",
6
6
  "main": "coffee_utils.js",
7
7
  "exports": {
@@ -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
- switch type
54
- when 'enter'
55
- if defined(lFunctions) && (funcName not in lFunctions)
56
- return
57
- callStack.enter funcName
58
- log label, lObjects...
59
- when 'return'
60
- if defined(lFunctions) && (funcName not in lFunctions)
61
- return
62
- log label, lObjects...
63
- callStack.returnFrom funcName
64
- when 'string'
65
- log label, lObjects...
66
- when 'objects'
67
- log label, lObjects...
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
- level = callStack.getLevel()
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
@@ -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
- switch (type) {
92
- case 'enter':
93
- if (defined(lFunctions) && (indexOf.call(lFunctions, funcName) < 0)) {
94
- return;
95
- }
96
- callStack.enter(funcName);
97
- log(label, ...lObjects);
98
- break;
99
- case 'return':
100
- if (defined(lFunctions) && (indexOf.call(lFunctions, funcName) < 0)) {
101
- return;
102
- }
103
- log(label, ...lObjects);
104
- callStack.returnFrom(funcName);
105
- break;
106
- case 'string':
107
- log(label, ...lObjects);
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, i, itemPrefix, j, k, l, len, len1, len2, level, nObjects, obj, prefix, sep, type;
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
- level = callStack.getLevel();
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;