@vbarbarosh/node-helpers 1.1.4 → 2.0.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/README.md +1 -1
- package/package.json +1 -1
- package/src/array_chunk.js +1 -1
- package/src/array_chunk.test.js +2 -2
- package/src/array_gcd.js +1 -1
- package/src/array_gcd.test.js +2 -2
- package/src/array_group.js +2 -2
- package/src/array_group_map.js +1 -1
- package/src/array_index.js +1 -1
- package/src/array_index.test.js +2 -2
- package/src/array_max.js +1 -1
- package/src/array_max.test.js +2 -2
- package/src/array_min.js +1 -1
- package/src/array_min.test.js +2 -2
- package/src/array_shuffle.js +1 -1
- package/src/array_sort.js +2 -2
- package/src/array_sort.test.js +2 -2
- package/src/array_sort_other.js +2 -2
- package/src/array_sort_other.test.js +2 -2
- package/src/array_sum.js +1 -1
- package/src/array_sum.test.js +2 -2
- package/src/array_unique_last.js +1 -1
- package/src/cli.js +8 -25
- package/src/crypto_decrypt_aes256.js +2 -2
- package/src/crypto_encrypt_aes256.js +2 -2
- package/src/crypto_encrypt_aes256.test.js +3 -3
- package/src/crypto_hash_md5.js +2 -2
- package/src/crypto_hash_sha256.js +2 -2
- package/src/crypto_hash_sha256.test.js +2 -2
- package/src/crypto_hmac_sha256.js +2 -2
- package/src/fcmp_dates.js +1 -1
- package/src/fcmp_numbers.js +1 -1
- package/src/fcmp_strings.js +1 -1
- package/src/format_thousands.js +1 -1
- package/src/fs_append.js +3 -3
- package/src/fs_append_json.js +3 -3
- package/src/fs_assert_file_exists.js +2 -2
- package/src/fs_assert_file_readable.js +2 -2
- package/src/fs_copy.js +3 -3
- package/src/fs_exists.js +2 -2
- package/src/fs_fclose.js +3 -3
- package/src/fs_fi.js +6 -6
- package/src/fs_find.js +5 -5
- package/src/fs_fopen.js +3 -3
- package/src/fs_fopen_update.js +2 -2
- package/src/fs_fread.js +3 -3
- package/src/fs_fsize.js +2 -2
- package/src/fs_fstat.js +3 -3
- package/src/fs_fwrite.js +3 -3
- package/src/fs_ls.js +5 -5
- package/src/fs_lsr.js +5 -5
- package/src/fs_lstat.js +3 -3
- package/src/fs_mkdir.js +3 -3
- package/src/fs_mkdirp.js +17 -11
- package/src/fs_mkdirp.test.js +15 -0
- package/src/fs_path_basename.js +2 -2
- package/src/fs_path_dirname.js +2 -2
- package/src/fs_path_join.js +2 -2
- package/src/fs_path_resolve.js +2 -2
- package/src/fs_path_sanitize.js +2 -2
- package/src/fs_path_tempdir.js +2 -2
- package/src/fs_read.js +3 -3
- package/src/fs_read_json.js +2 -2
- package/src/fs_read_stream.js +3 -1
- package/src/fs_read_utf8.js +2 -2
- package/src/fs_readdir.js +3 -3
- package/src/fs_readlink.js +3 -3
- package/src/fs_rename.js +3 -3
- package/src/fs_rm.js +3 -3
- package/src/fs_rmdir.js +3 -3
- package/src/fs_rmrf.js +7 -7
- package/src/fs_size.js +2 -2
- package/src/fs_tempdir.js +6 -6
- package/src/fs_write.js +3 -3
- package/src/fs_write_stream.js +3 -1
- package/src/http_delete.js +2 -2
- package/src/http_get_blob.js +2 -2
- package/src/http_get_buffer.js +2 -2
- package/src/http_get_file.js +6 -6
- package/src/http_get_json.js +2 -2
- package/src/http_patch_json.js +2 -2
- package/src/http_post_json.js +2 -2
- package/src/http_post_multipart.js +3 -3
- package/src/http_post_urlencoded.js +3 -3
- package/src/http_put_file.js +6 -6
- package/src/http_put_json.js +2 -2
- package/src/identity.js +1 -1
- package/src/ignore.js +1 -1
- package/src/json_stringify_stable.js +2 -2
- package/src/now_atom.js +1 -1
- package/src/random_int.js +6 -0
- package/src/redis_connect.js +21 -0
- package/src/redis_lshift.js +8 -0
- package/src/redis_poll.js +106 -0
- package/src/redis_poll_zshift_callback_rpush.js +141 -0
- package/src/redis_poll_zshift_spawn_rpush.js +159 -0
- package/src/redis_zshift.js +9 -0
- package/src/stream_data_ln.js +1 -1
- package/src/stream_data_ln.test.js +4 -4
- package/src/stream_promise.js +2 -2
- package/src/stream_promise.test.js +3 -3
- package/src/throttle.js +1 -1
package/README.md
CHANGED
package/package.json
CHANGED
package/src/array_chunk.js
CHANGED
package/src/array_chunk.test.js
CHANGED
package/src/array_gcd.js
CHANGED
package/src/array_gcd.test.js
CHANGED
package/src/array_group.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const array_group_map = require('./array_group_map');
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Group items by common key and return an array of groups.
|
|
@@ -12,4 +12,4 @@ function array_group(array, fn)
|
|
|
12
12
|
return Object.values(array_group_map(array, fn));
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
module.exports = array_group;
|
package/src/array_group_map.js
CHANGED
package/src/array_index.js
CHANGED
package/src/array_index.test.js
CHANGED
package/src/array_max.js
CHANGED
package/src/array_max.test.js
CHANGED
package/src/array_min.js
CHANGED
package/src/array_min.test.js
CHANGED
package/src/array_shuffle.js
CHANGED
package/src/array_sort.js
CHANGED
package/src/array_sort.test.js
CHANGED
package/src/array_sort_other.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const fcmp_strings = require('./fcmp_strings');
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Sort items in an `array` at the same order as in `other`. Values which
|
|
@@ -30,4 +30,4 @@ function array_sort_other(array, fn, other, fcmp = fcmp_strings)
|
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
module.exports = array_sort_other;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const array_sort_other = require('./array_sort_other');
|
|
2
|
+
const assert = require('assert');
|
|
3
3
|
|
|
4
4
|
describe('array_sort_other', function () {
|
|
5
5
|
it('should handle basic input', function () {
|
package/src/array_sum.js
CHANGED
package/src/array_sum.test.js
CHANGED
package/src/array_unique_last.js
CHANGED
package/src/cli.js
CHANGED
|
@@ -1,38 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Entry point for Node CLI apps
|
|
3
|
-
*
|
|
4
|
-
* @link https://github.com/vbarbarosh/node-cli
|
|
5
3
|
*/
|
|
6
|
-
|
|
4
|
+
function cli(main)
|
|
7
5
|
{
|
|
8
6
|
// https://stackoverflow.com/a/46916601/1478566
|
|
9
7
|
const timer = setInterval(v => v, 1E9);
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
Promise.resolve(main()).then(resolve, reject);
|
|
10
|
+
|
|
11
|
+
function resolve() {
|
|
12
|
+
clearInterval(timer);
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
function reject(error) {
|
|
15
|
+
clearInterval(timer);
|
|
15
16
|
console.error(error);
|
|
16
17
|
process.exit(1);
|
|
17
18
|
}
|
|
18
|
-
finally {
|
|
19
|
-
clearInterval(timer);
|
|
20
|
-
}
|
|
21
19
|
}
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
//
|
|
25
|
-
// // https://stackoverflow.com/a/57241059/1478566
|
|
26
|
-
// function cli(main)
|
|
27
|
-
// {
|
|
28
|
-
// // https://stackoverflow.com/a/46916601/1478566
|
|
29
|
-
// return Promise.method(main).call().catch(panic).finally(clearInterval.bind(null, setInterval(v=>v, 1E9)));
|
|
30
|
-
// }
|
|
31
|
-
//
|
|
32
|
-
// function panic(error)
|
|
33
|
-
// {
|
|
34
|
-
// console.error(error);
|
|
35
|
-
// process.exit(1);
|
|
36
|
-
// }
|
|
37
|
-
|
|
38
|
-
export default cli;
|
|
21
|
+
module.exports = cli;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const crypto = require('crypto');
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @link https://nodejs.org/api/crypto.html#crypto_class_cipher
|
|
@@ -13,4 +13,4 @@ function crypto_decrypt_aes256(password, ivenc)
|
|
|
13
13
|
return Buffer.concat([decipher.update(enc), decipher.final()]);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
module.exports = crypto_decrypt_aes256;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const crypto = require('crypto');
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @link https://nodejs.org/api/crypto.html#crypto_class_cipher
|
|
@@ -15,4 +15,4 @@ function crypto_encrypt_aes256(password, data)
|
|
|
15
15
|
return Buffer.concat([Buffer.from([iv.length]), iv, cipher.update(data), cipher.final()]);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
module.exports = crypto_encrypt_aes256;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const assert = require('assert');
|
|
2
|
+
const crypto_decrypt_aes256 = require('./crypto_decrypt_aes256');
|
|
3
|
+
const crypto_encrypt_aes256 = require('./crypto_encrypt_aes256');
|
|
4
4
|
|
|
5
5
|
describe('crypto_encrypt_aes256', function () {
|
|
6
6
|
it('should handle basic input', function () {
|
package/src/crypto_hash_md5.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const crypto = require('crypto');
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
*
|
|
@@ -11,4 +11,4 @@ function crypto_hash_md5(data)
|
|
|
11
11
|
return crypto.createHash('md5').update(data).digest();
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
module.exports = crypto_hash_md5;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const crypto = require('crypto');
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
*
|
|
@@ -11,4 +11,4 @@ function crypto_hash_sha256(data)
|
|
|
11
11
|
return crypto.createHash('sha256').update(data).digest();
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
module.exports = crypto_hash_sha256;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const assert = require('assert');
|
|
2
|
+
const crypto_hash_sha256 = require('./crypto_hash_sha256');
|
|
3
3
|
|
|
4
4
|
describe('crypto_hash_sha256', function () {
|
|
5
5
|
it('should handle basic input', function () {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const crypto = require('crypto');
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
*
|
|
@@ -12,4 +12,4 @@ function crypto_hmac_sha256(password, data)
|
|
|
12
12
|
return crypto.createHmac('sha256', password).update(data).digest();
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
module.exports = crypto_hmac_sha256;
|
package/src/fcmp_dates.js
CHANGED
package/src/fcmp_numbers.js
CHANGED
package/src/fcmp_strings.js
CHANGED
package/src/format_thousands.js
CHANGED
package/src/fs_append.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const util = require('util');
|
|
3
3
|
|
|
4
4
|
// https://nodejs.org/api/util.html#util_util_promisify_original
|
|
5
|
-
|
|
5
|
+
module.exports = util.promisify(fs.appendFile);
|
package/src/fs_append_json.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const fs_append = require('./fs_append');
|
|
2
|
+
const json_stringify_stable = require('./json_stringify_stable');
|
|
3
3
|
|
|
4
4
|
function fs_append_json(file, value)
|
|
5
5
|
{
|
|
6
6
|
return fs_append(file, json_stringify_stable(value) + '\n');
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
module.exports = fs_append_json;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const fs_fi = require('./fs_fi');
|
|
2
2
|
|
|
3
3
|
async function fs_assert_file_exists(file)
|
|
4
4
|
{
|
|
@@ -8,4 +8,4 @@ async function fs_assert_file_exists(file)
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
module.exports = fs_assert_file_exists;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const fs_fi = require('./fs_fi');
|
|
2
2
|
|
|
3
3
|
async function fs_assert_file_readable(file)
|
|
4
4
|
{
|
|
@@ -11,4 +11,4 @@ async function fs_assert_file_readable(file)
|
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
module.exports = fs_assert_file_readable;
|
package/src/fs_copy.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const util = require('util');
|
|
3
3
|
|
|
4
4
|
// https://nodejs.org/api/util.html#util_util_promisify_original
|
|
5
|
-
|
|
5
|
+
module.exports = util.promisify(fs.copyFile);
|
package/src/fs_exists.js
CHANGED
package/src/fs_fclose.js
CHANGED
package/src/fs_fi.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
const fs_lstat = require('./fs_lstat');
|
|
2
|
+
const fs_path_basename = require('./fs_path_basename');
|
|
3
|
+
const fs_path_dirname = require('./fs_path_dirname');
|
|
4
|
+
const fs_path_resolve = require('./fs_path_resolve');
|
|
5
|
+
const fs_readlink = require('./fs_readlink');
|
|
6
6
|
|
|
7
7
|
async function fs_fi(pathname)
|
|
8
8
|
{
|
|
@@ -52,4 +52,4 @@ function flags(fi)
|
|
|
52
52
|
tmp.forEach(key => fi.flags_map[key] = true);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
module.exports = fs_fi;
|
package/src/fs_find.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
const Promise = require('bluebird');
|
|
2
|
+
const fs_fi = require('./fs_fi');
|
|
3
|
+
const fs_path_resolve = require('./fs_path_resolve');
|
|
4
|
+
const fs_readdir = require('./fs_readdir');
|
|
5
5
|
|
|
6
6
|
async function fs_find(pathname = '.')
|
|
7
7
|
{
|
|
@@ -18,4 +18,4 @@ async function fs_find(pathname = '.')
|
|
|
18
18
|
return [fi];
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
module.exports = fs_find;
|
package/src/fs_fopen.js
CHANGED
package/src/fs_fopen_update.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const fs_fopen = require('./fs_fopen');
|
|
2
2
|
|
|
3
3
|
// Main use case is uploading files in chunks. Each time
|
|
4
4
|
// a chunk is uploaded do update a target file. At the end
|
|
@@ -31,4 +31,4 @@ async function fs_fopen_update(pathname)
|
|
|
31
31
|
return fs_fopen(pathname, 'r+');
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
module.exports = fs_fopen_update;
|
package/src/fs_fread.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const util = require('util');
|
|
3
3
|
|
|
4
4
|
// https://nodejs.org/api/util.html#util_util_promisify_original
|
|
5
5
|
const read = util.promisify(fs.read);
|
|
@@ -12,4 +12,4 @@ async function fs_fread(fp, buffer, offset = null)
|
|
|
12
12
|
return (bytesRead == buffer.length) ? buffer : buffer.slice(0, bytesRead);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
module.exports = fs_fread;
|
package/src/fs_fsize.js
CHANGED
package/src/fs_fstat.js
CHANGED
package/src/fs_fwrite.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const util = require('util');
|
|
3
3
|
|
|
4
4
|
// https://nodejs.org/api/util.html#util_util_promisify_original
|
|
5
5
|
const write = util.promisify(fs.write);
|
|
@@ -12,4 +12,4 @@ async function fs_fwrite(fp, buffer, offset = null)
|
|
|
12
12
|
return bytesWritten;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
module.exports = fs_fwrite;
|
package/src/fs_ls.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
const Promise = require('bluebird');
|
|
2
|
+
const fs_fi = require('./fs_fi');
|
|
3
|
+
const fs_path_join = require('./fs_path_join');
|
|
4
|
+
const fs_readdir = require('./fs_readdir');
|
|
5
5
|
|
|
6
6
|
async function fs_ls(pathname = '.')
|
|
7
7
|
{
|
|
@@ -13,4 +13,4 @@ async function fs_ls(pathname = '.')
|
|
|
13
13
|
return [fi];
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
module.exports = fs_ls;
|
package/src/fs_lsr.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
const Promise = require('bluebird');
|
|
2
|
+
const fs_fi = require('./fs_fi');
|
|
3
|
+
const fs_path_join = require('./fs_path_join');
|
|
4
|
+
const fs_readdir = require('./fs_readdir');
|
|
5
5
|
|
|
6
6
|
async function fs_lsr(pathname = '.')
|
|
7
7
|
{
|
|
@@ -23,4 +23,4 @@ async function fs_lsr(pathname = '.')
|
|
|
23
23
|
return ret;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
module.exports = fs_lsr;
|
package/src/fs_lstat.js
CHANGED
package/src/fs_mkdir.js
CHANGED