@jdeighan/coffee-utils 4.1.3 → 4.1.7

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