@jdeighan/coffee-utils 7.0.8 → 7.0.11

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.8",
4
+ "version": "7.0.11",
5
5
  "description": "A set of utility functions for CoffeeScript",
6
6
  "main": "coffee_utils.js",
7
7
  "exports": {
@@ -6,11 +6,27 @@ import fs from 'fs'
6
6
  import NReadLines from 'n-readlines'
7
7
 
8
8
  import {
9
- assert, undef, pass, rtrim, error, nonEmpty,
10
- isString, isRegExp, isFunction, croak,
9
+ assert, undef, pass, rtrim, error, isEmpty, nonEmpty,
10
+ isString, isArray, isRegExp, isFunction, croak,
11
11
  } from '@jdeighan/coffee-utils'
12
12
  import {log, LOG} from '@jdeighan/coffee-utils/log'
13
13
  import {debug} from '@jdeighan/coffee-utils/debug'
14
+ import {arrayToBlock} from '@jdeighan/coffee-utils/block'
15
+
16
+ # ---------------------------------------------------------------------------
17
+ # mydir() - pass argument `import.meta.url` and it will return
18
+ # the directory your file is in
19
+
20
+ export mydir = (url) ->
21
+
22
+ debug "url = #{url}"
23
+ path = urllib.fileURLToPath(url)
24
+ debug "path = #{path}"
25
+ dir = pathlib.dirname(path)
26
+ debug "dir = #{dir}"
27
+ final = mkpath(dir)
28
+ debug "final = #{final}"
29
+ return final
14
30
 
15
31
  # ---------------------------------------------------------------------------
16
32
 
@@ -41,21 +57,6 @@ export fileExt = (path) ->
41
57
  else
42
58
  return ''
43
59
 
44
- # ---------------------------------------------------------------------------
45
- # mydir() - pass argument `import.meta.url` and it will return
46
- # the directory your file is in
47
-
48
- export mydir = (url) ->
49
-
50
- debug "url = #{url}"
51
- path = urllib.fileURLToPath(url)
52
- debug "path = #{path}"
53
- dir = pathlib.dirname(path)
54
- debug "dir = #{dir}"
55
- final = mkpath(dir)
56
- debug "final = #{final}"
57
- return final
58
-
59
60
  # ---------------------------------------------------------------------------
60
61
 
61
62
  export mkpath = (lParts...) ->
@@ -138,6 +139,13 @@ export slurp = (filepath, maxLines=undef) ->
138
139
  export barf = (filepath, contents) ->
139
140
 
140
141
  debug "enter barf('#{filepath}')", contents
142
+ if isEmpty(contents)
143
+ debug "return from barf(): empty contents"
144
+ return
145
+ if isArray(contents)
146
+ contents = arrayToBlock(contents)
147
+ else if ! isString(contents)
148
+ croak "barf(): Invalid contents"
141
149
  contents = rtrim(contents) + "\n"
142
150
  fs.writeFileSync(filepath, contents, {encoding: 'utf8'})
143
151
  debug "return from barf()"
package/src/fs_utils.js CHANGED
@@ -16,8 +16,10 @@ import {
16
16
  pass,
17
17
  rtrim,
18
18
  error,
19
+ isEmpty,
19
20
  nonEmpty,
20
21
  isString,
22
+ isArray,
21
23
  isRegExp,
22
24
  isFunction,
23
25
  croak
@@ -32,6 +34,25 @@ import {
32
34
  debug
33
35
  } from '@jdeighan/coffee-utils/debug';
34
36
 
37
+ import {
38
+ arrayToBlock
39
+ } from '@jdeighan/coffee-utils/block';
40
+
41
+ // ---------------------------------------------------------------------------
42
+ // mydir() - pass argument `import.meta.url` and it will return
43
+ // the directory your file is in
44
+ export var mydir = function(url) {
45
+ var dir, final, path;
46
+ debug(`url = ${url}`);
47
+ path = urllib.fileURLToPath(url);
48
+ debug(`path = ${path}`);
49
+ dir = pathlib.dirname(path);
50
+ debug(`dir = ${dir}`);
51
+ final = mkpath(dir);
52
+ debug(`final = ${final}`);
53
+ return final;
54
+ };
55
+
35
56
  // ---------------------------------------------------------------------------
36
57
  export var isFile = function(fullpath) {
37
58
  return fs.lstatSync(fullpath).isFile();
@@ -60,21 +81,6 @@ export var fileExt = function(path) {
60
81
  }
61
82
  };
62
83
 
63
- // ---------------------------------------------------------------------------
64
- // mydir() - pass argument `import.meta.url` and it will return
65
- // the directory your file is in
66
- export var mydir = function(url) {
67
- var dir, final, path;
68
- debug(`url = ${url}`);
69
- path = urllib.fileURLToPath(url);
70
- debug(`path = ${path}`);
71
- dir = pathlib.dirname(path);
72
- debug(`dir = ${dir}`);
73
- final = mkpath(dir);
74
- debug(`final = ${final}`);
75
- return final;
76
- };
77
-
78
84
  // ---------------------------------------------------------------------------
79
85
  export var mkpath = function(...lParts) {
80
86
  var _, drive, i, lMatches, lNewParts, len, newPath, part, rest;
@@ -165,6 +171,15 @@ export var slurp = function(filepath, maxLines = undef) {
165
171
  // barf - write a string to a file
166
172
  export var barf = function(filepath, contents) {
167
173
  debug(`enter barf('${filepath}')`, contents);
174
+ if (isEmpty(contents)) {
175
+ debug("return from barf(): empty contents");
176
+ return;
177
+ }
178
+ if (isArray(contents)) {
179
+ contents = arrayToBlock(contents);
180
+ } else if (!isString(contents)) {
181
+ croak("barf(): Invalid contents");
182
+ }
168
183
  contents = rtrim(contents) + "\n";
169
184
  fs.writeFileSync(filepath, contents, {
170
185
  encoding: 'utf8'