npm-update-package 0.5.0 → 0.7.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.
Files changed (95) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +6 -0
  3. package/dist/app.js +1 -1
  4. package/dist/{branch-name-creator → git}/BranchNameCreator.js +0 -0
  5. package/dist/{commit-message-creator → git}/CommitMessageCreator.js +0 -0
  6. package/dist/git/index.js +5 -1
  7. package/dist/github/PullRequestCreator.js +3 -3
  8. package/dist/github/PullRequestTitleCreator.js +22 -0
  9. package/dist/github/index.js +3 -1
  10. package/dist/{enums → logger}/LogLevel.js +0 -0
  11. package/dist/logger/index.js +4 -1
  12. package/dist/main.js +14 -9
  13. package/dist/ncu/Ncu.js +4 -2
  14. package/dist/ncu/NcuOutdatedPackagesConverter.js +3 -3
  15. package/dist/{types → ncu}/OutdatedPackage.js +0 -0
  16. package/dist/{values → ncu}/PackageVersion.js +0 -0
  17. package/dist/{enums → ncu}/UpdateType.js +0 -0
  18. package/dist/ncu/index.js +6 -1
  19. package/dist/ncu/toUpdateType.js +4 -4
  20. package/dist/options/Options.js +8 -5
  21. package/dist/options/initOptions.js +9 -7
  22. package/dist/{read-package-json → package-json}/Package.js +3 -3
  23. package/dist/{read-package-json → package-json}/PackageDependencies.js +0 -0
  24. package/dist/package-json/PackageJsonParser.js +21 -0
  25. package/dist/package-json/PackageJsonReader.js +20 -0
  26. package/dist/package-json/index.js +7 -0
  27. package/dist/{enums → package-manager}/PackageManagerName.js +0 -0
  28. package/dist/package-manager/index.js +4 -1
  29. package/dist/{outdated-package-processor → processors}/OutdatedPackageProcessor.js +0 -0
  30. package/dist/{outdated-packages-processor → processors}/OutdatedPackagesProcessor.js +0 -0
  31. package/dist/{types → processors}/Result.js +0 -0
  32. package/dist/{outdated-packages-processor → processors}/index.js +3 -1
  33. package/package.json +2 -2
  34. package/src/app.ts +1 -1
  35. package/src/{branch-name-creator → git}/BranchNameCreator.test.ts +1 -1
  36. package/src/{branch-name-creator → git}/BranchNameCreator.ts +1 -1
  37. package/src/{commit-message-creator → git}/CommitMessageCreator.test.ts +1 -1
  38. package/src/{commit-message-creator → git}/CommitMessageCreator.ts +1 -1
  39. package/src/git/index.ts +2 -0
  40. package/src/github/PullRequestCreator.ts +7 -3
  41. package/src/github/PullRequestTitleCreator.test.ts +17 -0
  42. package/src/github/PullRequestTitleCreator.ts +19 -0
  43. package/src/github/createPullRequestBody.test.ts +4 -2
  44. package/src/github/createPullRequestBody.ts +1 -1
  45. package/src/github/index.ts +1 -0
  46. package/src/{enums → logger}/LogLevel.ts +0 -0
  47. package/src/logger/createLogger.ts +1 -1
  48. package/src/logger/index.ts +4 -0
  49. package/src/main.ts +19 -5
  50. package/src/ncu/Ncu.ts +5 -3
  51. package/src/ncu/NcuOutdatedPackagesConverter.ts +3 -3
  52. package/src/{types → ncu}/OutdatedPackage.ts +2 -2
  53. package/src/{values → ncu}/PackageVersion.test.ts +0 -0
  54. package/src/{values → ncu}/PackageVersion.ts +0 -0
  55. package/src/{enums → ncu}/UpdateType.ts +0 -0
  56. package/src/ncu/index.ts +6 -0
  57. package/src/ncu/toUpdateType.test.ts +2 -2
  58. package/src/ncu/toUpdateType.ts +2 -2
  59. package/src/options/Options.ts +6 -3
  60. package/src/options/initOptions.ts +3 -4
  61. package/src/{read-package-json → package-json}/Package.ts +1 -1
  62. package/src/{read-package-json → package-json}/PackageDependencies.ts +0 -0
  63. package/src/package-json/PackageJsonParser.ts +19 -0
  64. package/src/package-json/PackageJsonReader.ts +27 -0
  65. package/src/package-json/index.ts +3 -0
  66. package/src/{enums → package-manager}/PackageManagerName.ts +0 -0
  67. package/src/package-manager/createPackageManager.ts +1 -1
  68. package/src/package-manager/index.ts +4 -0
  69. package/src/{outdated-package-processor → processors}/OutdatedPackageProcessor.ts +7 -7
  70. package/src/{outdated-packages-processor → processors}/OutdatedPackagesProcessor.ts +3 -5
  71. package/src/{types → processors}/Result.ts +1 -1
  72. package/src/{outdated-packages-processor → processors}/index.ts +1 -0
  73. package/dist/branch-name-creator/index.js +0 -5
  74. package/dist/commit-message-creator/index.js +0 -5
  75. package/dist/enums/index.js +0 -12
  76. package/dist/github/createPullRequestTitle.js +0 -10
  77. package/dist/outdated-package-processor/index.js +0 -5
  78. package/dist/read-package-json/index.js +0 -5
  79. package/dist/read-package-json/parsePackageJson.js +0 -15
  80. package/dist/read-package-json/readFile.js +0 -12
  81. package/dist/read-package-json/readPackageJson.js +0 -11
  82. package/dist/types/index.js +0 -2
  83. package/dist/values/index.js +0 -5
  84. package/src/branch-name-creator/index.ts +0 -1
  85. package/src/commit-message-creator/index.ts +0 -1
  86. package/src/enums/index.ts +0 -12
  87. package/src/github/createPullRequestTitle.test.ts +0 -43
  88. package/src/github/createPullRequestTitle.ts +0 -8
  89. package/src/outdated-package-processor/index.ts +0 -1
  90. package/src/read-package-json/index.ts +0 -2
  91. package/src/read-package-json/parsePackageJson.ts +0 -13
  92. package/src/read-package-json/readFile.ts +0 -6
  93. package/src/read-package-json/readPackageJson.ts +0 -9
  94. package/src/types/index.ts +0 -2
  95. package/src/values/index.ts +0 -1
