@jdeighan/coffee-utils 8.0.14 → 8.0.17

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