@jdeighan/coffee-utils 8.0.14 → 8.0.17

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": "8.0.14",
4
+ "version": "8.0.17",
5
5
  "description": "A set of utility functions for CoffeeScript",
6
6
  "main": "coffee_utils.js",
7
7
  "exports": {
@@ -55,6 +55,6 @@
55
55
  "svelte": "^3.49.0"
56
56
  },
57
57
  "devDependencies": {
58
- "@jdeighan/unit-tester": "^2.0.14"
58
+ "@jdeighan/unit-tester": "^2.0.16"
59
59
  }
60
60
  }
package/src/arrow.coffee CHANGED
@@ -9,10 +9,12 @@ export hbar = '─' # unicode 2500
9
9
  export corner = '└' # unicode 2514
10
10
  export arrowhead = '>'
11
11
  export space = ' '
12
+ export dot = '.'
12
13
 
13
- export oneIndent = vbar + space + space + space
14
- export arrow = corner + hbar + arrowhead + space
15
- export clearIndent = space + space + space + space
14
+ export oneIndent = vbar + space + space + space
15
+ export arrow = corner + hbar + arrowhead + space
16
+ export clearIndent = space + space + space + space
17
+ export dotIndent = dot + space + space + space
16
18
 
17
19
  # ---------------------------------------------------------------------------
18
20
 
@@ -30,6 +32,12 @@ export prefix = (level, option='none') ->
30
32
  when 'noLast2Vbars'
31
33
  assert (level >= 2), "prefix(), noLast2Vbars but level=#{OL(level)}"
32
34
  return oneIndent.repeat(level-2) + clearIndent + clearIndent
35
+ when 'dotLastVbar'
36
+ assert (level >= 1), "prefix(), dotLastVbar but level=#{OL(level)}"
37
+ return oneIndent.repeat(level-1) + dotIndent
38
+ when 'dotLast2Vbars'
39
+ assert (level >= 2), "prefix(), dotLast2Vbars but level=#{OL(level)}"
40
+ return oneIndent.repeat(level-2) + dotIndent + clearIndent
33
41
  else
34
42
  return oneIndent.repeat(level)
35
43
 
package/src/arrow.js CHANGED
@@ -18,12 +18,16 @@ export var arrowhead = '>';
18
18
 
19
19
  export var space = ' ';
20
20
 
21
+ export var dot = '.';
22
+
21
23
  export var oneIndent = vbar + space + space + space;
22
24
 
23
25
  export var arrow = corner + hbar + arrowhead + space;
24
26
 
25
27
  export var clearIndent = space + space + space + space;
26
28
 
29
+ export var dotIndent = dot + space + space + space;
30
+
27
31
  // ---------------------------------------------------------------------------
