@deot/dev-updater 2.2.1 → 2.3.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/dist/index.cjs.js +25 -13
- package/dist/index.es.js +25 -13
- package/package.json +2 -2
package/dist/index.cjs.js
CHANGED
|
@@ -54,13 +54,13 @@ class Update {
|
|
|
54
54
|
commandOptions;
|
|
55
55
|
constructor(commandOptions) {
|
|
56
56
|
const locals = devShared.Locals.impl();
|
|
57
|
-
const { packageDir } = locals;
|
|
57
|
+
const { rootPackageOptions, packageDir, cwd } = locals;
|
|
58
58
|
const packageOptionsMap = {
|
|
59
|
+
[cwd]: rootPackageOptions,
|
|
59
60
|
...Object.keys(locals.packageOptionsMap).reduce((result, key) => {
|
|
60
61
|
result[path__namespace.resolve(packageDir, key)] = locals.packageOptionsMap[key];
|
|
61
62
|
return result;
|
|
62
|
-
}, {})
|
|
63
|
-
[packageDir]: locals.packageOptions
|
|
63
|
+
}, {})
|
|
64
64
|
};
|
|
65
65
|
this.packageOptionsMap = packageOptionsMap;
|
|
66
66
|
this.commandOptions = commandOptions;
|
|
@@ -80,11 +80,16 @@ class Update {
|
|
|
80
80
|
});
|
|
81
81
|
});
|
|
82
82
|
await Promise.all(Object.keys(packageNames).map((packageName) => {
|
|
83
|
-
return new Promise((resolve) => {
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
return new Promise(async (resolve) => {
|
|
84
|
+
try {
|
|
85
|
+
const { stdout: stdout1 } = await devShared.Shell.exec("npm", ["view", packageName, "versions", "--json"]);
|
|
86
|
+
const { stdout: stdout2 } = await devShared.Shell.exec("npm", ["view", packageName, "version", "--json"]);
|
|
87
|
+
const versions = JSON.parse(stdout1);
|
|
88
|
+
const lastVersion = JSON.parse(stdout2);
|
|
89
|
+
const lastIndex = versions.indexOf(lastVersion);
|
|
90
|
+
const versions$ = versions.slice(0, lastIndex == -1 ? versions.length : lastIndex + 1);
|
|
86
91
|
Object.keys(packageNames[packageName]).forEach((version) => {
|
|
87
|
-
let newVersion = fitVersion(versions
|
|
92
|
+
let newVersion = fitVersion(versions$, version, commandOptions);
|
|
88
93
|
if (newVersion === version) {
|
|
89
94
|
delete packageNames[packageName][version];
|
|
90
95
|
} else {
|
|
@@ -95,16 +100,17 @@ class Update {
|
|
|
95
100
|
delete packageNames[packageName];
|
|
96
101
|
}
|
|
97
102
|
resolve();
|
|
98
|
-
}
|
|
103
|
+
} catch (e) {
|
|
99
104
|
delete packageNames[packageName];
|
|
100
105
|
resolve();
|
|
101
|
-
}
|
|
106
|
+
}
|
|
102
107
|
});
|
|
103
108
|
}));
|
|
104
109
|
return packageNames;
|
|
105
110
|
}
|
|
106
111
|
async updatePackageOptions(changed) {
|
|
107
112
|
const { packageOptionsMap, commandOptions } = this;
|
|
113
|
+
let packageFolderNames = [];
|
|
108
114
|
Object.keys(packageOptionsMap).forEach((packageDir) => {
|
|
109
115
|
const packageOptions = packageOptionsMap[packageDir];
|
|
110
116
|
const { devDependencies = {}, dependencies = {} } = packageOptions;
|
|
@@ -119,14 +125,19 @@ class Update {
|
|
|
119
125
|
});
|
|
120
126
|
});
|
|
121
127
|
if (isChanged) {
|
|
128
|
+
const locals = devShared.Locals.impl();
|
|
129
|
+
const { cwd } = locals;
|
|
130
|
+
if (packageDir !== cwd) {
|
|
131
|
+
packageFolderNames.push(packageDir.split("/").pop());
|
|
132
|
+
}
|
|
122
133
|
if (commandOptions.dryRun) {
|
|
123
|
-
|
|
124
|
-
devShared.Logger.log(chalk.magenta(`CHANGED: `) + chalk.yellow(`Skipping ${path__namespace.relative(locals.cwd, packageDir)} Update`));
|
|
134
|
+
devShared.Logger.log(chalk.magenta(`CHANGED: `) + chalk.yellow(`Skipping ${path__namespace.relative(cwd, packageDir)} Update`));
|
|
125
135
|
} else {
|
|
126
136
|
fs.outputFileSync(`${packageDir}/package.json`, JSON.stringify(packageOptions, null, 2));
|
|
127
137
|
}
|
|
128
138
|
}
|
|
129
139
|
});
|
|
140
|
+
return packageFolderNames;
|
|
130
141
|
}
|
|
131
142
|
async updateLock() {
|
|
132
143
|
if (this.commandOptions.dryRun) {
|
|
@@ -182,7 +193,7 @@ ${message}`);
|
|
|
182
193
|
spinner.start();
|
|
183
194
|
let changed = await this.getPackageChanged();
|
|
184
195
|
spinner.stop();
|
|
185
|
-
let message = `
|
|
196
|
+
let message = `deps updated
|
|
186
197
|
|
|
187
198
|
`;
|
|
188
199
|
let keys = Object.keys(changed);
|
|
@@ -198,7 +209,8 @@ ${message}`);
|
|
|
198
209
|
devShared.Logger.log(`${chalk.cyan(key)}: ${chalk.yellow(version)} -> ${chalk.green(changed[key][version])}`);
|
|
199
210
|
});
|
|
200
211
|
});
|
|
201
|
-
await this.updatePackageOptions(changed);
|
|
212
|
+
const packageFolderNames = await this.updatePackageOptions(changed);
|
|
213
|
+
message = `chore${packageFolderNames.length ? "(" : ""}${packageFolderNames.join(",")}${packageFolderNames.length ? ")" : ""}: ${message}`;
|
|
202
214
|
await this.updateLock();
|
|
203
215
|
await this.test();
|
|
204
216
|
await this.commit(message);
|
package/dist/index.es.js
CHANGED
|
@@ -31,13 +31,13 @@ class Update {
|
|
|
31
31
|
commandOptions;
|
|
32
32
|
constructor(commandOptions) {
|
|
33
33
|
const locals = Locals.impl();
|
|
34
|
-
const { packageDir } = locals;
|
|
34
|
+
const { rootPackageOptions, packageDir, cwd } = locals;
|
|
35
35
|
const packageOptionsMap = {
|
|
36
|
+
[cwd]: rootPackageOptions,
|
|
36
37
|
...Object.keys(locals.packageOptionsMap).reduce((result, key) => {
|
|
37
38
|
result[path.resolve(packageDir, key)] = locals.packageOptionsMap[key];
|
|
38
39
|
return result;
|
|
39
|
-
}, {})
|
|
40
|
-
[packageDir]: locals.packageOptions
|
|
40
|
+
}, {})
|
|
41
41
|
};
|
|
42
42
|
this.packageOptionsMap = packageOptionsMap;
|
|
43
43
|
this.commandOptions = commandOptions;
|
|
@@ -57,11 +57,16 @@ class Update {
|
|
|
57
57
|
});
|
|
58
58
|
});
|
|
59
59
|
await Promise.all(Object.keys(packageNames).map((packageName) => {
|
|
60
|
-
return new Promise((resolve) => {
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
return new Promise(async (resolve) => {
|
|
61
|
+
try {
|
|
62
|
+
const { stdout: stdout1 } = await Shell.exec("npm", ["view", packageName, "versions", "--json"]);
|
|
63
|
+
const { stdout: stdout2 } = await Shell.exec("npm", ["view", packageName, "version", "--json"]);
|
|
64
|
+
const versions = JSON.parse(stdout1);
|
|
65
|
+
const lastVersion = JSON.parse(stdout2);
|
|
66
|
+
const lastIndex = versions.indexOf(lastVersion);
|
|
67
|
+
const versions$ = versions.slice(0, lastIndex == -1 ? versions.length : lastIndex + 1);
|
|
63
68
|
Object.keys(packageNames[packageName]).forEach((version) => {
|
|
64
|
-
let newVersion = fitVersion(versions
|
|
69
|
+
let newVersion = fitVersion(versions$, version, commandOptions);
|
|
65
70
|
if (newVersion === version) {
|
|
66
71
|
delete packageNames[packageName][version];
|
|
67
72
|
} else {
|
|
@@ -72,16 +77,17 @@ class Update {
|
|
|
72
77
|
delete packageNames[packageName];
|
|
73
78
|
}
|
|
74
79
|
resolve();
|
|
75
|
-
}
|
|
80
|
+
} catch (e) {
|
|
76
81
|
delete packageNames[packageName];
|
|
77
82
|
resolve();
|
|
78
|
-
}
|
|
83
|
+
}
|
|
79
84
|
});
|
|
80
85
|
}));
|
|
81
86
|
return packageNames;
|
|
82
87
|
}
|
|
83
88
|
async updatePackageOptions(changed) {
|
|
84
89
|
const { packageOptionsMap, commandOptions } = this;
|
|
90
|
+
let packageFolderNames = [];
|
|
85
91
|
Object.keys(packageOptionsMap).forEach((packageDir) => {
|
|
86
92
|
const packageOptions = packageOptionsMap[packageDir];
|
|
87
93
|
const { devDependencies = {}, dependencies = {} } = packageOptions;
|
|
@@ -96,14 +102,19 @@ class Update {
|
|
|
96
102
|
});
|
|
97
103
|
});
|
|
98
104
|
if (isChanged) {
|
|
105
|
+
const locals = Locals.impl();
|
|
106
|
+
const { cwd } = locals;
|
|
107
|
+
if (packageDir !== cwd) {
|
|
108
|
+
packageFolderNames.push(packageDir.split("/").pop());
|
|
109
|
+
}
|
|
99
110
|
if (commandOptions.dryRun) {
|
|
100
|
-
|
|
101
|
-
Logger.log(chalk.magenta(`CHANGED: `) + chalk.yellow(`Skipping ${path.relative(locals.cwd, packageDir)} Update`));
|
|
111
|
+
Logger.log(chalk.magenta(`CHANGED: `) + chalk.yellow(`Skipping ${path.relative(cwd, packageDir)} Update`));
|
|
102
112
|
} else {
|
|
103
113
|
fs.outputFileSync(`${packageDir}/package.json`, JSON.stringify(packageOptions, null, 2));
|
|
104
114
|
}
|
|
105
115
|
}
|
|
106
116
|
});
|
|
117
|
+
return packageFolderNames;
|
|
107
118
|
}
|
|
108
119
|
async updateLock() {
|
|
109
120
|
if (this.commandOptions.dryRun) {
|
|
@@ -159,7 +170,7 @@ ${message}`);
|
|
|
159
170
|
spinner.start();
|
|
160
171
|
let changed = await this.getPackageChanged();
|
|
161
172
|
spinner.stop();
|
|
162
|
-
let message = `
|
|
173
|
+
let message = `deps updated
|
|
163
174
|
|
|
164
175
|
`;
|
|
165
176
|
let keys = Object.keys(changed);
|
|
@@ -175,7 +186,8 @@ ${message}`);
|
|
|
175
186
|
Logger.log(`${chalk.cyan(key)}: ${chalk.yellow(version)} -> ${chalk.green(changed[key][version])}`);
|
|
176
187
|
});
|
|
177
188
|
});
|
|
178
|
-
await this.updatePackageOptions(changed);
|
|
189
|
+
const packageFolderNames = await this.updatePackageOptions(changed);
|
|
190
|
+
message = `chore${packageFolderNames.length ? "(" : ""}${packageFolderNames.join(",")}${packageFolderNames.length ? ")" : ""}: ${message}`;
|
|
179
191
|
await this.updateLock();
|
|
180
192
|
await this.test();
|
|
181
193
|
await this.commit(message);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deot/dev-updater",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"main": "dist/index.es.js",
|
|
5
5
|
"module": "dist/index.es.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"access": "public"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@deot/dev-shared": "^2.
|
|
16
|
+
"@deot/dev-shared": "^2.3.0",
|
|
17
17
|
"chalk": "^5.3.0",
|
|
18
18
|
"fs-extra": "^11.1.1",
|
|
19
19
|
"ora": "^6.3.1",
|