npm-update-package 0.4.0 → 0.6.1
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/{FUNDING.yml → .github/FUNDING.yml} +0 -0
- package/LICENSE +1 -1
- package/README.md +6 -0
- package/dist/app.js +1 -1
- package/dist/{branch-name-creator → git}/BranchNameCreator.js +0 -0
- package/dist/git/CommitMessageCreator.js +22 -0
- package/dist/git/index.js +5 -1
- package/dist/{enums → logger}/LogLevel.js +0 -0
- package/dist/logger/index.js +4 -1
- package/dist/main.js +14 -8
- package/dist/ncu/Ncu.js +4 -2
- package/dist/ncu/NcuOutdatedPackagesConverter.js +3 -3
- package/dist/{types → ncu}/OutdatedPackage.js +0 -0
- package/dist/{values → ncu}/PackageVersion.js +0 -0
- package/dist/{enums → ncu}/UpdateType.js +0 -0
- package/dist/ncu/index.js +6 -1
- package/dist/ncu/toUpdateType.js +4 -4
- package/dist/options/Options.js +4 -3
- package/dist/options/initOptions.js +9 -7
- package/dist/{read-package-json → package-json}/Package.js +3 -3
- package/dist/{read-package-json → package-json}/PackageDependencies.js +0 -0
- package/dist/package-json/PackageJsonParser.js +21 -0
- package/dist/package-json/PackageJsonReader.js +20 -0
- package/dist/package-json/index.js +7 -0
- package/dist/{enums → package-manager}/PackageManagerName.js +0 -0
- package/dist/package-manager/index.js +4 -1
- package/dist/{outdated-package-processor → processors}/OutdatedPackageProcessor.js +3 -3
- package/dist/{outdated-packages-processor → processors}/OutdatedPackagesProcessor.js +0 -0
- package/dist/{types → processors}/Result.js +0 -0
- package/dist/{outdated-packages-processor → processors}/index.js +3 -1
- package/package.json +2 -2
- package/src/app.ts +1 -1
- package/src/{branch-name-creator → git}/BranchNameCreator.test.ts +1 -1
- package/src/{branch-name-creator → git}/BranchNameCreator.ts +1 -1
- package/src/git/CommitMessageCreator.test.ts +17 -0
- package/src/git/CommitMessageCreator.ts +19 -0
- package/src/git/index.ts +2 -0
- package/src/github/PullRequestCreator.ts +1 -1
- package/src/github/createPullRequestBody.test.ts +4 -2
- package/src/github/createPullRequestBody.ts +1 -1
- package/src/github/createPullRequestTitle.test.ts +1 -2
- package/src/github/createPullRequestTitle.ts +1 -1
- package/src/{enums → logger}/LogLevel.ts +0 -0
- package/src/logger/createLogger.ts +1 -1
- package/src/logger/index.ts +4 -0
- package/src/main.ts +19 -5
- package/src/ncu/Ncu.ts +5 -3
- package/src/ncu/NcuOutdatedPackagesConverter.ts +3 -3
- package/src/{types → ncu}/OutdatedPackage.ts +2 -2
- package/src/{values → ncu}/PackageVersion.test.ts +0 -0
- package/src/{values → ncu}/PackageVersion.ts +0 -0
- package/src/{enums → ncu}/UpdateType.ts +0 -0
- package/src/ncu/index.ts +6 -0
- package/src/ncu/toUpdateType.test.ts +2 -2
- package/src/ncu/toUpdateType.ts +2 -2
- package/src/options/Options.ts +2 -1
- package/src/options/initOptions.ts +3 -4
- package/src/{read-package-json → package-json}/Package.ts +1 -1
- package/src/{read-package-json → package-json}/PackageDependencies.ts +0 -0
- package/src/package-json/PackageJsonParser.ts +19 -0
- package/src/package-json/PackageJsonReader.ts +27 -0
- package/src/package-json/index.ts +3 -0
- package/src/{enums → package-manager}/PackageManagerName.ts +0 -0
- package/src/package-manager/createPackageManager.ts +1 -1
- package/src/package-manager/index.ts +4 -0
- package/src/{outdated-package-processor → processors}/OutdatedPackageProcessor.ts +13 -9
- package/src/{outdated-packages-processor → processors}/OutdatedPackagesProcessor.ts +3 -5
- package/src/{types → processors}/Result.ts +1 -1
- package/src/{outdated-packages-processor → processors}/index.ts +1 -0
- package/dist/branch-name-creator/index.js +0 -5
- package/dist/enums/index.js +0 -12
- package/dist/outdated-package-processor/createCommitMessage.js +0 -10
- package/dist/outdated-package-processor/index.js +0 -5
- package/dist/read-package-json/index.js +0 -5
- package/dist/read-package-json/parsePackageJson.js +0 -15
- package/dist/read-package-json/readFile.js +0 -12
- package/dist/read-package-json/readPackageJson.js +0 -11
- package/dist/types/index.js +0 -2
- package/dist/values/index.js +0 -5
- package/src/branch-name-creator/index.ts +0 -1
- package/src/enums/index.ts +0 -12
- package/src/outdated-package-processor/createCommitMessage.test.ts +0 -43
- package/src/outdated-package-processor/createCommitMessage.ts +0 -8
- package/src/outdated-package-processor/index.ts +0 -1
- package/src/read-package-json/index.ts +0 -2
- package/src/read-package-json/parsePackageJson.ts +0 -13
- package/src/read-package-json/readFile.ts +0 -6
- package/src/read-package-json/readPackageJson.ts +0 -9
- package/src/types/index.ts +0 -2
- package/src/values/index.ts +0 -1
|
File without changes
|
package/LICENSE
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
3
|
Copyright (c) 2020 TS Examples
|
|
4
|
-
Copyright (c) 2021
|
|
4
|
+
Copyright (c) 2021 npm-update-package
|
|
5
5
|
|
|
6
6
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
7
|
of this software and associated documentation files (the "Software"), to deal
|
package/README.md
CHANGED
|
@@ -38,6 +38,7 @@ You can customize behavior via command-line options.
|
|
|
38
38
|
|Option|Description|Required|Value|Default|
|
|
39
39
|
|---|---|---|---|---|
|
|
40
40
|
|`--branch-name`|Branch name template|-|string|`npm-update-package/{{{packageName}}}/v{{newVersion}}`|
|
|
41
|
+
|`--commit-message`|Commit message template|-|string|`chore(deps): {{updateType}} update {{{packageName}}} to v{{newVersion}}`|
|
|
41
42
|
|`--git-user-email`|User email of commit|-|string|-|
|
|
42
43
|
|`--git-user-name`|User name of commit|-|string|-|
|
|
43
44
|
|`--github-token`|GitHub token|✓|string|-|
|
|
@@ -54,3 +55,8 @@ These variables are available:
|
|
|
54
55
|
- `currentVersion`
|
|
55
56
|
- `newVersion`
|
|
56
57
|
- `updateType`
|
|
58
|
+
- `--commit-message`
|
|
59
|
+
- `packageName`
|
|
60
|
+
- `currentVersion`
|
|
61
|
+
- `newVersion`
|
|
62
|
+
- `updateType`
|
package/dist/app.js
CHANGED
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommitMessageCreator = void 0;
|
|
4
|
+
const mustache_1 = require("mustache");
|
|
5
|
+
class CommitMessageCreator {
|
|
6
|
+
constructor(template) {
|
|
7
|
+
this.template = template;
|
|
8
|
+
}
|
|
9
|
+
create(outdatedPackage) {
|
|
10
|
+
const packageName = outdatedPackage.name;
|
|
11
|
+
const currentVersion = outdatedPackage.currentVersion.version;
|
|
12
|
+
const newVersion = outdatedPackage.newVersion.version;
|
|
13
|
+
const updateType = outdatedPackage.type;
|
|
14
|
+
return (0, mustache_1.render)(this.template, {
|
|
15
|
+
packageName,
|
|
16
|
+
currentVersion,
|
|
17
|
+
newVersion,
|
|
18
|
+
updateType
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.CommitMessageCreator = CommitMessageCreator;
|
package/dist/git/index.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Git = exports.Committer = void 0;
|
|
3
|
+
exports.Git = exports.Committer = exports.CommitMessageCreator = exports.BranchNameCreator = void 0;
|
|
4
|
+
var BranchNameCreator_1 = require("./BranchNameCreator");
|
|
5
|
+
Object.defineProperty(exports, "BranchNameCreator", { enumerable: true, get: function () { return BranchNameCreator_1.BranchNameCreator; } });
|
|
6
|
+
var CommitMessageCreator_1 = require("./CommitMessageCreator");
|
|
7
|
+
Object.defineProperty(exports, "CommitMessageCreator", { enumerable: true, get: function () { return CommitMessageCreator_1.CommitMessageCreator; } });
|
|
4
8
|
var Committer_1 = require("./Committer");
|
|
5
9
|
Object.defineProperty(exports, "Committer", { enumerable: true, get: function () { return Committer_1.Committer; } });
|
|
6
10
|
var Git_1 = require("./Git");
|
|
File without changes
|
package/dist/logger/index.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createLogger = void 0;
|
|
3
|
+
exports.LogLevel = exports.isLogLevel = exports.createLogger = void 0;
|
|
4
4
|
var createLogger_1 = require("./createLogger");
|
|
5
5
|
Object.defineProperty(exports, "createLogger", { enumerable: true, get: function () { return createLogger_1.createLogger; } });
|
|
6
|
+
var LogLevel_1 = require("./LogLevel");
|
|
7
|
+
Object.defineProperty(exports, "isLogLevel", { enumerable: true, get: function () { return LogLevel_1.isLogLevel; } });
|
|
8
|
+
Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return LogLevel_1.LogLevel; } });
|
package/dist/main.js
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.main = void 0;
|
|
4
|
-
const branch_name_creator_1 = require("./branch-name-creator");
|
|
5
4
|
const git_1 = require("./git");
|
|
6
5
|
const github_1 = require("./github");
|
|
7
6
|
const ncu_1 = require("./ncu");
|
|
8
|
-
const
|
|
9
|
-
const outdated_packages_processor_1 = require("./outdated-packages-processor");
|
|
7
|
+
const package_json_1 = require("./package-json");
|
|
10
8
|
const package_manager_1 = require("./package-manager");
|
|
9
|
+
const processors_1 = require("./processors");
|
|
11
10
|
const terminal_1 = require("./terminal");
|
|
12
11
|
// TODO: add test
|
|
13
12
|
const main = async ({ options, logger }) => {
|
|
14
13
|
logger.debug(`options=${JSON.stringify(options)}`);
|
|
15
|
-
const
|
|
14
|
+
const packageJsonParser = new package_json_1.PackageJsonParser(logger);
|
|
15
|
+
const packageJsonReader = new package_json_1.PackageJsonReader({
|
|
16
|
+
packageJsonParser,
|
|
17
|
+
logger
|
|
18
|
+
});
|
|
19
|
+
const ncu = new ncu_1.Ncu(packageJsonReader);
|
|
16
20
|
const outdatedPackages = await ncu.check();
|
|
17
21
|
logger.debug(`outdatedPackages=${JSON.stringify(outdatedPackages)}`);
|
|
18
22
|
if (outdatedPackages.length === 0) {
|
|
@@ -56,8 +60,9 @@ const main = async ({ options, logger }) => {
|
|
|
56
60
|
githubRepo,
|
|
57
61
|
logger
|
|
58
62
|
});
|
|
59
|
-
const branchNameCreator = new
|
|
60
|
-
const
|
|
63
|
+
const branchNameCreator = new git_1.BranchNameCreator(options.branchName);
|
|
64
|
+
const commitMessageCreator = new git_1.CommitMessageCreator(options.commitMessage);
|
|
65
|
+
const outdatedPackageProcessor = new processors_1.OutdatedPackageProcessor({
|
|
61
66
|
committer,
|
|
62
67
|
git,
|
|
63
68
|
ncu,
|
|
@@ -65,9 +70,10 @@ const main = async ({ options, logger }) => {
|
|
|
65
70
|
pullRequestCreator,
|
|
66
71
|
remoteBranchExistenceChecker,
|
|
67
72
|
logger,
|
|
68
|
-
branchNameCreator
|
|
73
|
+
branchNameCreator,
|
|
74
|
+
commitMessageCreator
|
|
69
75
|
});
|
|
70
|
-
const outdatedPackagesProcessor = new
|
|
76
|
+
const outdatedPackagesProcessor = new processors_1.OutdatedPackagesProcessor({
|
|
71
77
|
outdatedPackageProcessor,
|
|
72
78
|
logger
|
|
73
79
|
});
|
package/dist/ncu/Ncu.js
CHANGED
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Ncu = void 0;
|
|
4
4
|
const npm_check_updates_1 = require("npm-check-updates");
|
|
5
|
-
const read_package_json_1 = require("../read-package-json");
|
|
6
5
|
const isNcuOutdatedPackages_1 = require("./isNcuOutdatedPackages");
|
|
7
6
|
const NcuOutdatedPackagesConverter_1 = require("./NcuOutdatedPackagesConverter");
|
|
8
7
|
// TODO: add test
|
|
9
8
|
class Ncu {
|
|
9
|
+
constructor(packageJsonReader) {
|
|
10
|
+
this.packageJsonReader = packageJsonReader;
|
|
11
|
+
}
|
|
10
12
|
async check() {
|
|
11
13
|
return await this.run({
|
|
12
14
|
jsonUpgraded: true
|
|
@@ -20,7 +22,7 @@ class Ncu {
|
|
|
20
22
|
});
|
|
21
23
|
}
|
|
22
24
|
async run(options) {
|
|
23
|
-
const pkg = await
|
|
25
|
+
const pkg = await this.packageJsonReader.read('./package.json');
|
|
24
26
|
const currentDependencies = {
|
|
25
27
|
...pkg.dependencies,
|
|
26
28
|
...pkg.devDependencies,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NcuOutdatedPackagesConverter = void 0;
|
|
4
|
-
const
|
|
4
|
+
const PackageVersion_1 = require("./PackageVersion");
|
|
5
5
|
const toUpdateType_1 = require("./toUpdateType");
|
|
6
6
|
// TODO: add test
|
|
7
7
|
class NcuOutdatedPackagesConverter {
|
|
@@ -12,8 +12,8 @@ class NcuOutdatedPackagesConverter {
|
|
|
12
12
|
return Object.entries(outdatedPackages)
|
|
13
13
|
.map(([name, newVersion]) => ({
|
|
14
14
|
name,
|
|
15
|
-
currentVersion:
|
|
16
|
-
newVersion:
|
|
15
|
+
currentVersion: PackageVersion_1.PackageVersion.of(this.currentDependencies[name]),
|
|
16
|
+
newVersion: PackageVersion_1.PackageVersion.of(newVersion)
|
|
17
17
|
}))
|
|
18
18
|
.map(({ name, currentVersion, newVersion }) => ({
|
|
19
19
|
name,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/ncu/index.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Ncu = void 0;
|
|
3
|
+
exports.UpdateType = exports.isUpdateType = exports.PackageVersion = exports.Ncu = void 0;
|
|
4
4
|
var Ncu_1 = require("./Ncu");
|
|
5
5
|
Object.defineProperty(exports, "Ncu", { enumerable: true, get: function () { return Ncu_1.Ncu; } });
|
|
6
|
+
var PackageVersion_1 = require("./PackageVersion");
|
|
7
|
+
Object.defineProperty(exports, "PackageVersion", { enumerable: true, get: function () { return PackageVersion_1.PackageVersion; } });
|
|
8
|
+
var UpdateType_1 = require("./UpdateType");
|
|
9
|
+
Object.defineProperty(exports, "isUpdateType", { enumerable: true, get: function () { return UpdateType_1.isUpdateType; } });
|
|
10
|
+
Object.defineProperty(exports, "UpdateType", { enumerable: true, get: function () { return UpdateType_1.UpdateType; } });
|
package/dist/ncu/toUpdateType.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.toUpdateType = void 0;
|
|
4
|
-
const
|
|
4
|
+
const UpdateType_1 = require("./UpdateType");
|
|
5
5
|
const toUpdateType = (currentVersion, newVersion) => {
|
|
6
6
|
if (currentVersion.major !== newVersion.major) {
|
|
7
|
-
return
|
|
7
|
+
return UpdateType_1.UpdateType.Major;
|
|
8
8
|
}
|
|
9
9
|
if (currentVersion.minor !== newVersion.minor) {
|
|
10
|
-
return
|
|
10
|
+
return UpdateType_1.UpdateType.Minor;
|
|
11
11
|
}
|
|
12
12
|
if (currentVersion.patch !== newVersion.patch) {
|
|
13
|
-
return
|
|
13
|
+
return UpdateType_1.UpdateType.Patch;
|
|
14
14
|
}
|
|
15
15
|
throw new Error('Both versions are same.');
|
|
16
16
|
};
|
package/dist/options/Options.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isOptions =
|
|
3
|
+
exports.isOptions = void 0;
|
|
4
4
|
const io_ts_1 = require("io-ts");
|
|
5
|
-
|
|
5
|
+
const Options = (0, io_ts_1.intersection)([
|
|
6
6
|
(0, io_ts_1.type)({
|
|
7
7
|
branchName: io_ts_1.string,
|
|
8
|
+
commitMessage: io_ts_1.string,
|
|
8
9
|
githubToken: io_ts_1.string,
|
|
9
10
|
logLevel: (0, io_ts_1.union)([(0, io_ts_1.literal)('info'), (0, io_ts_1.literal)('debug')]),
|
|
10
11
|
packageManager: (0, io_ts_1.union)([(0, io_ts_1.literal)('npm'), (0, io_ts_1.literal)('yarn')])
|
|
@@ -14,4 +15,4 @@ exports.Options = (0, io_ts_1.intersection)([
|
|
|
14
15
|
gitUserName: io_ts_1.string
|
|
15
16
|
})
|
|
16
17
|
]);
|
|
17
|
-
exports.isOptions =
|
|
18
|
+
exports.isOptions = Options.is;
|
|
@@ -3,28 +3,30 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.initOptions = void 0;
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
5
|
const app_1 = require("../app");
|
|
6
|
-
const
|
|
6
|
+
const logger_1 = require("../logger");
|
|
7
|
+
const package_manager_1 = require("../package-manager");
|
|
7
8
|
const Options_1 = require("./Options");
|
|
8
9
|
// TODO: add test
|
|
9
10
|
const initOptions = () => {
|
|
10
11
|
commander_1.program
|
|
11
12
|
.version(app_1.app.version)
|
|
12
13
|
.option('--branch-name <value>', 'Branch name template', 'npm-update-package/{{{packageName}}}/v{{newVersion}}')
|
|
14
|
+
.option('--commit-message <value>', 'Commit message template', 'chore(deps): {{updateType}} update {{{packageName}}} to v{{newVersion}}')
|
|
13
15
|
.option('--git-user-email <value>', 'User email of commit')
|
|
14
16
|
.option('--git-user-name <value>', 'User name of commit')
|
|
15
17
|
.requiredOption('--github-token <value>', 'GitHub token')
|
|
16
18
|
.addOption(new commander_1.Option('--log-level <value>', 'Log level to show')
|
|
17
19
|
.choices([
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
logger_1.LogLevel.Info,
|
|
21
|
+
logger_1.LogLevel.Debug
|
|
20
22
|
])
|
|
21
|
-
.default(
|
|
23
|
+
.default(logger_1.LogLevel.Info))
|
|
22
24
|
.addOption(new commander_1.Option('--package-manager <value>', 'Package manager of your project')
|
|
23
25
|
.choices([
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
package_manager_1.PackageManagerName.Npm,
|
|
27
|
+
package_manager_1.PackageManagerName.Yarn
|
|
26
28
|
])
|
|
27
|
-
.default(
|
|
29
|
+
.default(package_manager_1.PackageManagerName.Npm));
|
|
28
30
|
commander_1.program.parse(process.argv);
|
|
29
31
|
const options = commander_1.program.opts();
|
|
30
32
|
if (!(0, Options_1.isOptions)(options)) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isPackage =
|
|
3
|
+
exports.isPackage = void 0;
|
|
4
4
|
const io_ts_1 = require("io-ts");
|
|
5
5
|
const PackageDependencies_1 = require("./PackageDependencies");
|
|
6
|
-
|
|
6
|
+
const Package = (0, io_ts_1.intersection)([
|
|
7
7
|
(0, io_ts_1.type)({
|
|
8
8
|
name: io_ts_1.string,
|
|
9
9
|
version: io_ts_1.string
|
|
@@ -15,4 +15,4 @@ exports.Package = (0, io_ts_1.intersection)([
|
|
|
15
15
|
optionalDependencies: PackageDependencies_1.PackageDependencies
|
|
16
16
|
})
|
|
17
17
|
]);
|
|
18
|
-
exports.isPackage =
|
|
18
|
+
exports.isPackage = Package.is;
|
|
File without changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PackageJsonParser = void 0;
|
|
4
|
+
const Package_1 = require("./Package");
|
|
5
|
+
// TODO: add test
|
|
6
|
+
class PackageJsonParser {
|
|
7
|
+
constructor(logger) {
|
|
8
|
+
this.logger = logger;
|
|
9
|
+
}
|
|
10
|
+
parse(json) {
|
|
11
|
+
const parsed = JSON.parse(json);
|
|
12
|
+
this.logger.debug(`parsed=${JSON.stringify(parsed)}`);
|
|
13
|
+
if ((0, Package_1.isPackage)(parsed)) {
|
|
14
|
+
return parsed;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
throw new Error(`Failed to parse package.json. json=${json}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.PackageJsonParser = PackageJsonParser;
|
|
@@ -0,0 +1,20 @@
|
|
|
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.PackageJsonReader = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
// TODO: add test
|
|
9
|
+
class PackageJsonReader {
|
|
10
|
+
constructor({ packageJsonParser, logger }) {
|
|
11
|
+
this.packageJsonParser = packageJsonParser;
|
|
12
|
+
this.logger = logger;
|
|
13
|
+
}
|
|
14
|
+
async read(filePath) {
|
|
15
|
+
const json = await fs_1.default.promises.readFile(filePath, 'utf8');
|
|
16
|
+
this.logger.debug(`json=${json}`);
|
|
17
|
+
return this.packageJsonParser.parse(json);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.PackageJsonReader = PackageJsonReader;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PackageJsonReader = exports.PackageJsonParser = void 0;
|
|
4
|
+
var PackageJsonParser_1 = require("./PackageJsonParser");
|
|
5
|
+
Object.defineProperty(exports, "PackageJsonParser", { enumerable: true, get: function () { return PackageJsonParser_1.PackageJsonParser; } });
|
|
6
|
+
var PackageJsonReader_1 = require("./PackageJsonReader");
|
|
7
|
+
Object.defineProperty(exports, "PackageJsonReader", { enumerable: true, get: function () { return PackageJsonReader_1.PackageJsonReader; } });
|
|
File without changes
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Yarn = exports.Npm = exports.createPackageManager = void 0;
|
|
3
|
+
exports.Yarn = exports.PackageManagerName = exports.isPackageManagerName = exports.Npm = exports.createPackageManager = void 0;
|
|
4
4
|
var createPackageManager_1 = require("./createPackageManager");
|
|
5
5
|
Object.defineProperty(exports, "createPackageManager", { enumerable: true, get: function () { return createPackageManager_1.createPackageManager; } });
|
|
6
6
|
var Npm_1 = require("./Npm");
|
|
7
7
|
Object.defineProperty(exports, "Npm", { enumerable: true, get: function () { return Npm_1.Npm; } });
|
|
8
|
+
var PackageManagerName_1 = require("./PackageManagerName");
|
|
9
|
+
Object.defineProperty(exports, "isPackageManagerName", { enumerable: true, get: function () { return PackageManagerName_1.isPackageManagerName; } });
|
|
10
|
+
Object.defineProperty(exports, "PackageManagerName", { enumerable: true, get: function () { return PackageManagerName_1.PackageManagerName; } });
|
|
8
11
|
var Yarn_1 = require("./Yarn");
|
|
9
12
|
Object.defineProperty(exports, "Yarn", { enumerable: true, get: function () { return Yarn_1.Yarn; } });
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OutdatedPackageProcessor = void 0;
|
|
4
|
-
const createCommitMessage_1 = require("./createCommitMessage");
|
|
5
4
|
// TODO: add test
|
|
6
5
|
class OutdatedPackageProcessor {
|
|
7
|
-
constructor({ committer, git, ncu, packageManager, pullRequestCreator, remoteBranchExistenceChecker, logger, branchNameCreator }) {
|
|
6
|
+
constructor({ committer, git, ncu, packageManager, pullRequestCreator, remoteBranchExistenceChecker, logger, branchNameCreator, commitMessageCreator }) {
|
|
8
7
|
this.committer = committer;
|
|
9
8
|
this.git = git;
|
|
10
9
|
this.ncu = ncu;
|
|
@@ -13,6 +12,7 @@ class OutdatedPackageProcessor {
|
|
|
13
12
|
this.remoteBranchExistenceChecker = remoteBranchExistenceChecker;
|
|
14
13
|
this.logger = logger;
|
|
15
14
|
this.branchNameCreator = branchNameCreator;
|
|
15
|
+
this.commitMessageCreator = commitMessageCreator;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Don't run in parallel because it includes file operations.
|
|
@@ -36,7 +36,7 @@ class OutdatedPackageProcessor {
|
|
|
36
36
|
await this.packageManager.install();
|
|
37
37
|
this.logger.info(`${outdatedPackage.name} has updated from v${outdatedPackage.currentVersion.version} to v${outdatedPackage.newVersion.version}`);
|
|
38
38
|
await this.git.add(...this.packageManager.packageFiles);
|
|
39
|
-
const message =
|
|
39
|
+
const message = this.commitMessageCreator.create(outdatedPackage);
|
|
40
40
|
this.logger.debug(`message=${message}`);
|
|
41
41
|
await this.committer.commit(message);
|
|
42
42
|
await this.git.push(branchName);
|
|
File without changes
|
|
File without changes
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OutdatedPackagesProcessor = void 0;
|
|
3
|
+
exports.OutdatedPackagesProcessor = exports.OutdatedPackageProcessor = void 0;
|
|
4
|
+
var OutdatedPackageProcessor_1 = require("./OutdatedPackageProcessor");
|
|
5
|
+
Object.defineProperty(exports, "OutdatedPackageProcessor", { enumerable: true, get: function () { return OutdatedPackageProcessor_1.OutdatedPackageProcessor; } });
|
|
4
6
|
var OutdatedPackagesProcessor_1 = require("./OutdatedPackagesProcessor");
|
|
5
7
|
Object.defineProperty(exports, "OutdatedPackagesProcessor", { enumerable: true, get: function () { return OutdatedPackagesProcessor_1.OutdatedPackagesProcessor; } });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "npm-update-package",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"description": "CLI tool for creating pull request to update npm packages",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc --project tsconfig.build.json",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"lint": "eslint '**/*.{js,ts}'",
|
|
9
9
|
"prepare": "husky install",
|
|
10
10
|
"prepublish": "npm-run-all clean lint test build",
|
|
11
|
-
"start": "ts-node src/
|
|
11
|
+
"start": "ts-node src/bin.ts",
|
|
12
12
|
"test": "jest --passWithNoTests"
|
|
13
13
|
},
|
|
14
14
|
"bin": "dist/bin.js",
|
package/src/app.ts
CHANGED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PackageVersion } from '../ncu'
|
|
2
|
+
import { CommitMessageCreator } from './CommitMessageCreator'
|
|
3
|
+
|
|
4
|
+
describe('CommitMessageCreator', () => {
|
|
5
|
+
describe('create', () => {
|
|
6
|
+
it('returns commit message', () => {
|
|
7
|
+
const commitMessageCreator = new CommitMessageCreator('chore(deps): {{updateType}} update {{{packageName}}} from {{currentVersion}} to v{{newVersion}}')
|
|
8
|
+
const actual = commitMessageCreator.create({
|
|
9
|
+
name: '@typescript-eslint/eslint-plugin',
|
|
10
|
+
currentVersion: PackageVersion.of('1.0.0'),
|
|
11
|
+
newVersion: PackageVersion.of('2.0.0'),
|
|
12
|
+
type: 'major'
|
|
13
|
+
})
|
|
14
|
+
expect(actual).toBe('chore(deps): major update @typescript-eslint/eslint-plugin from 1.0.0 to v2.0.0')
|
|
15
|
+
})
|
|
16
|
+
})
|
|
17
|
+
})
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { render } from 'mustache'
|
|
2
|
+
import type { OutdatedPackage } from '../ncu'
|
|
3
|
+
|
|
4
|
+
export class CommitMessageCreator {
|
|
5
|
+
constructor (private readonly template: string) {}
|
|
6
|
+
|
|
7
|
+
create (outdatedPackage: OutdatedPackage): string {
|
|
8
|
+
const packageName = outdatedPackage.name
|
|
9
|
+
const currentVersion = outdatedPackage.currentVersion.version
|
|
10
|
+
const newVersion = outdatedPackage.newVersion.version
|
|
11
|
+
const updateType = outdatedPackage.type
|
|
12
|
+
return render(this.template, {
|
|
13
|
+
packageName,
|
|
14
|
+
currentVersion,
|
|
15
|
+
newVersion,
|
|
16
|
+
updateType
|
|
17
|
+
})
|
|
18
|
+
}
|
|
19
|
+
}
|
package/src/git/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GitRepository } from '../git'
|
|
2
2
|
import type { Logger } from '../logger'
|
|
3
|
-
import type { OutdatedPackage } from '../
|
|
3
|
+
import type { OutdatedPackage } from '../ncu'
|
|
4
4
|
import { createPullRequestBody } from './createPullRequestBody'
|
|
5
5
|
import { createPullRequestTitle } from './createPullRequestTitle'
|
|
6
6
|
import type { GitHub } from './GitHub'
|
|
File without changes
|
package/src/logger/index.ts
CHANGED
package/src/main.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { BranchNameCreator } from './branch-name-creator'
|
|
2
1
|
import {
|
|
2
|
+
BranchNameCreator,
|
|
3
|
+
CommitMessageCreator,
|
|
3
4
|
Committer,
|
|
4
5
|
Git
|
|
5
6
|
} from './git'
|
|
@@ -11,9 +12,15 @@ import {
|
|
|
11
12
|
import type { Logger } from './logger'
|
|
12
13
|
import { Ncu } from './ncu'
|
|
13
14
|
import type { Options } from './options'
|
|
14
|
-
import {
|
|
15
|
-
|
|
15
|
+
import {
|
|
16
|
+
PackageJsonParser,
|
|
17
|
+
PackageJsonReader
|
|
18
|
+
} from './package-json'
|
|
16
19
|
import { createPackageManager } from './package-manager'
|
|
20
|
+
import {
|
|
21
|
+
OutdatedPackageProcessor,
|
|
22
|
+
OutdatedPackagesProcessor
|
|
23
|
+
} from './processors'
|
|
17
24
|
import { Terminal } from './terminal'
|
|
18
25
|
|
|
19
26
|
// TODO: add test
|
|
@@ -26,7 +33,12 @@ export const main = async ({
|
|
|
26
33
|
}): Promise<void> => {
|
|
27
34
|
logger.debug(`options=${JSON.stringify(options)}`)
|
|
28
35
|
|
|
29
|
-
const
|
|
36
|
+
const packageJsonParser = new PackageJsonParser(logger)
|
|
37
|
+
const packageJsonReader = new PackageJsonReader({
|
|
38
|
+
packageJsonParser,
|
|
39
|
+
logger
|
|
40
|
+
})
|
|
41
|
+
const ncu = new Ncu(packageJsonReader)
|
|
30
42
|
const outdatedPackages = await ncu.check()
|
|
31
43
|
logger.debug(`outdatedPackages=${JSON.stringify(outdatedPackages)}`)
|
|
32
44
|
|
|
@@ -77,6 +89,7 @@ export const main = async ({
|
|
|
77
89
|
logger
|
|
78
90
|
})
|
|
79
91
|
const branchNameCreator = new BranchNameCreator(options.branchName)
|
|
92
|
+
const commitMessageCreator = new CommitMessageCreator(options.commitMessage)
|
|
80
93
|
const outdatedPackageProcessor = new OutdatedPackageProcessor({
|
|
81
94
|
committer,
|
|
82
95
|
git,
|
|
@@ -85,7 +98,8 @@ export const main = async ({
|
|
|
85
98
|
pullRequestCreator,
|
|
86
99
|
remoteBranchExistenceChecker,
|
|
87
100
|
logger,
|
|
88
|
-
branchNameCreator
|
|
101
|
+
branchNameCreator,
|
|
102
|
+
commitMessageCreator
|
|
89
103
|
})
|
|
90
104
|
const outdatedPackagesProcessor = new OutdatedPackagesProcessor({
|
|
91
105
|
outdatedPackageProcessor,
|