@vbarbarosh/node-helpers 3.38.1 → 3.40.0

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
@@ -2,7 +2,7 @@
2
2
  "author": "Vladimir Barbarosh <vladimir.barbarosh@gmail.com>",
3
3
  "license": "MIT",
4
4
  "name": "@vbarbarosh/node-helpers",
5
- "version": "3.38.1",
5
+ "version": "3.40.0",
6
6
  "description": "A set of helpers for JavaScript/Node.js",
7
7
  "files": [
8
8
  "src"
package/src/fs_rm.js CHANGED
@@ -1,5 +1,18 @@
1
+ const Promise = require('bluebird');
1
2
  const fs = require('fs');
2
- const util = require('util');
3
3
 
4
- // https://nodejs.org/api/util.html#util_util_promisify_original
5
- module.exports = util.promisify(fs.unlink);
4
+ /**
5
+ * Remove a file
6
+ *
7
+ * @link https://nodejs.org/api/fs.html#fsunlinkpath-callback
8
+ */
9
+ async function fs_rm(filename)
10
+ {
11
+ await new Promise(function (resolve, reject) {
12
+ fs.unlink(filename, function (error) {
13
+ error ? reject(error) : resolve();
14
+ });
15
+ });
16
+ }
17
+
18
+ module.exports = fs_rm;
package/src/fs_rmf.js ADDED
@@ -0,0 +1,14 @@
1
+ const fs_exists = require('./fs_exists');
2
+ const fs_rm = require('./fs_rm');
3
+
4
+ /**
5
+ * Remove the file if it exists.
6
+ */
7
+ async function fs_rmf(filename)
8
+ {
9
+ if (await fs_exists(filename)) {
10
+ await fs_rm(filename);
11
+ }
12
+ }
13
+
14
+ module.exports = fs_rmf;
@@ -0,0 +1,30 @@
1
+ const fs = require('fs');
2
+
3
+ function fs_touch(file)
4
+ {
5
+ return new Promise(function (resolve, reject) {
6
+ fs.open(file, 'a', function (error, fd) {
7
+ if (error) {
8
+ if (error.code === 'EISDIR') {
9
+ reject(new Error(`Cannot touch a directory: ${file}`));
10
+ }
11
+ else {
12
+ reject(error);
13
+ }
14
+ return;
15
+ }
16
+ fs.close(fd, function (error) {
17
+ if (error) {
18
+ reject(error);
19
+ return;
20
+ }
21
+ const now = new Date();
22
+ fs.utimes(file, now, now, function (error) {
23
+ error ? reject(error) : resolve();
24
+ });
25
+ });
26
+ });
27
+ });
28
+ }
29
+
30
+ module.exports = fs_touch;