npm-update-package 0.2.1 → 0.5.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.
Files changed (90) hide show
  1. package/{FUNDING.yml → .github/FUNDING.yml} +0 -0
  2. package/README.md +18 -0
  3. package/dist/app.js +1 -1
  4. package/dist/git/BranchNameCreator.js +22 -0
  5. package/dist/git/CommitMessageCreator.js +22 -0
  6. package/dist/git/index.js +5 -1
  7. package/dist/{enums → logger}/LogLevel.js +0 -0
  8. package/dist/logger/index.js +4 -1
  9. package/dist/main.js +15 -6
  10. package/dist/ncu/Ncu.js +4 -2
  11. package/dist/ncu/NcuOutdatedPackagesConverter.js +3 -3
  12. package/dist/{types → ncu}/OutdatedPackage.js +0 -0
  13. package/dist/{values → ncu}/PackageVersion.js +0 -0
  14. package/dist/{enums → ncu}/UpdateType.js +0 -0
  15. package/dist/ncu/index.js +6 -1
  16. package/dist/ncu/toUpdateType.js +4 -4
  17. package/dist/options/Options.js +5 -3
  18. package/dist/options/initOptions.js +14 -4
  19. package/dist/{read-package-json → package-json}/Package.js +3 -3
  20. package/dist/{read-package-json → package-json}/PackageDependencies.js +0 -0
  21. package/dist/package-json/PackageJsonParser.js +21 -0
  22. package/dist/package-json/PackageJsonReader.js +20 -0
  23. package/dist/package-json/index.js +7 -0
  24. package/dist/{enums → package-manager}/PackageManagerName.js +0 -0
  25. package/dist/package-manager/index.js +4 -1
  26. package/dist/{outdated-package-processor → processors}/OutdatedPackageProcessor.js +5 -5
  27. package/dist/{outdated-packages-processor → processors}/OutdatedPackagesProcessor.js +0 -0
  28. package/dist/{types → processors}/Result.js +0 -0
  29. package/dist/{outdated-packages-processor → processors}/index.js +3 -1
  30. package/package.json +3 -1
  31. package/src/app.ts +1 -1
  32. package/src/git/BranchNameCreator.test.ts +17 -0
  33. package/src/git/BranchNameCreator.ts +19 -0
  34. package/src/git/CommitMessageCreator.test.ts +17 -0
  35. package/src/git/CommitMessageCreator.ts +19 -0
  36. package/src/git/index.ts +2 -0
  37. package/src/github/PullRequestCreator.ts +1 -1
  38. package/src/github/createPullRequestBody.test.ts +4 -2
  39. package/src/github/createPullRequestBody.ts +1 -1
  40. package/src/github/createPullRequestTitle.test.ts +1 -2
  41. package/src/github/createPullRequestTitle.ts +1 -1
  42. package/src/{enums → logger}/LogLevel.ts +0 -0
  43. package/src/logger/createLogger.ts +1 -1
  44. package/src/logger/index.ts +4 -0
  45. package/src/main.ts +21 -4
  46. package/src/ncu/Ncu.ts +5 -3
  47. package/src/ncu/NcuOutdatedPackagesConverter.ts +3 -3
  48. package/src/{types → ncu}/OutdatedPackage.ts +2 -2
  49. package/src/{values → ncu}/PackageVersion.test.ts +0 -0
  50. package/src/{values → ncu}/PackageVersion.ts +0 -0
  51. package/src/{enums → ncu}/UpdateType.ts +0 -0
  52. package/src/ncu/index.ts +6 -0
  53. package/src/ncu/toUpdateType.test.ts +2 -2
  54. package/src/ncu/toUpdateType.ts +2 -2
  55. package/src/options/Options.ts +3 -1
  56. package/src/options/initOptions.ts +14 -4
  57. package/src/{read-package-json → package-json}/Package.ts +1 -1
  58. package/src/{read-package-json → package-json}/PackageDependencies.ts +0 -0
  59. package/src/package-json/PackageJsonParser.ts +19 -0
  60. package/src/package-json/PackageJsonReader.ts +27 -0
  61. package/src/package-json/index.ts +3 -0
  62. package/src/{enums → package-manager}/PackageManagerName.ts +0 -0
  63. package/src/package-manager/createPackageManager.ts +1 -1
  64. package/src/package-manager/index.ts +4 -0
  65. package/src/{outdated-package-processor → processors}/OutdatedPackageProcessor.ts +18 -10
  66. package/src/{outdated-packages-processor → processors}/OutdatedPackagesProcessor.ts +3 -5
  67. package/src/{types → processors}/Result.ts +1 -1
  68. package/src/{outdated-packages-processor → processors}/index.ts +1 -0
  69. package/dist/enums/index.js +0 -12
  70. package/dist/outdated-package-processor/createBranchName.js +0 -9
  71. package/dist/outdated-package-processor/createCommitMessage.js +0 -10
  72. package/dist/outdated-package-processor/index.js +0 -5
  73. package/dist/read-package-json/index.js +0 -5
  74. package/dist/read-package-json/parsePackageJson.js +0 -15
  75. package/dist/read-package-json/readFile.js +0 -12
  76. package/dist/read-package-json/readPackageJson.js +0 -11
  77. package/dist/types/index.js +0 -2
  78. package/dist/values/index.js +0 -5
  79. package/src/enums/index.ts +0 -12
  80. package/src/outdated-package-processor/createBranchName.test.ts +0 -14
  81. package/src/outdated-package-processor/createBranchName.ts +0 -7
  82. package/src/outdated-package-processor/createCommitMessage.test.ts +0 -43
  83. package/src/outdated-package-processor/createCommitMessage.ts +0 -8
  84. package/src/outdated-package-processor/index.ts +0 -1
  85. package/src/read-package-json/index.ts +0 -2
  86. package/src/read-package-json/parsePackageJson.ts +0 -13
  87. package/src/read-package-json/readFile.ts +0 -6
  88. package/src/read-package-json/readPackageJson.ts +0 -9
  89. package/src/types/index.ts +0 -2
  90. package/src/values/index.ts +0 -1