package/LICENSE CHANGED
@@ -1,7 +1,7 @@
1
1
  MIT License
2
2
 
3
3
  Copyright (c) 2020 TS Examples
4
- Copyright (c) 2021 Munieru
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
@@ -44,6 +44,7 @@ You can customize behavior via command-line options.
44
44
  |`--github-token`|GitHub token|✓|string|-|
45
45
  |`--log-level`|Log level to show|-|`info`, `debug`|`info`|
46
46
  |`--package-manager`|Package manager of your project|-|`npm`, `yarn`|`npm`|
47
+ |`--pull-request-title`|Pull request title template|-|string|`chore(deps): {{updateType}} update {{{packageName}}} to v{{newVersion}}`|
47
48
 
48
49
  ### Templates
49
50
 
@@ -60,3 +61,8 @@ These variables are available:
60
61
  - `currentVersion`
61
62
  - `newVersion`
62
63
  - `updateType`
64
+ - `--pull-request-title`
65
+ - `packageName`
66
+ - `currentVersion`
67
+ - `newVersion`
68
+ - `updateType`
package/dist/app.js CHANGED
@@ -3,6 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.app = void 0;
4
4
  exports.app = {
5
5
  name: 'npm-update-package',
6
- version: '0.5.0',
6
+ version: '0.7.0',
7
7
  web: 'https://github.com/npm-update-package/npm-update-package'
8
8
  };
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");
@@ -2,17 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PullRequestCreator = void 0;
4
4
  const createPullRequestBody_1 = require("./createPullRequestBody");
