npm-update-package 0.48.4 → 0.50.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/README.md +22 -4
- package/dist/package.json +4 -4
- package/dist/src/core/OutdatedPackageProcessor.js +2 -1
- package/dist/src/github/label/creator/LabelCreator.js +1 -0
- package/dist/src/github/pull-request/creator/PullRequestBodyCreator.js +27 -89
- package/dist/src/github/pull-request/creator/createFooter.js +11 -0
- package/dist/src/github/pull-request/creator/createMetadataSection.js +25 -0
- package/dist/src/github/pull-request/creator/createNotesSection.js +9 -0
- package/dist/src/github/pull-request/creator/createOutdatedPackagesTable.js +17 -0
- package/dist/src/github/pull-request/creator/createPackageDiffsSection.js +21 -0
- package/dist/src/github/pull-request/creator/createReleaseNotesSection.js +14 -0
- package/dist/src/github/pull-request/creator/optimizeGitHubUrl.js +2 -2
- package/dist/src/github/releases/fetcher/ReleasesFetcher.js +12 -8
- package/dist/src/main.js +6 -3
- package/dist/src/ncu/Ncu.js +1 -1
- package/dist/src/options/OptionType.js +1 -0
- package/dist/src/options/Options.js +1 -0
- package/dist/src/options/cliOptions.js +7 -0
- package/dist/src/options/createOptions.js +1 -1
- package/dist/src/options/toCommanderOption.js +7 -2
- package/dist/src/terminal/Terminal.js +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -60,7 +60,25 @@ Commit message template.
|
|
|
60
60
|
```sh
|
|
61
61
|
npx npm-update-package \
|
|
62
62
|
--github-token $GITHUB_TOKEN \
|
|
63
|
-
--commit-message "chore(
|
|
63
|
+
--commit-message "chore({{{dependencyType}}}): {{{level}}} update {{{packageName}}} from {{{currentVersion}}} to v{{{newVersion}}}"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### `--fetch-sleep-time`
|
|
67
|
+
|
|
68
|
+
Sleep time between fetching (ms).
|
|
69
|
+
|
|
70
|
+
|Name|Value|
|
|
71
|
+
|---|---|
|
|
72
|
+
|type|number|
|
|
73
|
+
|required|false|
|
|
74
|
+
|default|`1000`|
|
|
75
|
+
|
|
76
|
+
#### Example
|
|
77
|
+
|
|
78
|
+
```sh
|
|
79
|
+
npx npm-update-package \
|
|
80
|
+
--github-token $GITHUB_TOKEN \
|
|
81
|
+
--fetch-sleep-time 2000
|
|
64
82
|
```
|
|
65
83
|
|
|
66
84
|
### `--github-token`
|
|
@@ -116,7 +134,7 @@ Log level to show.
|
|
|
116
134
|
```sh
|
|
117
135
|
npx npm-update-package \
|
|
118
136
|
--github-token $GITHUB_TOKEN \
|
|
119
|
-
--log-level
|
|
137
|
+
--log-level debug
|
|
120
138
|
```
|
|
121
139
|
|
|
122
140
|
### `--package-manager`
|
|
@@ -141,7 +159,7 @@ Package manager of your project.
|
|
|
141
159
|
```sh
|
|
142
160
|
npx npm-update-package \
|
|
143
161
|
--github-token $GITHUB_TOKEN \
|
|
144
|
-
--package-manager
|
|
162
|
+
--package-manager yarn
|
|
145
163
|
```
|
|
146
164
|
|
|
147
165
|
### `--pr-body-notes`
|
|
@@ -186,7 +204,7 @@ Pull request title template.
|
|
|
186
204
|
```sh
|
|
187
205
|
npx npm-update-package \
|
|
188
206
|
--github-token $GITHUB_TOKEN \
|
|
189
|
-
--pr-title "chore(
|
|
207
|
+
--pr-title "chore({{{dependencyType}}}): {{{level}}} update {{{packageName}}} from {{{currentVersion}}} to v{{{newVersion}}}"
|
|
190
208
|
```
|
|
191
209
|
|
|
192
210
|
### `--reviewers`
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "npm-update-package",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.50.0",
|
|
4
4
|
"description": "CLI tool for creating pull requests to update npm packages",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc --project tsconfig.build.json",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@types/parse-github-url": "1.0.0",
|
|
42
42
|
"@types/semver": "7.3.9",
|
|
43
43
|
"@typescript-eslint/eslint-plugin": "5.16.0",
|
|
44
|
-
"eslint": "8.
|
|
44
|
+
"eslint": "8.12.0",
|
|
45
45
|
"eslint-config-standard-with-typescript": "21.0.1",
|
|
46
46
|
"eslint-plugin-import": "2.25.4",
|
|
47
47
|
"eslint-plugin-jest": "26.1.3",
|
|
@@ -53,9 +53,9 @@
|
|
|
53
53
|
"lint-staged": "12.3.7",
|
|
54
54
|
"npm-run-all": "4.1.5",
|
|
55
55
|
"rimraf": "3.0.2",
|
|
56
|
-
"ts-jest": "27.1.
|
|
56
|
+
"ts-jest": "27.1.4",
|
|
57
57
|
"ts-node": "10.7.0",
|
|
58
|
-
"typescript": "4.6.
|
|
58
|
+
"typescript": "4.6.3",
|
|
59
59
|
"utility-types": "3.10.0"
|
|
60
60
|
},
|
|
61
61
|
"repository": {
|
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.OutdatedPackageProcessor = void 0;
|
|
4
4
|
const Either_1 = require("fp-ts/lib/Either");
|
|
5
5
|
const git_1 = require("../git");
|
|
6
|
-
// TODO:
|
|
6
|
+
// TODO: Add test
|
|
7
|
+
// TODO: Split into multiple classes and functions
|
|
7
8
|
class OutdatedPackageProcessor {
|
|
8
9
|
constructor({ git, packageManager, pullRequestCreator, branchFinder, logger, commitMessageCreator, pullRequestFinder, pullRequestsCloser, packageUpdater }) {
|
|
9
10
|
this.git = git;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LabelCreator = void 0;
|
|
4
4
|
const errors_1 = require("../../errors");
|
|
5
|
+
// TODO: Split into multiple classes and functions
|
|
5
6
|
class LabelCreator {
|
|
6
7
|
constructor({ github, gitRepo, logger }) {
|
|
7
8
|
this.github = github;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.PullRequestBodyCreator = void 0;
|
|
7
|
-
const package_json_1 = __importDefault(require("../../../../package.json"));
|
|
8
4
|
const file_1 = require("../../../file");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
5
|
+
const package_json_1 = require("../../../package-json");
|
|
6
|
+
const createFooter_1 = require("./createFooter");
|
|
7
|
+
const createMetadataSection_1 = require("./createMetadataSection");
|
|
8
|
+
const createNotesSection_1 = require("./createNotesSection");
|
|
9
|
+
const createOutdatedPackagesTable_1 = require("./createOutdatedPackagesTable");
|
|
10
|
+
const createPackageDiffsSection_1 = require("./createPackageDiffsSection");
|
|
11
|
+
const createReleaseNotesSection_1 = require("./createReleaseNotesSection");
|
|
12
|
+
// TODO: Split into multiple classes and functions
|
|
13
13
|
class PullRequestBodyCreator {
|
|
14
14
|
constructor({ options, releasesFetcher }) {
|
|
15
15
|
this.options = options;
|
|
@@ -17,102 +17,40 @@ class PullRequestBodyCreator {
|
|
|
17
17
|
}
|
|
18
18
|
async create(outdatedPackage) {
|
|
19
19
|
const sections = [];
|
|
20
|
-
const outdatedPackagesTable =
|
|
20
|
+
const outdatedPackagesTable = (0, createOutdatedPackagesTable_1.createOutdatedPackagesTable)(outdatedPackage);
|
|
21
21
|
sections.push(`This PR updates these packages:\n\n${outdatedPackagesTable}`);
|
|
22
|
-
const diffSection = this.createDiffSection(outdatedPackage);
|
|
23
|
-
sections.push(diffSection);
|
|
24
22
|
const gitRepo = await this.extractRepository(outdatedPackage);
|
|
23
|
+
const diffSection = (0, createPackageDiffsSection_1.createPackageDiffsSection)({
|
|
24
|
+
outdatedPackage,
|
|
25
|
+
gitRepo
|
|
26
|
+
});
|
|
27
|
+
sections.push(diffSection);
|
|
25
28
|
if ((gitRepo === null || gitRepo === void 0 ? void 0 : gitRepo.isGitHub) === true) {
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
const releases = await this.releasesFetcher.fetch({
|
|
30
|
+
gitRepo,
|
|
31
|
+
packageName: outdatedPackage.name,
|
|
32
|
+
from: outdatedPackage.currentVersion,
|
|
33
|
+
to: outdatedPackage.newVersion
|
|
29
34
|
});
|
|
30
|
-
if (
|
|
35
|
+
if (releases.length > 0) {
|
|
36
|
+
const releaseNotesSection = (0, createReleaseNotesSection_1.createReleaseNotesSection)(releases);
|
|
31
37
|
sections.push(releaseNotesSection);
|
|
32
38
|
}
|
|
33
39
|
}
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
if (this.options.prBodyNotes !== undefined) {
|
|
41
|
+
const notesSection = (0, createNotesSection_1.createNotesSection)(this.options.prBodyNotes);
|
|
36
42
|
sections.push(notesSection);
|
|
37
43
|
}
|
|
38
|
-
const metadataSection =
|
|
44
|
+
const metadataSection = (0, createMetadataSection_1.createMetadataSection)(outdatedPackage);
|
|
39
45
|
sections.push(`---\n${metadataSection}`);
|
|
40
|
-
const footer =
|
|
46
|
+
const footer = (0, createFooter_1.createFooter)();
|
|
41
47
|
sections.push(`---\n${footer}`);
|
|
42
48
|
return sections.join('\n\n');
|
|
43
49
|
}
|
|
44
|
-
createDiffSection(outdatedPackage) {
|
|
45
|
-
const packageName = outdatedPackage.name;
|
|
46
|
-
const currentVersion = outdatedPackage.currentVersion.version;
|
|
47
|
-
const newVersion = outdatedPackage.newVersion.version;
|
|
48
|
-
return `## Package diffs
|
|
49
|
-
|
|
50
|
-
- [npmfs](https://npmfs.com/compare/${packageName}/${currentVersion}/${newVersion})
|
|
51
|
-
- [Renovate Bot Package Diff](https://renovatebot.com/diffs/npm/${packageName}/${currentVersion}/${newVersion})`;
|
|
52
|
-
}
|
|
53
|
-
createFooter() {
|
|
54
|
-
return `This PR has been generated by [${package_json_1.default.name}](${package_json_1.default.homepage}) v${package_json_1.default.version}`;
|
|
55
|
-
}
|
|
56
|
-
createOutdatedPackagesTable(outdatedPackage) {
|
|
57
|
-
const packageName = outdatedPackage.name;
|
|
58
|
-
const packageLink = `[${packageName}](https://www.npmjs.com/package/${packageName})`;
|
|
59
|
-
const dependencyType = outdatedPackage.dependencyType;
|
|
60
|
-
const level = outdatedPackage.level;
|
|
61
|
-
const currentVersion = outdatedPackage.currentVersion.version;
|
|
62
|
-
const currentVersionLink = `[\`${currentVersion}\`](https://www.npmjs.com/package/${packageName}/v/${currentVersion})`;
|
|
63
|
-
const newVersion = outdatedPackage.newVersion.version;
|
|
64
|
-
const newVersionLink = `[\`${newVersion}\`](https://www.npmjs.com/package/${packageName}/v/${newVersion})`;
|
|
65
|
-
return `|Package|Dependency type|Level|Current version|New version|
|
|
66
|
-
|---|---|---|---|---|
|
|
67
|
-
|${packageLink}|${dependencyType}|${level}|${currentVersionLink}|${newVersionLink}|`;
|
|
68
|
-
}
|
|
69
|
-
createNotesSection() {
|
|
70
|
-
if (this.options.prBodyNotes === undefined) {
|
|
71
|
-
return undefined;
|
|
72
|
-
}
|
|
73
|
-
return `## Notes
|
|
74
|
-
|
|
75
|
-
${this.options.prBodyNotes}`;
|
|
76
|
-
}
|
|
77
|
-
async createReleaseNotesSection({ outdatedPackage, gitRepo }) {
|
|
78
|
-
const releases = await this.releasesFetcher.fetch({
|
|
79
|
-
gitRepo,
|
|
80
|
-
packageName: outdatedPackage.name,
|
|
81
|
-
from: outdatedPackage.currentVersion,
|
|
82
|
-
to: outdatedPackage.newVersion
|
|
83
|
-
});
|
|
84
|
-
if (releases.length === 0) {
|
|
85
|
-
return undefined;
|
|
86
|
-
}
|
|
87
|
-
const items = releases.map(({ tag, url }) => {
|
|
88
|
-
const optimizedUrl = (0, optimizeGitHubUrl_1.optimizeGitHubUrl)(url);
|
|
89
|
-
return `- [${tag}](${optimizedUrl})`;
|
|
90
|
-
});
|
|
91
|
-
return `## Release notes
|
|
92
|
-
|
|
93
|
-
${items.join('\n')}`;
|
|
94
|
-
}
|
|
95
50
|
async extractRepository(outdatedPackage) {
|
|
96
51
|
const packageJson = await (0, file_1.readFile)(`node_modules/${outdatedPackage.name}/package.json`);
|
|
97
|
-
const pkg = (0,
|
|
98
|
-
return (0,
|
|
99
|
-
}
|
|
100
|
-
createMetadataSection(outdatedPackage) {
|
|
101
|
-
const metadata = (0, metadata_1.createPullRequestMetadata)([outdatedPackage]);
|
|
102
|
-
const json = (0, json_1.toJSON)(metadata, { pretty: true });
|
|
103
|
-
return `<details>
|
|
104
|
-
<summary>Metadata</summary>
|
|
105
|
-
|
|
106
|
-
**Don't remove or edit this section because it will be used by npm-update-package.**
|
|
107
|
-
|
|
108
|
-
<div id="npm-update-package-metadata">
|
|
109
|
-
|
|
110
|
-
\`\`\`json
|
|
111
|
-
${json}
|
|
112
|
-
\`\`\`
|
|
113
|
-
|
|
114
|
-
</div>
|
|
115
|
-
</details>`;
|
|
52
|
+
const pkg = (0, package_json_1.parsePackageJson)(packageJson);
|
|
53
|
+
return (0, package_json_1.extractRepository)(pkg);
|
|
116
54
|
}
|
|
117
55
|
}
|
|
118
56
|
exports.PullRequestBodyCreator = PullRequestBodyCreator;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createFooter = void 0;
|
|
7
|
+
const package_json_1 = __importDefault(require("../../../../package.json"));
|
|
8
|
+
const createFooter = () => {
|
|
9
|
+
return `This PR has been generated by [${package_json_1.default.name}](${package_json_1.default.homepage}) v${package_json_1.default.version}`;
|
|
10
|
+
};
|
|
11
|
+
exports.createFooter = createFooter;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createMetadataSection = void 0;
|
|
4
|
+
const json_1 = require("../../../json");
|
|
5
|
+
const metadata_1 = require("../metadata");
|
|
6
|
+
const createMetadataSection = (outdatedPackage) => {
|
|
7
|
+
const metadata = (0, metadata_1.createPullRequestMetadata)([outdatedPackage]);
|
|
8
|
+
const json = (0, json_1.toJSON)(metadata, {
|
|
9
|
+
pretty: true
|
|
10
|
+
});
|
|
11
|
+
return `<details>
|
|
12
|
+
<summary>Metadata</summary>
|
|
13
|
+
|
|
14
|
+
**Don't remove or edit this section because it will be used by npm-update-package.**
|
|
15
|
+
|
|
16
|
+
<div id="npm-update-package-metadata">
|
|
17
|
+
|
|
18
|
+
\`\`\`json
|
|
19
|
+
${json}
|
|
20
|
+
\`\`\`
|
|
21
|
+
|
|
22
|
+
</div>
|
|
23
|
+
</details>`;
|
|
24
|
+
};
|
|
25
|
+
exports.createMetadataSection = createMetadataSection;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createOutdatedPackagesTable = void 0;
|
|
4
|
+
const createOutdatedPackagesTable = (outdatedPackage) => {
|
|
5
|
+
const packageName = outdatedPackage.name;
|
|
6
|
+
const packageLink = `[${packageName}](https://www.npmjs.com/package/${packageName})`;
|
|
7
|
+
const dependencyType = outdatedPackage.dependencyType;
|
|
8
|
+
const level = outdatedPackage.level;
|
|
9
|
+
const currentVersion = outdatedPackage.currentVersion.version;
|
|
10
|
+
const currentVersionLink = `[\`${currentVersion}\`](https://www.npmjs.com/package/${packageName}/v/${currentVersion})`;
|
|
11
|
+
const newVersion = outdatedPackage.newVersion.version;
|
|
12
|
+
const newVersionLink = `[\`${newVersion}\`](https://www.npmjs.com/package/${packageName}/v/${newVersion})`;
|
|
13
|
+
return `|Package|Dependency type|Level|Current version|New version|
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
|${packageLink}|${dependencyType}|${level}|${currentVersionLink}|${newVersionLink}|`;
|
|
16
|
+
};
|
|
17
|
+
exports.createOutdatedPackagesTable = createOutdatedPackagesTable;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPackageDiffsSection = void 0;
|
|
4
|
+
const optimizeGitHubUrl_1 = require("./optimizeGitHubUrl");
|
|
5
|
+
const createPackageDiffsSection = ({ outdatedPackage, gitRepo }) => {
|
|
6
|
+
const packageName = outdatedPackage.name;
|
|
7
|
+
const currentVersion = outdatedPackage.currentVersion.version;
|
|
8
|
+
const newVersion = outdatedPackage.newVersion.version;
|
|
9
|
+
const links = [];
|
|
10
|
+
if ((gitRepo === null || gitRepo === void 0 ? void 0 : gitRepo.isGitHub) === true) {
|
|
11
|
+
const url = `${gitRepo.url.toString()}/compare/v${currentVersion}...v${newVersion}`;
|
|
12
|
+
const optimizedUrl = (0, optimizeGitHubUrl_1.optimizeGitHubUrl)(url).toString();
|
|
13
|
+
links.push(`- [GitHub](${optimizedUrl})`);
|
|
14
|
+
}
|
|
15
|
+
links.push(`- [npmfs](https://npmfs.com/compare/${packageName}/${currentVersion}/${newVersion})`);
|
|
16
|
+
links.push(`- [Renovate Bot Package Diff](https://renovatebot.com/diffs/npm/${packageName}/${currentVersion}/${newVersion})`);
|
|
17
|
+
return `## Package diffs
|
|
18
|
+
|
|
19
|
+
${links.join('\n')}`;
|
|
20
|
+
};
|
|
21
|
+
exports.createPackageDiffsSection = createPackageDiffsSection;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createReleaseNotesSection = void 0;
|
|
4
|
+
const optimizeGitHubUrl_1 = require("./optimizeGitHubUrl");
|
|
5
|
+
const createReleaseNotesSection = (releases) => {
|
|
6
|
+
const items = releases.map(({ tag, url }) => {
|
|
7
|
+
const optimizedUrl = (0, optimizeGitHubUrl_1.optimizeGitHubUrl)(url).toString();
|
|
8
|
+
return `- [${tag}](${optimizedUrl})`;
|
|
9
|
+
});
|
|
10
|
+
return `## Release notes
|
|
11
|
+
|
|
12
|
+
${items.join('\n')}`;
|
|
13
|
+
};
|
|
14
|
+
exports.createReleaseNotesSection = createReleaseNotesSection;
|
|
@@ -6,10 +6,10 @@ const url_1 = require("url");
|
|
|
6
6
|
* Convert URL to prevent linking to other repositories.
|
|
7
7
|
*/
|
|
8
8
|
const optimizeGitHubUrl = (url) => {
|
|
9
|
-
const newUrl = new url_1.URL(url);
|
|
9
|
+
const newUrl = url instanceof url_1.URL ? url : new url_1.URL(url);
|
|
10
10
|
if (newUrl.host === 'github.com') {
|
|
11
11
|
newUrl.host = 'togithub.com';
|
|
12
12
|
}
|
|
13
|
-
return newUrl
|
|
13
|
+
return newUrl;
|
|
14
14
|
};
|
|
15
15
|
exports.optimizeGitHubUrl = optimizeGitHubUrl;
|
|
@@ -7,9 +7,10 @@ exports.ReleasesFetcher = void 0;
|
|
|
7
7
|
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
8
8
|
const semver_1 = require("semver");
|
|
9
9
|
const sleep_promise_1 = __importDefault(require("sleep-promise"));
|
|
10
|
-
|
|
10
|
+
// TODO: Split into multiple classes and functions
|
|
11
11
|
class ReleasesFetcher {
|
|
12
|
-
constructor({ packageManager }) {
|
|
12
|
+
constructor({ options, packageManager }) {
|
|
13
|
+
this.options = options;
|
|
13
14
|
this.packageManager = packageManager;
|
|
14
15
|
}
|
|
15
16
|
async fetch({ gitRepo, packageName, from, to }) {
|
|
@@ -35,17 +36,20 @@ class ReleasesFetcher {
|
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
38
|
async fetchReleasesByTags({ gitRepo, tags }) {
|
|
38
|
-
const releases =
|
|
39
|
+
const releases = [];
|
|
40
|
+
for (const [i, tag] of tags.entries()) {
|
|
39
41
|
if (i > 0) {
|
|
40
|
-
|
|
41
|
-
await (0, sleep_promise_1.default)(1000);
|
|
42
|
+
await (0, sleep_promise_1.default)(this.options.fetchSleepTime);
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
+
const release = await this.fetchReleaseByTag({
|
|
44
45
|
gitRepo,
|
|
45
46
|
tag
|
|
46
47
|
});
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
if (release !== undefined) {
|
|
49
|
+
releases.push(release);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return releases;
|
|
49
53
|
}
|
|
50
54
|
async getVersions({ packageName, from, to }) {
|
|
51
55
|
const versions = await this.packageManager.getVersions(packageName);
|
package/dist/src/main.js
CHANGED
|
@@ -8,7 +8,7 @@ const github_1 = require("./github");
|
|
|
8
8
|
const ncu_1 = require("./ncu");
|
|
9
9
|
const package_manager_1 = require("./package-manager");
|
|
10
10
|
const terminal_1 = require("./terminal");
|
|
11
|
-
// TODO:
|
|
11
|
+
// TODO: Add test
|
|
12
12
|
const main = async ({ options, logger }) => {
|
|
13
13
|
logger.debug(`options=${JSON.stringify({
|
|
14
14
|
...options,
|
|
@@ -68,7 +68,10 @@ const main = async ({ options, logger }) => {
|
|
|
68
68
|
packageManager: options.packageManager
|
|
69
69
|
});
|
|
70
70
|
const pullRequestTitleCreator = new github_1.PullRequestTitleCreator(options.prTitle);
|
|
71
|
-
const releasesFetcher = new github_1.ReleasesFetcher({
|
|
71
|
+
const releasesFetcher = new github_1.ReleasesFetcher({
|
|
72
|
+
options,
|
|
73
|
+
packageManager
|
|
74
|
+
});
|
|
72
75
|
const pullRequestBodyCreator = new github_1.PullRequestBodyCreator({
|
|
73
76
|
options,
|
|
74
77
|
releasesFetcher
|
|
@@ -125,7 +128,7 @@ const main = async ({ options, logger }) => {
|
|
|
125
128
|
logger.debug(`failedResults=${JSON.stringify(failedResults)}`);
|
|
126
129
|
const failedPackages = failedResults.map(({ outdatedPackage }) => outdatedPackage);
|
|
127
130
|
logger.debug(`failedPackages=${JSON.stringify(failedPackages)}`);
|
|
128
|
-
// TODO:
|
|
131
|
+
// TODO: Show as table
|
|
129
132
|
logger.info(`Processed ${succeededResults.length + failedPackages.length} packages:
|
|
130
133
|
- ${createdPackages.length} packages: created (${createdPackages.map(({ name }) => name).join(',')})
|
|
131
134
|
- ${skippedPackages.length} packages: skipped: (${skippedPackages.map(({ name }) => name).join(',')})
|
package/dist/src/ncu/Ncu.js
CHANGED
|
@@ -7,7 +7,7 @@ const file_1 = require("../file");
|
|
|
7
7
|
const package_json_1 = require("../package-json");
|
|
8
8
|
const semver_1 = require("../semver");
|
|
9
9
|
const NcuResult_1 = require("./NcuResult");
|
|
10
|
-
// TODO:
|
|
10
|
+
// TODO: Add test
|
|
11
11
|
class Ncu {
|
|
12
12
|
constructor({ options, logger }) {
|
|
13
13
|
this.options = options;
|
|
@@ -7,6 +7,7 @@ const package_manager_1 = require("../package-manager");
|
|
|
7
7
|
const Options = (0, io_ts_1.intersection)([
|
|
8
8
|
(0, io_ts_1.type)({
|
|
9
9
|
commitMessage: io_ts_1.string,
|
|
10
|
+
fetchSleepTime: io_ts_1.number,
|
|
10
11
|
githubToken: io_ts_1.string,
|
|
11
12
|
logLevel: (0, io_ts_1.union)([
|
|
12
13
|
(0, io_ts_1.literal)(logger_1.LogLevel.Off),
|
|
@@ -18,6 +18,13 @@ exports.cliOptions = [
|
|
|
18
18
|
required: false,
|
|
19
19
|
default: 'chore(deps): {{{level}}} update {{{packageName}}} to v{{{newVersion}}}'
|
|
20
20
|
},
|
|
21
|
+
{
|
|
22
|
+
name: 'fetch-sleep-time',
|
|
23
|
+
description: 'Sleep time between fetching (ms)',
|
|
24
|
+
type: OptionType_1.OptionType.Number,
|
|
25
|
+
required: false,
|
|
26
|
+
default: 1000
|
|
27
|
+
},
|
|
21
28
|
{
|
|
22
29
|
name: 'github-token',
|
|
23
30
|
description: 'GitHub token',
|
|
@@ -8,7 +8,7 @@ const commander_1 = require("commander");
|
|
|
8
8
|
const package_json_1 = __importDefault(require("../../package.json"));
|
|
9
9
|
const Options_1 = require("./Options");
|
|
10
10
|
const toCommanderOption_1 = require("./toCommanderOption");
|
|
11
|
-
// TODO:
|
|
11
|
+
// TODO: Add test
|
|
12
12
|
const createOptions = (cliOptions) => {
|
|
13
13
|
commander_1.program.version(package_json_1.default.version);
|
|
14
14
|
cliOptions
|
|
@@ -12,6 +12,9 @@ const toCommanderOption = (cliOption) => {
|
|
|
12
12
|
if (!cliOption.required && cliOption.default !== undefined) {
|
|
13
13
|
option.default(cliOption.default);
|
|
14
14
|
}
|
|
15
|
+
if (cliOption.type === OptionType_1.OptionType.Number) {
|
|
16
|
+
option.argParser(Number);
|
|
17
|
+
}
|
|
15
18
|
return option;
|
|
16
19
|
};
|
|
17
20
|
exports.toCommanderOption = toCommanderOption;
|
|
@@ -21,9 +24,11 @@ const createArgumentString = (cliOption) => {
|
|
|
21
24
|
};
|
|
22
25
|
const createArgumentNameString = (optionType) => {
|
|
23
26
|
switch (optionType) {
|
|
27
|
+
case OptionType_1.OptionType.Number:
|
|
28
|
+
return 'number';
|
|
24
29
|
case OptionType_1.OptionType.String:
|
|
25
|
-
return '
|
|
30
|
+
return 'string';
|
|
26
31
|
case OptionType_1.OptionType.StringArray:
|
|
27
|
-
return '
|
|
32
|
+
return 'strings...';
|
|
28
33
|
}
|
|
29
34
|
};
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Terminal = void 0;
|
|
7
7
|
const execa_1 = __importDefault(require("execa"));
|
|
8
|
-
// TODO:
|
|
8
|
+
// TODO: Add test
|
|
9
9
|
class Terminal {
|
|
10
10
|
async run(command, ...args) {
|
|
11
11
|
return await (0, execa_1.default)(command, args);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "npm-update-package",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.50.0",
|
|
4
4
|
"description": "CLI tool for creating pull requests to update npm packages",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc --project tsconfig.build.json",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@types/parse-github-url": "1.0.0",
|
|
42
42
|
"@types/semver": "7.3.9",
|
|
43
43
|
"@typescript-eslint/eslint-plugin": "5.16.0",
|
|
44
|
-
"eslint": "8.
|
|
44
|
+
"eslint": "8.12.0",
|
|
45
45
|
"eslint-config-standard-with-typescript": "21.0.1",
|
|
46
46
|
"eslint-plugin-import": "2.25.4",
|
|
47
47
|
"eslint-plugin-jest": "26.1.3",
|
|
@@ -53,9 +53,9 @@
|
|
|
53
53
|
"lint-staged": "12.3.7",
|
|
54
54
|
"npm-run-all": "4.1.5",
|
|
55
55
|
"rimraf": "3.0.2",
|
|
56
|
-
"ts-jest": "27.1.
|
|
56
|
+
"ts-jest": "27.1.4",
|
|
57
57
|
"ts-node": "10.7.0",
|
|
58
|
-
"typescript": "4.6.
|
|
58
|
+
"typescript": "4.6.3",
|
|
59
59
|
"utility-types": "3.10.0"
|
|
60
60
|
},
|
|
61
61
|
"repository": {
|