28
32
  export var prefix = function(level, option = 'none') {
29
33
  switch (option) {
@@ -40,6 +44,12 @@ export var prefix = function(level, option = 'none') {
40
44
  case 'noLast2Vbars':
41
45
  assert(level >= 2, `prefix(), noLast2Vbars but level=${OL(level)}`);
42
46
  return oneIndent.repeat(level - 2) + clearIndent + clearIndent;
47
+ case 'dotLastVbar':
48
+ assert(level >= 1, `prefix(), dotLastVbar but level=${OL(level)}`);
49
+ return oneIndent.repeat(level - 1) + dotIndent;
50
+ case 'dotLast2Vbars':
51
+ assert(level >= 2, `prefix(), dotLast2Vbars but level=${OL(level)}`);
52
+ return oneIndent.repeat(level - 2) + dotIndent + clearIndent;
43
53
  default:
44
54
  return oneIndent.repeat(level);
45
55
  }
@@ -151,12 +151,6 @@ export isBoolean = (x) ->
151
151
 
152
152
  # ---------------------------------------------------------------------------
153
153
 
154
- export isNumber = (x) ->
155
-
156
- return typeof x == 'number' || x instanceof Number
157
-
158
- # ---------------------------------------------------------------------------
159
-
160
154
  export isObject = (x) ->
161
155
 
162
156
  return (typeof x == 'object') \
@@ -280,14 +274,33 @@ export isRegExp = (x) ->
280
274
 
281
275
  # ---------------------------------------------------------------------------
282
276
 
283
- export isInteger = (x) ->
277
+ export isNumber = (x, hOptions={}) ->
278
+
279
+ result = (typeof x == 'number') || (x instanceof Number)
280
+ if result
281
+ if defined(hOptions.min) && (x < hOptions.min)
282
+ result = false
283
+ if defined(hOptions.max) && (x > hOptions.max)
284
+ result = false
285
+ return result
286
+
287
+ # ---------------------------------------------------------------------------
288
+
289
+ export isInteger = (x, hOptions={}) ->
284
290
 
285
291
  if (typeof x == 'number')
286
- return Number.isInteger(x)
287
- else if (getClassName(x) == 'Number')
288
- return Number.isInteger(x.valueOf())
292
+ result = Number.isInteger(x)
293
+ else if (x instanceof Number)
294
+ result = Number.isInteger(x.valueOf())
289
295
  else
290
- return false
296
+ result = false
297
+
298
+ if result
299
+ if defined(hOptions.min) && (x < hOptions.min)
300
+ result = false
301
+ if defined(hOptions.max) && (x > hOptions.max)
302
+ result = false
303
+ return result
291
304
 
292
305
  # ---------------------------------------------------------------------------
293
306
 
@@ -144,11 +144,6 @@ export var isBoolean = function(x) {
144
144
  return typeof x === 'boolean';
145
145
  };
146
146
 
147
- // ---------------------------------------------------------------------------
148
- export var isNumber = function(x) {
149
- return typeof x === 'number' || x instanceof Number;
150
- };
151
-
152
147
  // ---------------------------------------------------------------------------
153
148
  export var isObject = function(x) {
154
149
  return (typeof x === 'object') && !isString(x) && !isArray(x) && !isHash(x) && !isNumber(x);
@@ -280,14 +275,39 @@ export var isRegExp = function(x) {
280
275
  };
281
276
 
282
277
  // ---------------------------------------------------------------------------
283
- export var isInteger = function(x) {
278
+ export var isNumber = function(x, hOptions = {}) {
279
+ var result;
280
+ result = (typeof x === 'number') || (x instanceof Number);
281
+ if (result) {
282
+ if (defined(hOptions.min) && (x < hOptions.min)) {
283
+ result = false;
284
+ }
285
+ if (defined(hOptions.max) && (x > hOptions.max)) {
286
+ result = false;
287
+ }
288
+ }
289
+ return result;
290
+ };
291
+
292
+ // ---------------------------------------------------------------------------
293
+ export var isInteger = function(x, hOptions = {}) {
294
+ var result;
284
295
  if (typeof x === 'number') {
285
- return Number.isInteger(x);
286
- } else if (getClassName(x) === 'Number') {
287
- return Number.isInteger(x.valueOf());
296
+ result = Number.isInteger(x);
297
+ } else if (x instanceof Number) {
298
+ result = Number.isInteger(x.valueOf());
288
299
  } else {
289
- return false;
300
+ result = false;
301
+ }
302
+ if (result) {
303
+ if (defined(hOptions.min) && (x < hOptions.min)) {
304
+ result = false;
305
+ }
306
+ if (defined(hOptions.max) && (x > hOptions.max)) {
307
+ result = false;
308
+ }
290
309
  }
310
+ return result;
291
311
  };
292
312
 
293
313
  // ---------------------------------------------------------------------------
@@ -111,12 +111,8 @@ export doTheLogging = (type, label, lObjects) ->
111
111
 
112
112
  when 'enter'
113
113
  log label, prefix(level)
114
- if label.match(///^ \s* call///)
115
- pre = prefix(level+1, 'noLastVbar')
116
- itemPre = prefix(level+2, 'noLast2Vbars')
117
- else
118
- pre = prefix(level+1)
119
- itemPre = prefix(level+2, 'noLastVbar')
114
+ pre = prefix(level+1, 'dotLastVbar')
115
+ itemPre = prefix(level+2, 'dotLast2Vbars')
120
116
  for obj,i in lObjects
121
117
  logItem "arg[#{i}]", obj, pre, itemPre
122
118
 
@@ -126,6 +122,7 @@ export doTheLogging = (type, label, lObjects) ->
126
122
  itemPre = prefix(level+1, 'noLast2Vbars')
127
123
  for obj,i in lObjects
128
124
  logItem "ret[#{i}]", obj, pre, itemPre
125
+
129
126
  when 'string'
130
127
  pre = prefix(level)
131
128
  itemPre = prefix(level+1, 'noLastVbar')
@@ -151,13 +151,8 @@ export var doTheLogging = function(type, label, lObjects) {
151
151
  switch (type) {
152
152
  case 'enter':
153
153
  log(label, prefix(level));
154
- if (label.match(/^\s*call/)) {
155
- pre = prefix(level + 1, 'noLastVbar');
156
- itemPre = prefix(level + 2, 'noLast2Vbars');
157
- } else {
158
- pre = prefix(level + 1);
159
- itemPre = prefix(level + 2, 'noLastVbar');
160
- }
154
+ pre = prefix(level + 1, 'dotLastVbar');
155
+ itemPre = prefix(level + 2, 'dotLast2Vbars');
161
156
  for (i = j = 0, len = lObjects.length; j < len; i = ++j) {
162
157
  obj = lObjects[i];
163
158
  logItem(`arg[${i}]`, obj, pre, itemPre);