Skip to content

Commit 512241f

Browse files
committed
Minor improvements
1 parent 475ea1e commit 512241f

File tree

2 files changed

+49
-13
lines changed

2 files changed

+49
-13
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"name": "npm-ri",
44
"private": false,
55
"description": "npm install packages using regular expressions to update installed dependencies",
6-
"version": "0.0.4",
6+
"version": "0.0.5",
77
"author": "Danilo Britto",
88
"repository": {
99
"type": "git",

src/index.ts

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,69 @@ import { createRequire } from "node:module";
55
import { spawn } from "node:child_process";
66
import { program } from "commander";
77

8+
function printDependenciesToUpdate(
9+
title: string,
10+
dependenciesToUpdate: [string, { current: string; next: string }][]
11+
) {
12+
console.info(
13+
`${title}:\n${dependenciesToUpdate
14+
.map(
15+
([name, { current: currentVersion, next: nextVersion }]) =>
16+
`${name}@${currentVersion} -> ${name}@${nextVersion}`
17+
)
18+
.join("\n")}`
19+
);
20+
}
21+
822
function run(
923
dependencyNameRegex: RegExp,
10-
{ dependencyVersion, dryRun }: { dependencyVersion: string; dryRun: boolean }
24+
{
25+
dependencyVersion: nextDependencyVersion,
26+
dryRun,
27+
}: { dependencyVersion: string; dryRun: boolean }
1128
) {
1229
const require = createRequire(`${cwd()}/`);
1330
const pkg = require("./package.json");
1431

15-
const dependencies = Object.keys(pkg.dependencies || {})
16-
.concat(Object.keys(pkg.devDependencies || {}))
17-
.filter((dependency) => dependencyNameRegex.test(dependency))
18-
.map((dependency) => `${dependency}@${dependencyVersion}`);
32+
const dependenciesToUpdate = Object.entries(
33+
Object.assign({}, pkg.dependencies || {}, pkg.devDependencies || {})
34+
)
35+
.filter(([dependencyName]) => dependencyNameRegex.test(dependencyName))
36+
.map(
37+
([dependencyName, currentDependencyVersion]) =>
38+
[
39+
dependencyName,
40+
{
41+
current: currentDependencyVersion as string,
42+
next: nextDependencyVersion as string,
43+
},
44+
] as [string, { current: string; next: string }]
45+
);
1946

20-
if (dependencies.length > 0) {
47+
if (dependenciesToUpdate.length > 0) {
2148
if (dryRun) {
22-
console.info(
23-
`The next packages might be updated:\n${dependencies.join("\n")}`
49+
printDependenciesToUpdate(
50+
"The next packages might be updated",
51+
dependenciesToUpdate
2452
);
2553

2654
return;
2755
}
2856

29-
const npmInstall = spawn("npm", ["install"].concat(dependencies));
57+
const npmInstall = spawn(
58+
"npm",
59+
["install"].concat(
60+
dependenciesToUpdate.map(
61+
([name, { next: nextVersion }]) => `${name}@${nextVersion}`
62+
)
63+
)
64+
);
3065

3166
npmInstall.on("close", (code: number) => {
3267
if (code === 0) {
33-
console.info(
34-
`The next packages were updated:\n${dependencies.join("\n")}`
68+
printDependenciesToUpdate(
69+
"The next packages were updated",
70+
dependenciesToUpdate
3571
);
3672

3773
return;
@@ -53,7 +89,7 @@ program
5389
.description(
5490
"npm install using regular expressions to update installed dependencies"
5591
)
56-
.version("0.0.4");
92+
.version("0.0.5");
5793

5894
program
5995
.argument(

0 commit comments

Comments
 (0)