@jdeighan/coffee-utils 7.0.57 → 7.0.58

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": "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;