5
- const createPullRequestTitle_1 = require("./createPullRequestTitle");
6
5
  // TODO: add test
7
6
  class PullRequestCreator {
8
- constructor({ github, gitRepo, githubRepo, logger }) {
7
+ constructor({ github, gitRepo, githubRepo, pullRequestTitleCreator, logger }) {
9
8
  this.github = github;
10
9
  this.gitRepo = gitRepo;
11
10
  this.githubRepo = githubRepo;
11
+ this.pullRequestTitleCreator = pullRequestTitleCreator;
12
12
  this.logger = logger;
13
13
  }
14
14
  async create({ outdatedPackage, branchName }) {
15
- const title = (0, createPullRequestTitle_1.createPullRequestTitle)(outdatedPackage);
15
+ const title = this.pullRequestTitleCreator.create(outdatedPackage);
16
16
  this.logger.debug(`title=${title}`);
17
17
  const body = (0, createPullRequestBody_1.createPullRequestBody)(outdatedPackage);
18
18
  this.logger.debug(`body=${body}`);
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PullRequestTitleCreator = void 0;
4
+ const mustache_1 = require("mustache");
5
+ class PullRequestTitleCreator {
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.PullRequestTitleCreator = PullRequestTitleCreator;
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RemoteBranchExistenceChecker = exports.PullRequestCreator = exports.GitHub = exports.createGitHub = void 0;
3
+ exports.RemoteBranchExistenceChecker = exports.PullRequestTitleCreator = exports.PullRequestCreator = exports.GitHub = exports.createGitHub = void 0;
4
4
  var createGitHub_1 = require("./createGitHub");
5
5
  Object.defineProperty(exports, "createGitHub", { enumerable: true, get: function () { return createGitHub_1.createGitHub; } });
6
6
  var GitHub_1 = require("./GitHub");
7
7
  Object.defineProperty(exports, "GitHub", { enumerable: true, get: function () { return GitHub_1.GitHub; } });
8
8
  var PullRequestCreator_1 = require("./PullRequestCreator");
9
9
  Object.defineProperty(exports, "PullRequestCreator", { enumerable: true, get: function () { return PullRequestCreator_1.PullRequestCreator; } });
10
+ var PullRequestTitleCreator_1 = require("./PullRequestTitleCreator");
11
+ Object.defineProperty(exports, "PullRequestTitleCreator", { enumerable: true, get: function () { return PullRequestTitleCreator_1.PullRequestTitleCreator; } });
10
12
  var RemoteBranchExistenceChecker_1 = require("./RemoteBranchExistenceChecker");
11
13
  Object.defineProperty(exports, "RemoteBranchExistenceChecker", { enumerable: true, get: function () { return RemoteBranchExistenceChecker_1.RemoteBranchExistenceChecker; } });
File without changes
@@ -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,19 +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
- const commit_message_creator_1 = require("./commit-message-creator");
6
4
  const git_1 = require("./git");
7
5
  const github_1 = require("./github");
8
6
  const ncu_1 = require("./ncu");
9
- const outdated_package_processor_1 = require("./outdated-package-processor");
10
- const outdated_packages_processor_1 = require("./outdated-packages-processor");
7
+ const package_json_1 = require("./package-json");
11
8
  const package_manager_1 = require("./package-manager");
9
+ const processors_1 = require("./processors");
12
10
  const terminal_1 = require("./terminal");
13
11
  // TODO: add test
14
12
  const main = async ({ options, logger }) => {
15
13
  logger.debug(`options=${JSON.stringify(options)}`);
16
- const ncu = new ncu_1.Ncu();
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);
17
20
  const outdatedPackages = await ncu.check();
18
21
  logger.debug(`outdatedPackages=${JSON.stringify(outdatedPackages)}`);
19
22
  if (outdatedPackages.length === 0) {
@@ -51,15 +54,17 @@ const main = async ({ options, logger }) => {
51
54
  terminal,
52
55
  packageManager: options.packageManager
53
56
  });
57
+ const pullRequestTitleCreator = new github_1.PullRequestTitleCreator(options.pullRequestTitle);
54
58
  const pullRequestCreator = new github_1.PullRequestCreator({
55
59
  github,
56
60
  gitRepo,
57
61
  githubRepo,
62
+ pullRequestTitleCreator,
58
63
  logger
59
64
  });
60
- const branchNameCreator = new branch_name_creator_1.BranchNameCreator(options.branchName);
61
- const commitMessageCreator = new commit_message_creator_1.CommitMessageCreator(options.commitMessage);
62
- const outdatedPackageProcessor = new outdated_package_processor_1.OutdatedPackageProcessor({
65
+ const branchNameCreator = new git_1.BranchNameCreator(options.branchName);
66
+ const commitMessageCreator = new git_1.CommitMessageCreator(options.commitMessage);
67
+ const outdatedPackageProcessor = new processors_1.OutdatedPackageProcessor({
63
68
  committer,
64
69
  git,
65
70
  ncu,
@@ -70,7 +75,7 @@ const main = async ({ options, logger }) => {
70
75
  branchNameCreator,
71
76
  commitMessageCreator
72
77
  });
73
- const outdatedPackagesProcessor = new outdated_packages_processor_1.OutdatedPackagesProcessor({
78
+ const outdatedPackagesProcessor = new processors_1.OutdatedPackagesProcessor({
74
79
  outdatedPackageProcessor,
75
80
  logger
76
81
  });
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 (0, read_package_json_1.readPackageJson)('./package.json');
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 values_1 = require("../values");
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: values_1.PackageVersion.of(this.currentDependencies[name]),
16
- newVersion: values_1.PackageVersion.of(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; } });
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.toUpdateType = void 0;
4
- const enums_1 = require("../enums");
4
+ const UpdateType_1 = require("./UpdateType");
5
5
  const toUpdateType = (currentVersion, newVersion) => {
6
6
  if (currentVersion.major !== newVersion.major) {
7
- return enums_1.UpdateType.Major;
7
+ return UpdateType_1.UpdateType.Major;
8
8
  }
9
9
  if (currentVersion.minor !== newVersion.minor) {
10
- return enums_1.UpdateType.Minor;
10
+ return UpdateType_1.UpdateType.Minor;
11
11
  }
12
12
  if (currentVersion.patch !== newVersion.patch) {
13
- return enums_1.UpdateType.Patch;
13
+ return UpdateType_1.UpdateType.Patch;
14
14
  }
15
15
  throw new Error('Both versions are same.');
16
16
  };
@@ -1,18 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isOptions = exports.Options = void 0;
3
+ exports.isOptions = void 0;
4
4
  const io_ts_1 = require("io-ts");
5
- exports.Options = (0, io_ts_1.intersection)([
5
+ const logger_1 = require("../logger");
6
+ const package_manager_1 = require("../package-manager");
7
+ const Options = (0, io_ts_1.intersection)([
6
8
  (0, io_ts_1.type)({
7
9
  branchName: io_ts_1.string,
8
10
  commitMessage: io_ts_1.string,
9
11
  githubToken: io_ts_1.string,
10
- logLevel: (0, io_ts_1.union)([(0, io_ts_1.literal)('info'), (0, io_ts_1.literal)('debug')]),
11
- packageManager: (0, io_ts_1.union)([(0, io_ts_1.literal)('npm'), (0, io_ts_1.literal)('yarn')])
12
+ logLevel: (0, io_ts_1.union)([(0, io_ts_1.literal)(logger_1.LogLevel.Info), (0, io_ts_1.literal)(logger_1.LogLevel.Debug)]),
13
+ packageManager: (0, io_ts_1.union)([(0, io_ts_1.literal)(package_manager_1.PackageManagerName.Npm), (0, io_ts_1.literal)(package_manager_1.PackageManagerName.Yarn)]),
14
+ pullRequestTitle: io_ts_1.string
12
15
  }),
13
16
  (0, io_ts_1.partial)({
14
17
  gitUserEmail: io_ts_1.string,
15
18
  gitUserName: io_ts_1.string
16
19
  })
17
20
  ]);
18
- exports.isOptions = exports.Options.is;
21
+ exports.isOptions = Options.is;
@@ -3,7 +3,8 @@ 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 enums_1 = require("../enums");
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 = () => {
@@ -16,16 +17,17 @@ const initOptions = () => {
16
17
  .requiredOption('--github-token <value>', 'GitHub token')
17
18
  .addOption(new commander_1.Option('--log-level <value>', 'Log level to show')
18
19
  .choices([
19
- enums_1.LogLevel.Info,
20
- enums_1.LogLevel.Debug
20
+ logger_1.LogLevel.Info,
21
+ logger_1.LogLevel.Debug
21
22
  ])
22
- .default(enums_1.LogLevel.Info))
23
+ .default(logger_1.LogLevel.Info))
23
24
  .addOption(new commander_1.Option('--package-manager <value>', 'Package manager of your project')
24
25
  .choices([
25
- enums_1.PackageManagerName.Npm,
26
- enums_1.PackageManagerName.Yarn
26
+ package_manager_1.PackageManagerName.Npm,
27
+ package_manager_1.PackageManagerName.Yarn
27
28
  ])
28
- .default(enums_1.PackageManagerName.Npm));
29
+ .default(package_manager_1.PackageManagerName.Npm))
30
+ .option('--pull-request-title <value>', 'Pull request title template', 'chore(deps): {{updateType}} update {{{packageName}}} to v{{newVersion}}');
29
31
  commander_1.program.parse(process.argv);
30
32
  const options = commander_1.program.opts();
31
33
  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 = exports.Package = void 0;
3
+ exports.isPackage = void 0;
4
4
  const io_ts_1 = require("io-ts");
5
5
  const PackageDependencies_1 = require("./PackageDependencies");
6
- exports.Package = (0, io_ts_1.intersection)([
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 = exports.Package.is;
18
+ exports.isPackage = Package.is;
@@ -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; } });
@@ -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; } });
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.5.0",
3
+ "version": "0.7.0",
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/start.ts",
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
@@ -1,5 +1,5 @@
1
1
  export const app = {
2
2
  name: 'npm-update-package',
3
- version: '0.5.0',
3
+ version: '0.7.0',
4
4
  web: 'https://github.com/npm-update-package/npm-update-package'
5
5
  } as const
@@ -1,4 +1,4 @@
1
- import { PackageVersion } from '../values'
1
+ import { PackageVersion } from '../ncu'
2
2
  import { BranchNameCreator } from './BranchNameCreator'
3
3
 
4
4
  describe('BranchNameCreator', () => {
@@ -1,5 +1,5 @@
1
1
  import { render } from 'mustache'
2
- import type { OutdatedPackage } from '../types'
2
+ import type { OutdatedPackage } from '../ncu'
3
3
 
4
4
  export class BranchNameCreator {
5
5
  constructor (private readonly template: string) {}
@@ -1,4 +1,4 @@
1
- import { PackageVersion } from '../values'
1
+ import { PackageVersion } from '../ncu'
2
2
  import { CommitMessageCreator } from './CommitMessageCreator'
3
3
 
4
4
  describe('CommitMessageCreator', () => {
@@ -1,5 +1,5 @@
1
1
  import { render } from 'mustache'
2
- import type { OutdatedPackage } from '../types'
2
+ import type { OutdatedPackage } from '../ncu'
3
3
 
4
4
  export class CommitMessageCreator {
5
5
  constructor (private readonly template: string) {}
package/src/git/index.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export { BranchNameCreator } from './BranchNameCreator'
2
+ export { CommitMessageCreator } from './CommitMessageCreator'
1
3
  export { Committer } from './Committer'
2
4
  export { Git } from './Git'
3
5
  export type { GitRepository } from './GitRepository'
@@ -1,9 +1,9 @@
1
1
  import type { GitRepository } from '../git'
2
2
  import type { Logger } from '../logger'
3
- import type { OutdatedPackage } from '../types'
3
+ import type { OutdatedPackage } from '../ncu'
4
4
  import { createPullRequestBody } from './createPullRequestBody'
5
- import { createPullRequestTitle } from './createPullRequestTitle'
6
5
  import type { GitHub } from './GitHub'
6
+ import type { PullRequestTitleCreator } from './PullRequestTitleCreator'
7
7
  import type { Repository as GitHubRepository } from './Repository'
8
8
 
9
9
  // TODO: add test
@@ -11,22 +11,26 @@ export class PullRequestCreator {
11
11
  private readonly github: GitHub
12
12
  private readonly gitRepo: GitRepository
13
13
  private readonly githubRepo: GitHubRepository
14
+ private readonly pullRequestTitleCreator: PullRequestTitleCreator
14
15
  private readonly logger: Logger
15
16
 
16
17
  constructor ({
17
18
  github,
18
19
  gitRepo,
19
20
  githubRepo,
21
+ pullRequestTitleCreator,
20
22
  logger
21
23
  }: {
22
24
  github: GitHub
23
25
  gitRepo: GitRepository
24
26
  githubRepo: GitHubRepository
27
+ pullRequestTitleCreator: PullRequestTitleCreator
25
28
  logger: Logger
26
29
  }) {
27
30
  this.github = github
28
31
  this.gitRepo = gitRepo
29
32
  this.githubRepo = githubRepo
33
+ this.pullRequestTitleCreator = pullRequestTitleCreator
30
34
  this.logger = logger
31
35
  }
32
36
 
@@ -37,7 +41,7 @@ export class PullRequestCreator {
37
41
  outdatedPackage: OutdatedPackage
38
42
  branchName: string
39
43
  }): Promise<void> {
40
- const title = createPullRequestTitle(outdatedPackage)
44
+ const title = this.pullRequestTitleCreator.create(outdatedPackage)
41
45
  this.logger.debug(`title=${title}`)
42
46
 
43
47
  const body = createPullRequestBody(outdatedPackage)
@@ -0,0 +1,17 @@
1
+ import { PackageVersion } from '../ncu'
2
+ import { PullRequestTitleCreator } from './PullRequestTitleCreator'
3
+
4
+ describe('PullRequestTitleCreator', () => {
5
+ describe('create', () => {
6
+ it('returns commit message', () => {
7
+ const pullRequestTitleCreator = new PullRequestTitleCreator('chore(deps): {{updateType}} update {{{packageName}}} from {{currentVersion}} to v{{newVersion}}')
8
+ const actual = pullRequestTitleCreator.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 PullRequestTitleCreator {
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
+ }
@@ -1,5 +1,7 @@
1
- import { UpdateType } from '../enums'
2
- import { PackageVersion } from '../values'
1
+ import {
2
+ PackageVersion,
3
+ UpdateType
4
+ } from '../ncu'
3
5
  import { createPullRequestBody } from './createPullRequestBody'
4
6
 
5
7
  describe('createPullRequestBody', () => {
@@ -1,5 +1,5 @@
1
1
  import { app } from '../app'
2
- import type { OutdatedPackage } from '../types'
2
+ import type { OutdatedPackage } from '../ncu'
3
3
 
4
4
  export const createPullRequestBody = (outdatedPackage: OutdatedPackage): string => {
5
5
  const packageName = outdatedPackage.name
@@ -3,5 +3,6 @@ export { createGitHub } from './createGitHub'
3
3
  export { GitHub } from './GitHub'
4
4
  export type { PullRequest } from './PullRequest'
5
5
  export { PullRequestCreator } from './PullRequestCreator'
6
+ export { PullRequestTitleCreator } from './PullRequestTitleCreator'
6
7
  export { RemoteBranchExistenceChecker } from './RemoteBranchExistenceChecker'
7
8
  export type { Repository } from './Repository'
File without changes