@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.
- package/README.md +6 -6
- package/index.js +29 -27
- package/lib-v4.js +158 -0
- 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.
|
|
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.
|
|
418
|
-
- https://www.unpkg.com/@e-mc/types@0.11.
|
|
419
|
-
- https://www.unpkg.com/@e-mc/types@0.11.
|
|
420
|
-
- https://www.unpkg.com/@e-mc/types@0.11.
|
|
421
|
-
- https://www.unpkg.com/@e-mc/types@0.11.
|
|
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.
|
|
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
|
-
|
|
1489
|
-
|
|
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
|
-
|
|
1499
|
-
|
|
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 (
|
|
1502
|
-
|
|
1503
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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",
|