@e-mc/module 0.11.9 → 0.11.10

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.
Files changed (4) hide show
  1. package/README.md +6 -6
  2. package/index.js +29 -27
  3. package/lib-v4.js +158 -0
  4. package/package.json +2 -2
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  ## Interface
11
11
 
12
- * [View Source](https://www.unpkg.com/@e-mc/types@0.11.9/lib/index.d.ts)
12
+ * [View Source](https://www.unpkg.com/@e-mc/types@0.11.10/lib/index.d.ts)
13
13
 
14
14
  ```typescript
15
15
  import type { LogStatus } from "./squared";
@@ -414,11 +414,11 @@ interface LoggerModule {
414
414
 
415
415
  ## References
416
416
 
417
- - https://www.unpkg.com/@e-mc/types@0.11.9/lib/core.d.ts
418
- - https://www.unpkg.com/@e-mc/types@0.11.9/lib/logger.d.ts
419
- - https://www.unpkg.com/@e-mc/types@0.11.9/lib/module.d.ts
420
- - https://www.unpkg.com/@e-mc/types@0.11.9/lib/node.d.ts
421
- - https://www.unpkg.com/@e-mc/types@0.11.9/lib/settings.d.ts
417
+ - https://www.unpkg.com/@e-mc/types@0.11.10/lib/core.d.ts
418
+ - https://www.unpkg.com/@e-mc/types@0.11.10/lib/logger.d.ts
419
+ - https://www.unpkg.com/@e-mc/types@0.11.10/lib/module.d.ts
420
+ - https://www.unpkg.com/@e-mc/types@0.11.10/lib/node.d.ts
421
+ - https://www.unpkg.com/@e-mc/types@0.11.10/lib/settings.d.ts
422
422
 
423
423
  * https://www.npmjs.com/package/@types/node
424
424
 
package/index.js CHANGED
@@ -983,7 +983,7 @@ class Module extends EventEmitter {
983
983
  this[_g] = null;
984
984
  }
985
985
  static get VERSION() {
986
- return "0.11.9";
986
+ return "0.11.10";
987
987
  }
988
988
  static get LOG_TYPE() {
989
989
  return types_1.LOG_TYPE;
@@ -1485,35 +1485,35 @@ class Module extends EventEmitter {
1485
1485
  return cacheKey ? crypto.randomUUID() : '';
1486
1486
  }
1487
1487
  static asHash(data, algorithm, digest) {
1488
- if (!algorithm && !digest) {
1489
- return crypto.createHash("sha256").update(data).digest("hex");
1490
- }
1491
- let options;
1492
- if ((0, types_1.isObject)(algorithm)) {
1493
- options = { ...algorithm };
1494
- if ('algorithm' in options) {
1495
- algorithm = options.algorithm;
1496
- delete options.algorithm;
1488
+ try {
1489
+ if (!algorithm && !digest) {
1490
+ return crypto.createHash("sha256").update(data).digest("hex");
1497
1491
  }
1498
- else {
1499
- algorithm = undefined;
1492
+ let options;
1493
+ if ((0, types_1.isObject)(algorithm)) {
1494
+ options = { ...algorithm };
1495
+ if ('algorithm' in options) {
1496
+ algorithm = options.algorithm;
1497
+ delete options.algorithm;
1498
+ }
1499
+ else {
1500
+ algorithm = undefined;
1501
+ }
1502
+ if ('digest' in options) {
1503
+ digest = options.digest;
1504
+ delete options.digest;
1505
+ }
1506
+ else {
1507
+ digest = undefined;
1508
+ }
1500
1509
  }
1501
- if ('digest' in options) {
1502
- digest = options.digest;
1503
- delete options.digest;
1510
+ else if ((0, types_1.isObject)(digest)) {
1511
+ options = digest;
1512
+ digest = undefined;
1504
1513
  }
1505
- else {
1514
+ else if (typeof digest !== 'string') {
1506
1515
  digest = undefined;
1507
1516
  }
1508
- }
1509
- else if ((0, types_1.isObject)(digest)) {
1510
- options = digest;
1511
- digest = undefined;
1512
- }
1513
- else if (typeof digest !== 'string') {
1514
- digest = undefined;
1515
- }
1516
- try {
1517
1517
  return crypto.createHash(algorithm || "sha256", options).update(data).digest(digest || "hex");
1518
1518
  }
1519
1519
  catch {
@@ -1707,11 +1707,13 @@ class Module extends EventEmitter {
1707
1707
  if (typeof values[values.length - 1] === 'boolean') {
1708
1708
  normalize = values.pop();
1709
1709
  }
1710
- const paths = values.map(item => typeof item === 'string' ? item.trim() : '').filter(item => item).map(value => this.toPosix(value, normalize));
1710
+ const paths = values.filter(item => (0, types_1.isString)(item)).map(value => this.toPosix(value, normalize));
1711
1711
  let result = paths[0] || '';
1712
1712
  for (let i = 1; i < paths.length; ++i) {
1713
1713
  const trailing = paths[i];
1714
- result += (!trailing.startsWith('/') && !result.endsWith('/') ? '/' : '') + trailing;
1714
+ if (trailing) {
1715
+ result += (!trailing.startsWith('/') && !result.endsWith('/') ? '/' : '') + trailing;
1716
+ }
1715
1717
  }
1716
1718
  return result;
1717
1719
  }
package/lib-v4.js ADDED
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ exports.validateUUID = exports.renameExt = exports.isString = exports.isPlainObject = exports.isObject = exports.formatSize = exports.escapePattern = exports.toTimeMs = exports.coerceObject = exports.cloneObject = exports.asFunction = void 0;
3
+ exports.hasSize = hasSize;
4
+ exports.getSize = getSize;
5
+ exports.hasSameStat = hasSameStat;
6
+ exports.byteLength = byteLength;
7
+ exports.cleanupStream = cleanupStream;
8
+ exports.generateUUID = generateUUID;
9
+ exports.existsSafe = existsSafe;
10
+ exports.isFileHTTP = isFileHTTP;
11
+ exports.isFileUNC = isFileUNC;
12
+ exports.isPathUNC = isPathUNC;
13
+ exports.readFileSafe = readFileSafe;
14
+ exports.getFunctions = getFunctions;
15
+ exports.allSettled = allSettled;
16
+ const path = require("path");
17
+ const fs = require("fs");
18
+ const types_1 = require("@e-mc/types");
19
+ Object.defineProperty(exports, "asFunction", { enumerable: true, get: function () { return types_1.asFunction; } });
20
+ Object.defineProperty(exports, "cloneObject", { enumerable: true, get: function () { return types_1.cloneObject; } });
21
+ Object.defineProperty(exports, "coerceObject", { enumerable: true, get: function () { return types_1.coerceObject; } });
22
+ Object.defineProperty(exports, "toTimeMs", { enumerable: true, get: function () { return types_1.convertTime; } });
23
+ Object.defineProperty(exports, "escapePattern", { enumerable: true, get: function () { return types_1.escapePattern; } });
24
+ Object.defineProperty(exports, "formatSize", { enumerable: true, get: function () { return types_1.formatSize; } });
25
+ Object.defineProperty(exports, "isObject", { enumerable: true, get: function () { return types_1.isObject; } });
26
+ Object.defineProperty(exports, "isPlainObject", { enumerable: true, get: function () { return types_1.isPlainObject; } });
27
+ Object.defineProperty(exports, "isString", { enumerable: true, get: function () { return types_1.isString; } });
28
+ Object.defineProperty(exports, "renameExt", { enumerable: true, get: function () { return types_1.renameExt; } });
29
+ Object.defineProperty(exports, "validateUUID", { enumerable: true, get: function () { return types_1.validateUUID; } });
30
+ const index_1 = require("@e-mc/module");
31
+ function hasSize(value, keepEmpty) {
32
+ try {
33
+ const statSrc = fs.statSync(value);
34
+ if (statSrc.size > 0) {
35
+ return true;
36
+ }
37
+ if (!keepEmpty) {
38
+ fs.unlinkSync(value);
39
+ }
40
+ }
41
+ catch {
42
+ }
43
+ return false;
44
+ }
45
+ function getSize(value, diskUsed) {
46
+ try {
47
+ return fs[diskUsed ? 'lstatSync' : 'statSync'](value).size;
48
+ }
49
+ catch {
50
+ return 0;
51
+ }
52
+ }
53
+ function hasSameStat(src, dest, keepEmpty) {
54
+ try {
55
+ if (fs.existsSync(dest)) {
56
+ const { size, mtimeMs } = fs.statSync(src);
57
+ if (size > 0) {
58
+ const statDest = fs.statSync(dest);
59
+ return size === statDest.size && mtimeMs === statDest.mtimeMs;
60
+ }
61
+ if (!keepEmpty) {
62
+ fs.unlinkSync(src);
63
+ }
64
+ }
65
+ }
66
+ catch {
67
+ }
68
+ return false;
69
+ }
70
+ function byteLength(value, encoding) {
71
+ return typeof value === 'string' && (path.isAbsolute(value) || index_1.isPath(value)) ? getSize(value) : Buffer.byteLength(value, encoding && (0, types_1.getEncoding)(encoding));
72
+ }
73
+ function cleanupStream(stream, uri) {
74
+ stream.removeAllListeners();
75
+ stream.destroy();
76
+ try {
77
+ if (uri && fs.existsSync(uri)) {
78
+ fs.unlinkSync(uri);
79
+ }
80
+ }
81
+ catch (err) {
82
+ if (!index_1.isErrorCode(err, 'ENOENT')) {
83
+ index_1.writeFail(["Unable to delete file", path.basename(uri)], err, 32);
84
+ }
85
+ }
86
+ }
87
+ function generateUUID(format, dictionary) {
88
+ return format ? (0, types_1.randomString)(format, dictionary) : (0, types_1.generateUUID)();
89
+ }
90
+ function existsSafe(value, isFile) {
91
+ return index_1.isPath(value, isFile);
92
+ }
93
+ function isFileHTTP(value) {
94
+ return index_1.isFile(value, 'http/s');
95
+ }
96
+ function isFileUNC(value) {
97
+ return index_1.isFile(value, 'unc');
98
+ }
99
+ function isPathUNC(value) {
100
+ return index_1.isPath(value, 'unc');
101
+ }
102
+ async function readFileSafe(value, encoding, cache) {
103
+ return encoding === 'buffer' ? index_1.readBuffer(value, cache) : index_1.readText(value, encoding, cache);
104
+ }
105
+ function getFunctions(values, absolute, sync = true, outFailed) {
106
+ let options, context;
107
+ if ((0, types_1.isObject)(absolute)) {
108
+ options = absolute;
109
+ ({ context, outFailed } = absolute);
110
+ if (options.external === undefined) {
111
+ options.external = true;
112
+ }
113
+ }
114
+ else {
115
+ options = { external: true, absolute, sync };
116
+ }
117
+ const result = [];
118
+ for (const value of values) {
119
+ let method = null;
120
+ if (typeof value === 'string') {
121
+ method = index_1.parseFunction(value, options);
122
+ }
123
+ else if (typeof value === 'function') {
124
+ method = value;
125
+ if (context !== undefined) {
126
+ method.bind(context);
127
+ }
128
+ }
129
+ if (method) {
130
+ result.push(method);
131
+ }
132
+ else if (outFailed) {
133
+ outFailed.push(index_1.asString(value) || "Unknown");
134
+ }
135
+ }
136
+ return result;
137
+ }
138
+ async function allSettled(tasks, rejected, options) {
139
+ if (rejected) {
140
+ return Promise.allSettled(tasks).then(result => {
141
+ const items = [];
142
+ for (const item of result) {
143
+ if (item.status === 'fulfilled') {
144
+ items.push(item);
145
+ }
146
+ else if (item.reason) {
147
+ index_1.writeFail(rejected, item.reason, options);
148
+ }
149
+ }
150
+ return items;
151
+ })
152
+ .catch((err) => {
153
+ index_1.writeFail(rejected, err, options);
154
+ return [];
155
+ });
156
+ }
157
+ return Promise.allSettled(tasks);
158
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@e-mc/module",
3
- "version": "0.11.9",
3
+ "version": "0.11.10",
4
4
  "description": "Module base class for E-mc.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -20,7 +20,7 @@
20
20
  "license": "BSD-3-Clause",
21
21
  "homepage": "https://github.com/anpham6/e-mc#readme",
22
22
  "dependencies": {
23
- "@e-mc/types": "0.11.9",
23
+ "@e-mc/types": "0.11.10",
24
24
  "chalk": "4.1.2",
25
25
  "file-type": "^18.7.0",
26
26
  "js-yaml": "^4.1.0",