node-confmanager 1.4.2 → 1.4.5
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/lib/main.js +28 -38
- package/package.json +11 -11
package/lib/main.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
const { dirname, join } = require("path");
|
|
7
7
|
|
|
8
8
|
// externals
|
|
9
|
-
const {
|
|
9
|
+
const { pathExists, mkdirp, readJson, unlink, writeJson } = require("fs-extra");
|
|
10
10
|
const Container = require("node-containerpattern");
|
|
11
11
|
|
|
12
12
|
// locals
|
|
@@ -55,45 +55,33 @@ module.exports = class ConfManager extends Container {
|
|
|
55
55
|
|
|
56
56
|
return Promise.resolve().then(() => {
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
(0, process).argv.slice(2, (0, process).argv.length).forEach((arg, i, args) => {
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
if (arg.startsWith("-")) {
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
const isShortcut = !arg.startsWith("--");
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
const argument = arg.slice(isShortcut ? 1 : 2, arg.length);
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
if (!isShortcut || this.shortcuts[argument]) {
|
|
67
67
|
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
if (!isShortcut || this.shortcuts[argument]) {
|
|
71
|
-
|
|
72
|
-
const key = isShortcut ? this.shortcuts[argument] : argument;
|
|
73
|
-
|
|
74
|
-
if (i + 1 < args.length && -1 >= args[i + 1].indexOf("--")) {
|
|
75
|
-
|
|
76
|
-
this.set(key, args[i + 1]);
|
|
77
|
-
++i;
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
else if (this.skeletons[key] && "boolean" === this.skeletons[key]) {
|
|
81
|
-
|
|
82
|
-
this.set(key, true);
|
|
83
|
-
++i;
|
|
84
|
-
|
|
85
|
-
}
|
|
68
|
+
const key = isShortcut ? this.shortcuts[argument] : argument;
|
|
86
69
|
|
|
70
|
+
if (i + 1 < args.length && -1 >= args[i + 1].indexOf("--")) {
|
|
71
|
+
this.set(key, args[i + 1]);
|
|
72
|
+
}
|
|
73
|
+
else if (this.skeletons[key] && "boolean" === this.skeletons[key]) {
|
|
74
|
+
this.set(key, true);
|
|
87
75
|
}
|
|
88
76
|
|
|
89
77
|
}
|
|
90
78
|
|
|
91
79
|
}
|
|
92
80
|
|
|
93
|
-
resolve();
|
|
94
|
-
|
|
95
81
|
});
|
|
96
82
|
|
|
83
|
+
return Promise.resolve();
|
|
84
|
+
|
|
97
85
|
});
|
|
98
86
|
|
|
99
87
|
}
|
|
@@ -119,11 +107,15 @@ module.exports = class ConfManager extends Container {
|
|
|
119
107
|
}
|
|
120
108
|
|
|
121
109
|
deleteFile () {
|
|
122
|
-
|
|
110
|
+
|
|
111
|
+
return !this.filePath ? Promise.resolve() : pathExists(this.filePath).then((exists) => {
|
|
112
|
+
return exists ? unlink(this.filePath) : Promise.resolve();
|
|
113
|
+
});
|
|
114
|
+
|
|
123
115
|
}
|
|
124
116
|
|
|
125
117
|
fileExists () {
|
|
126
|
-
return !this.filePath ? Promise.resolve(false) :
|
|
118
|
+
return !this.filePath ? Promise.resolve(false) : pathExists(this.filePath);
|
|
127
119
|
}
|
|
128
120
|
|
|
129
121
|
load () {
|
|
@@ -132,7 +124,7 @@ module.exports = class ConfManager extends Container {
|
|
|
132
124
|
|
|
133
125
|
return this.fileExists().then((exists) => {
|
|
134
126
|
|
|
135
|
-
return !exists ? this._loadFromConsole() :
|
|
127
|
+
return !exists ? this._loadFromConsole() : readJson(this.filePath, "utf8").then((data) => {
|
|
136
128
|
|
|
137
129
|
for (const key in data) {
|
|
138
130
|
this.set(key, data[key]);
|
|
@@ -148,21 +140,19 @@ module.exports = class ConfManager extends Container {
|
|
|
148
140
|
|
|
149
141
|
save () {
|
|
150
142
|
|
|
151
|
-
return !this.filePath ? Promise.resolve() :
|
|
143
|
+
return !this.filePath ? Promise.resolve() : mkdirp(dirname(this.filePath)).then(() => {
|
|
152
144
|
|
|
153
145
|
const objects = {};
|
|
154
146
|
this.forEach((value, key) => {
|
|
155
147
|
objects[key] = value;
|
|
156
148
|
});
|
|
157
149
|
|
|
158
|
-
return this.spaces ?
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
"encoding": "utf8"
|
|
165
|
-
});
|
|
150
|
+
return this.spaces ? writeJson(this.filePath, objects, {
|
|
151
|
+
"encoding": "utf8",
|
|
152
|
+
"space": 2
|
|
153
|
+
}) : writeJson(this.filePath, objects, {
|
|
154
|
+
"encoding": "utf8"
|
|
155
|
+
});
|
|
166
156
|
|
|
167
157
|
});
|
|
168
158
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-confmanager",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.5",
|
|
4
4
|
"description": "A configuration manager",
|
|
5
5
|
"main": "lib/main.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -45,18 +45,18 @@
|
|
|
45
45
|
"url": "https://github.com/Psychopoulet/node-confmanager/issues"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"node-containerpattern": "1.4.
|
|
49
|
-
"
|
|
48
|
+
"node-containerpattern": "1.4.3",
|
|
49
|
+
"fs-extra": "10.1.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@types/node": "
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
52
|
+
"@types/node": "17.0.35",
|
|
53
|
+
"check-version-modules": "1.3.5",
|
|
54
|
+
"coveralls": "3.1.1",
|
|
55
|
+
"eslint": "8.15.0",
|
|
56
|
+
"husky": "8.0.1",
|
|
57
|
+
"mocha": "10.0.0",
|
|
58
|
+
"nyc": "15.1.0",
|
|
59
|
+
"typescript": "4.6.4"
|
|
60
60
|
},
|
|
61
61
|
"homepage": "https://github.com/Psychopoulet/node-confmanager#readme",
|
|
62
62
|
"engines": {
|