File without changes
package/README.md CHANGED
@@ -37,8 +37,26 @@ You can customize behavior via command-line options.
37
37
 
38
38
  |Option|Description|Required|Value|Default|
39
39
  |---|---|---|---|---|
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}}`|
40
42
  |`--git-user-email`|User email of commit|-|string|-|
41
43
  |`--git-user-name`|User name of commit|-|string|-|
42
44
  |`--github-token`|GitHub token|✓|string|-|
43
45
  |`--log-level`|Log level to show|-|`info`, `debug`|`info`|
44
46
  |`--package-manager`|Package manager of your project|-|`npm`, `yarn`|`npm`|
47
+
48
+ ### Templates
49
+
50
+ npm-update-package is using [mustache](https://www.npmjs.com/package/mustache) for generating string from templates.
51
+ These variables are available:
52
+
53
+ - `--branch-name`
54
+ - `packageName`
55
+ - `currentVersion`
56
+ - `newVersion`
57
+ - `updateType`
58
+ - `--commit-message`
59
+ - `packageName`
60
+ - `currentVersion`
61
+ - `newVersion`
62
+ - `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.2.1',
6
+ version: '0.5.1',
7
7
  web: 'https://github.com/npm-update-package/npm-update-package'
8
8
  };
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BranchNameCreator = void 0;
4
+ const mustache_1 = require("mustache");
5
+ class BranchNameCreator {
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.BranchNameCreator = BranchNameCreator;
@@ -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
@@ -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
@@ -4,14 +4,19 @@ exports.main = void 0;
4
4
  const git_1 = require("./git");
5
5
  const github_1 = require("./github");
6
6
  const ncu_1 = require("./ncu");
7
- const outdated_package_processor_1 = require("./outdated-package-processor");
8
- const outdated_packages_processor_1 = require("./outdated-packages-processor");
7
+ const package_json_1 = require("./package-json");
9
8
  const package_manager_1 = require("./package-manager");
9
+ const processors_1 = require("./processors");
10
10
  const terminal_1 = require("./terminal");
11
11
  // TODO: add test
12
12
  const main = async ({ options, logger }) => {
13
13
  logger.debug(`options=${JSON.stringify(options)}`);
14
- 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);
15
20
  const outdatedPackages = await ncu.check();
16
21
  logger.debug(`outdatedPackages=${JSON.stringify(outdatedPackages)}`);
17
22
  if (outdatedPackages.length === 0) {
@@ -55,16 +60,20 @@ const main = async ({ options, logger }) => {
55
60
  githubRepo,
56
61
  logger
57
62
  });
58
- const outdatedPackageProcessor = new outdated_package_processor_1.OutdatedPackageProcessor({
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({
59
66
  committer,
60
67
  git,
61
68
  ncu,
62
69
  packageManager,
63
70
  pullRequestCreator,
64
71
  remoteBranchExistenceChecker,
65
- logger
72
+ logger,
73
+ branchNameCreator,
74
+ commitMessageCreator
66
75
  });
67
- const outdatedPackagesProcessor = new outdated_packages_processor_1.OutdatedPackagesProcessor({
76
+ const outdatedPackagesProcessor = new processors_1.OutdatedPackagesProcessor({
68
77
  outdatedPackageProcessor,
69
78
  logger
70
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 (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,9 +1,11 @@
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 Options = (0, io_ts_1.intersection)([
6
6
  (0, io_ts_1.type)({
7
+ branchName: io_ts_1.string,
8
+ commitMessage: io_ts_1.string,
7
9
  githubToken: io_ts_1.string,
8
10
  logLevel: (0, io_ts_1.union)([(0, io_ts_1.literal)('info'), (0, io_ts_1.literal)('debug')]),
9
11
  packageManager: (0, io_ts_1.union)([(0, io_ts_1.literal)('npm'), (0, io_ts_1.literal)('yarn')])
@@ -13,4 +15,4 @@ exports.Options = (0, io_ts_1.intersection)([
13
15
  gitUserName: io_ts_1.string
14
16
  })
15
17
  ]);
16
- exports.isOptions = exports.Options.is;
18
+ exports.isOptions = Options.is;
@@ -3,20 +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 logger_1 = require("../logger");
7
+ const package_manager_1 = require("../package-manager");
6
8
  const Options_1 = require("./Options");
7
9
  // TODO: add test
8
10
  const initOptions = () => {
9
11
  commander_1.program
10
12
  .version(app_1.app.version)
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}}')
11
15
  .option('--git-user-email <value>', 'User email of commit')
12
16
  .option('--git-user-name <value>', 'User name of commit')
13
17
  .requiredOption('--github-token <value>', 'GitHub token')
14
18
  .addOption(new commander_1.Option('--log-level <value>', 'Log level to show')
15
- .choices(['info', 'debug'])
16
- .default('info'))
19
+ .choices([
20
+ logger_1.LogLevel.Info,
21
+ logger_1.LogLevel.Debug
22
+ ])
23
+ .default(logger_1.LogLevel.Info))
17
24
  .addOption(new commander_1.Option('--package-manager <value>', 'Package manager of your project')
18
- .choices(['npm', 'yarn'])
19
- .default('npm'));
25
+ .choices([
26
+ package_manager_1.PackageManagerName.Npm,
27
+ package_manager_1.PackageManagerName.Yarn
28
+ ])
29
+ .default(package_manager_1.PackageManagerName.Npm));
20
30
  commander_1.program.parse(process.argv);
21
31
  const options = commander_1.program.opts();
22
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 = 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; } });
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OutdatedPackageProcessor = void 0;
4
- const createBranchName_1 = require("./createBranchName");
5
- const createCommitMessage_1 = require("./createCommitMessage");
6
4
  // TODO: add test
7
5
  class OutdatedPackageProcessor {
8
- constructor({ committer, git, ncu, packageManager, pullRequestCreator, remoteBranchExistenceChecker, logger }) {
6
+ constructor({ committer, git, ncu, packageManager, pullRequestCreator, remoteBranchExistenceChecker, logger, branchNameCreator, commitMessageCreator }) {
9
7
  this.committer = committer;
10
8
  this.git = git;
11
9
  this.ncu = ncu;
@@ -13,12 +11,14 @@ class OutdatedPackageProcessor {
13
11
  this.pullRequestCreator = pullRequestCreator;
14
12
  this.remoteBranchExistenceChecker = remoteBranchExistenceChecker;
15
13
  this.logger = logger;
14
+ this.branchNameCreator = branchNameCreator;
15
+ this.commitMessageCreator = commitMessageCreator;
16
16
  }
17
17
  /**
18
18
  * Don't run in parallel because it includes file operations.
19
19
  */
20
20
  async process(outdatedPackage) {
21
- const branchName = (0, createBranchName_1.createBranchName)(outdatedPackage);
21
+ const branchName = this.branchNameCreator.create(outdatedPackage);
22
22
  this.logger.debug(`branchName=${branchName}`);
23
23
  if (this.remoteBranchExistenceChecker.check(branchName)) {
24
24
  this.logger.info(`Skip ${outdatedPackage.name} because ${branchName} branch already exists on remote.`);
@@ -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 = (0, createCommitMessage_1.createCommitMessage)(outdatedPackage);
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
@@ -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.2.1",
3
+ "version": "0.5.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",
@@ -19,6 +19,7 @@
19
19
  "fp-ts": "2.11.5",
20
20
  "io-ts": "2.2.16",
21
21
  "log4js": "6.3.0",
22
+ "mustache": "4.1.0",
22
23
  "npm-check-updates": "12.0.2",
23
24
  "parse-github-url": "1.0.2",
24
25
  "semver": "7.3.5"
@@ -27,6 +28,7 @@
27
28
  "@jest/types": "27.0.6",
28
29
  "@tsconfig/node12": "1.0.9",
29
30
  "@types/jest": "27.0.3",
31
+ "@types/mustache": "4.1.2",
30
32
  "@types/node": "12.20.15",
31
33
  "@types/parse-github-url": "1.0.0",
32
34
  "@types/semver": "7.3.9",
package/src/app.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export const app = {
2
2
  name: 'npm-update-package',
3
- version: '0.2.1',
3
+ version: '0.5.1',
4
4
  web: 'https://github.com/npm-update-package/npm-update-package'
5
5
  } as const
@@ -0,0 +1,17 @@
1
+ import { PackageVersion } from '../ncu'
2
+ import { BranchNameCreator } from './BranchNameCreator'
3
+
4
+ describe('BranchNameCreator', () => {
5
+ describe('create', () => {
6
+ it('returns branch name', () => {
7
+ const branchNameCreator = new BranchNameCreator('npm-update-package/{{{packageName}}}/{{updateType}}/{{currentVersion}}/{{newVersion}}')
8
+ const actual = branchNameCreator.create({
9
+ name: '@typescript-eslint/eslint-plugin',
10
+ currentVersion: PackageVersion.of('1.0.0'),
11
+ newVersion: PackageVersion.of('1.2.3'),
12
+ type: 'major'
13
+ })
14
+ expect(actual).toBe('npm-update-package/@typescript-eslint/eslint-plugin/major/1.0.0/1.2.3')
15
+ })
16
+ })
17
+ })
@@ -0,0 +1,19 @@
1
+ import { render } from 'mustache'
2
+ import type { OutdatedPackage } from '../ncu'
3
+
4
+ export class BranchNameCreator {
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
+ }
@@ -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,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,6 +1,6 @@
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
5
  import { createPullRequestTitle } from './createPullRequestTitle'
6
6
  import type { GitHub } from './GitHub'
@@ -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
@@ -1,5 +1,4 @@
1
- import { UpdateType } from '../enums'
2
- import { PackageVersion } from '../values'
1
+ import { UpdateType, PackageVersion } from '../ncu'
3
2
  import { createPullRequestTitle } from './createPullRequestTitle'
4
3
 
5
4
  describe('createPullRequestTitle', () => {
@@ -1,4 +1,4 @@
1
- import type { OutdatedPackage } from '../types'
1
+ import type { OutdatedPackage } from '../ncu'
2
2
 
3
3
  export const createPullRequestTitle = (outdatedPackage: OutdatedPackage): string => {
4
4
  const packageName = outdatedPackage.name
File without changes
@@ -1,6 +1,6 @@
1
1
  import { getLogger } from 'log4js'
2
- import type { LogLevel } from '../enums'
3
2
  import type { Logger } from './Logger'
3
+ import type { LogLevel } from './LogLevel'
4
4
 
5
5
  // TODO: add test
6
6
  export const createLogger = (logLevel: LogLevel): Logger => {
@@ -1,2 +1,6 @@
1
1
  export { createLogger } from './createLogger'
2
2
  export type { Logger } from './Logger'
3
+ export {
4
+ isLogLevel,
5
+ LogLevel
6
+ } from './LogLevel'