forked from DuCanhGH/next-pwa
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathncu.js
49 lines (46 loc) · 1.11 KB
/
ncu.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// @ts-check
import fg from "fast-glob";
import ncu from "npm-check-updates";
/**
* @type {import("npm-check-updates").default}
*/
// @ts-expect-error Wrong type provided by npm-check-updates.
const run = ncu.run;
/**
* Update and then log updated dependencies.
*
* @param {import("npm-check-updates").RunOptions} runOptions
*/
const updateAndLog = async (runOptions) => {
const upgraded = await run(runOptions);
console.log(
`Upgraded dependencies for ${runOptions.packageFile ?? "./package.json"}:`,
upgraded
);
};
await Promise.all([
(
await fg("./**/package.json", {
ignore: ["examples/**", "**/node_modules/**"],
})
).map(
async (packageFile) =>
await updateAndLog({
packageFile,
upgrade: true,
target: (dependencyName) => {
if (dependencyName === "typescript") {
return "@next";
}
if (/^react(-dom)?$/.test(dependencyName)) {
return "@latest";
}
return "latest";
},
})
),
await updateAndLog({
packageFile: "examples/*/package.json",
upgrade: true,
}),
]);