@jdeighan/coffee-utils 4.1.3 → 4.1.7

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": "4.1.3",
4
+ "version": "4.1.7",
5
5
  "description": "A set of utility functions for CoffeeScript",
6
6
  "main": "coffee_utils.js",
7
7
  "exports": {
@@ -13,7 +13,6 @@
13
13
  "./debug": "./src/debug_utils.js",
14
14
  "./svelte": "./src/svelte_utils.js",
15
15
  "./test": "./src/UnitTester.js",
16
- "./privenv": "./src/private_env.js",
17
16
  "./package.json": "./package.json"
18
17
  },
19
18
  "engines": {
@@ -14,9 +14,9 @@ import {debug, debugging, setDebugging} from '@jdeighan/coffee-utils/debug'
14
14
 
15
15
  export class UnitTester
16
16
 
17
- constructor: (whichTest='deepEqual', @fulltest=false) ->
17
+ constructor: (@file='unknown file') ->
18
18
  @hFound = {}
19
- @setWhichTest whichTest
19
+ @whichTest = 'deepEqual'
20
20
  @justshow = false
21
21
  @testing = true
22
22
  @maxLineNum = undef
@@ -180,7 +180,7 @@ export class UnitTester
180
180
  @lineNum = lineNum # set an object property
181
181
 
182
182
  if (lineNum < 0) && process.env.FINALTEST
183
- error "Negative line numbers not allowed in FINALTEST"
183
+ error "Negative line numbers not allowed in FINALTEST in #{@file}"
184
184
 
185
185
  if ! @testing || (@maxLineNum && (lineNum > @maxLineNum))
186
186
  return
@@ -242,9 +242,6 @@ export class UnitTester
242
242
 
243
243
  getLineNum: (lineNum) ->
244
244
 
245
- if @fulltest && (lineNum < 0)
246
- error "UnitTester(): negative line number during full test!!!"
247
-
248
245
  # --- patch lineNum to avoid duplicates
249
246
  while @hFound[lineNum]
250
247
  if lineNum < 0
package/src/UnitTester.js CHANGED
@@ -32,10 +32,10 @@ import {
32
32
 
33
33
  // ---------------------------------------------------------------------------
34
34
  export var UnitTester = class UnitTester {
35
- constructor(whichTest = 'deepEqual', fulltest = false) {
36
- this.fulltest = fulltest;
35
+ constructor(file = 'unknown file') {
36
+ this.file = file;
37
37
  this.hFound = {};
38
- this.setWhichTest(whichTest);
38
+ this.whichTest = 'deepEqual';
39
39
  this.justshow = false;
40
40
  this.testing = true;
41
41
  this.maxLineNum = undef;
@@ -189,7 +189,7 @@ export var UnitTester = class UnitTester {
189
189
  this.initialize();
190
190
  this.lineNum = lineNum; // set an object property
191
191
  if ((lineNum < 0) && process.env.FINALTEST) {
192
- error("Negative line numbers not allowed in FINALTEST");
192
+ error(`Negative line numbers not allowed in FINALTEST in ${this.file}`);
193
193
  }
194
194
  if (!this.testing || (this.maxLineNum && (lineNum > this.maxLineNum))) {
195
195
  return;
@@ -256,9 +256,6 @@ export var UnitTester = class UnitTester {
256
256
 
257
257
  // ........................................................................
258
258
  getLineNum(lineNum) {
259
- if (this.fulltest && (lineNum < 0)) {
260
- error("UnitTester(): negative line number during full test!!!");
261
- }
262
259
  // --- patch lineNum to avoid duplicates
263
260
  while (this.hFound[lineNum]) {
264
261
  if (lineNum < 0) {
@@ -202,6 +202,12 @@ export isInteger = (x) ->
202
202
  else
203
203
  return false
204
204
 
205
+ # ---------------------------------------------------------------------------
206
+
207
+ export uniq = (lItems) ->
208
+
209
+ return [...new Set(lItems)]
210
+
205
211
  # ---------------------------------------------------------------------------
206
212
  # warn - issue a warning
207
213
 
@@ -209,13 +215,23 @@ export warn = (message) ->
209
215
 
210
216
  log "WARNING: #{message}"
211
217
 
218
+ # ---------------------------------------------------------------------------
219
+ # hashToStr - stringify a hash
220
+
221
+ export hashToStr = (h) ->
222
+
223
+ return JSON.stringify(h, Object.keys(h).sort(), 3)
224
+
212
225
  # ---------------------------------------------------------------------------
213
226
  # say - print to the console (for now)
214
227
  # later, on a web page, call alert(str)
215
228
 
216
- export say = (str) ->
229
+ export say = (x) ->
217
230
 
218
- console.log str
231
+ if isHash(x)
232
+ console.log hashToStr(x)
233
+ else
234
+ console.log x
219
235
  return
220
236
 
221
237
  # ---------------------------------------------------------------------------
@@ -210,17 +210,32 @@ export var isInteger = function(x) {
210
210
  }
211
211
  };
212
212
 
213
+ // ---------------------------------------------------------------------------
214
+ export var uniq = function(lItems) {
215
+ return [...new Set(lItems)];
216
+ };
217
+
213
218
  // ---------------------------------------------------------------------------
214
219
  // warn - issue a warning
215
220
  export var warn = function(message) {
216
221
  return log(`WARNING: ${message}`);
217
222
  };
218
223
 
224
+ // ---------------------------------------------------------------------------
225
+ // hashToStr - stringify a hash
226
+ export var hashToStr = function(h) {
227
+ return JSON.stringify(h, Object.keys(h).sort(), 3);
228
+ };
229
+
219
230
  // ---------------------------------------------------------------------------
220
231
  // say - print to the console (for now)
221
232
  // later, on a web page, call alert(str)
222
- export var say = function(str) {
223
- console.log(str);
233
+ export var say = function(x) {
234
+ if (isHash(x)) {
235
+ console.log(hashToStr(x));
236
+ } else {
237
+ console.log(x);
238
+ }
224
239
  };
225
240
 
226
241
  // ---------------------------------------------------------------------------
@@ -45,8 +45,14 @@ export fileExt = (path) ->
45
45
 
46
46
  export mydir = (url) ->
47
47
 
48
- dir = pathlib.dirname(urllib.fileURLToPath(url))
49
- return mkpath(dir)
48
+ debug "url = #{url}"
49
+ path = urllib.fileURLToPath(url)
50
+ debug "path = #{path}"
51
+ dir = pathlib.dirname(path)
52
+ debug "dir = #{dir}"
53
+ final = mkpath(dir)
54
+ debug "final = #{final}"
55
+ return final
50
56
 
51
57
  # ---------------------------------------------------------------------------
52
58
 
package/src/fs_utils.js CHANGED
@@ -57,9 +57,15 @@ export var fileExt = function(path) {
57
57
  // mydir() - pass argument `import.meta.url` and it will return
58
58
  // the directory your file is in
59
59
  export var mydir = function(url) {
60
- var dir;
61
- dir = pathlib.dirname(urllib.fileURLToPath(url));
62
- return mkpath(dir);
60
+ var dir, final, path;
61
+ debug(`url = ${url}`);
62
+ path = urllib.fileURLToPath(url);
63
+ debug(`path = ${path}`);
64
+ dir = pathlib.dirname(path);
65
+ debug(`dir = ${dir}`);
66
+ final = mkpath(dir);
67
+ debug(`final = ${final}`);
68
+ return final;
63
69
  };
64
70
 
65
71
  // ---------------------------------------------------------------------------
package/temp.js ADDED
@@ -0,0 +1,26 @@
1
+ // Generated by CoffeeScript 2.6.1
2
+ // temp.coffee
3
+ var dir;
4
+
5
+ import {
6
+ say
7
+ } from '@jdeighan/coffee-utils';
8
+
9
+ import {
10
+ log
11
+ } from '@jdeighan/coffee-utils/log';
12
+
13
+ import {
14
+ setDebugging
15
+ } from '@jdeighan/coffee-utils/debug';
16
+
17
+ import {
18
+ mydir,
19
+ mkpath
20
+ } from '@jdeighan/coffee-utils/fs';
21
+
22
+ setDebugging(true);
23
+
24
+ dir = mydir(import.meta.url);
25
+
26
+ say(`dir = ${dir}`);
@@ -1,52 +0,0 @@
1
- # private_env.coffee
2
-
3
- import {assert} from '@jdeighan/coffee-utils'
4
- import {log} from '@jdeighan/coffee-utils/log'
5
-
6
- # --- Use by simply importing and using hEnvLib
7
- # This module does no loading - it merely holds hEnvLib
8
- export hPrivEnv = {}
9
-
10
- # --- None of these callbacks should replace variable hEnvLib
11
-
12
- export hPrivEnvCallbacks = {
13
- getVar: (name) ->
14
- return hPrivEnv[name]
15
- setVar: (name, value) ->
16
- hPrivEnv[name] = value
17
- return
18
- clearVar: (name) ->
19
- delete hPrivEnv[name]
20
- return
21
- clearAll: () ->
22
- for name in Object.keys(hPrivEnv)
23
- delete hPrivEnv[name]
24
- return
25
- names: () ->
26
- return Object.keys(hPrivEnv)
27
- }
28
-
29
- # ---------------------------------------------------------------------------
30
-
31
- export setPrivEnvVar = (name, value) ->
32
-
33
- hPrivEnv[name] = value
34
- return
35
-
36
- # ---------------------------------------------------------------------------
37
-
38
- export resetPrivEnv = () ->
39
-
40
- for name in Object.keys(hPrivEnv)
41
- delete hPrivEnv[name]
42
- return
43
-
44
- # ---------------------------------------------------------------------------
45
-
46
- export logPrivEnv = () ->
47
-
48
- log "PRIVATE ENVIRONMENT:"
49
- for key,value of hPrivEnv
50
- log " #{key} = '#{value}'"
51
- log '-'.repeat(40)
52
- return
@@ -1,63 +0,0 @@
1
- // Generated by CoffeeScript 2.6.1
2
- // private_env.coffee
3
- import {
4
- assert
5
- } from '@jdeighan/coffee-utils';
6
-
7
- import {
8
- log
9
- } from '@jdeighan/coffee-utils/log';
10
-
11
- // --- Use by simply importing and using hEnvLib
12
- // This module does no loading - it merely holds hEnvLib
13
- export var hPrivEnv = {};
14
-
15
- // --- None of these callbacks should replace variable hEnvLib
16
- export var hPrivEnvCallbacks = {
17
- getVar: function(name) {
18
- return hPrivEnv[name];
19
- },
20
- setVar: function(name, value) {
21
- hPrivEnv[name] = value;
22
- },
23
- clearVar: function(name) {
24
- delete hPrivEnv[name];
25
- },
26
- clearAll: function() {
27
- var i, len, name, ref;
28
- ref = Object.keys(hPrivEnv);
29
- for (i = 0, len = ref.length; i < len; i++) {
30
- name = ref[i];
31
- delete hPrivEnv[name];
32
- }
33
- },
34
- names: function() {
35
- return Object.keys(hPrivEnv);
36
- }
37
- };
38
-
39
- // ---------------------------------------------------------------------------
40
- export var setPrivEnvVar = function(name, value) {
41
- hPrivEnv[name] = value;
42
- };
43
-
44
- // ---------------------------------------------------------------------------
45
- export var resetPrivEnv = function() {
46
- var i, len, name, ref;
47
- ref = Object.keys(hPrivEnv);
48
- for (i = 0, len = ref.length; i < len; i++) {
49
- name = ref[i];
50
- delete hPrivEnv[name];
51
- }
52
- };
53
-
54
- // ---------------------------------------------------------------------------
55
- export var logPrivEnv = function() {
56
- var key, value;
57
- log("PRIVATE ENVIRONMENT:");
58
- for (key in hPrivEnv) {
59
- value = hPrivEnv[key];
60
- log(` ${key} = '${value}'`);
61
- }
62
- log('-'.repeat(40));
63
- };