npm-update-package 0.6.1 → 0.9.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 (88) hide show
  1. package/README.md +102 -16
  2. package/dist/app.js +1 -1
  3. package/dist/github/PullRequestBodyCreator.js +29 -0
  4. package/dist/github/PullRequestCreator.js +5 -5
  5. package/dist/github/PullRequestTitleCreator.js +22 -0
  6. package/dist/github/RemoteBranchExistenceChecker.js +0 -1
  7. package/dist/github/index.js +5 -1
  8. package/dist/main.js +4 -0
  9. package/dist/options/Options.js +6 -2
  10. package/dist/options/initOptions.js +10 -1
  11. package/package.json +11 -7
  12. package/.eslintignore +0 -3
  13. package/.eslintrc.js +0 -23
  14. package/.github/FUNDING.yml +0 -2
  15. package/.github/renovate.json +0 -15
  16. package/.github/workflows/eslint.yml +0 -14
  17. package/.github/workflows/test.yml +0 -19
  18. package/.husky/pre-commit +0 -4
  19. package/.nvmrc +0 -1
  20. package/dist/github/createPullRequestBody.js +0 -19
  21. package/dist/github/createPullRequestTitle.js +0 -10
  22. package/jest.config.ts +0 -11
  23. package/lint-staged.config.js +0 -4
  24. package/npm-update-package.code-workspace +0 -8
  25. package/src/app.ts +0 -5
  26. package/src/bin.ts +0 -20
  27. package/src/git/BranchNameCreator.test.ts +0 -17
  28. package/src/git/BranchNameCreator.ts +0 -19
  29. package/src/git/CommitMessageCreator.test.ts +0 -17
  30. package/src/git/CommitMessageCreator.ts +0 -19
  31. package/src/git/Committer.ts +0 -49
  32. package/src/git/Git.ts +0 -55
  33. package/src/git/GitRepository.test.ts +0 -61
  34. package/src/git/GitRepository.ts +0 -57
  35. package/src/git/index.ts +0 -5
  36. package/src/github/Branch.ts +0 -4
  37. package/src/github/GitHub.ts +0 -27
  38. package/src/github/PullRequest.ts +0 -3
  39. package/src/github/PullRequestCreator.ts +0 -57
  40. package/src/github/RemoteBranchExistenceChecker.ts +0 -15
  41. package/src/github/Repository.ts +0 -3
  42. package/src/github/createGitHub.ts +0 -18
  43. package/src/github/createOctokit.ts +0 -28
  44. package/src/github/createPullRequestBody.test.ts +0 -64
  45. package/src/github/createPullRequestBody.ts +0 -17
  46. package/src/github/createPullRequestTitle.test.ts +0 -42
  47. package/src/github/createPullRequestTitle.ts +0 -8
  48. package/src/github/index.ts +0 -7
  49. package/src/logger/LogLevel.ts +0 -8
  50. package/src/logger/Logger.ts +0 -1
  51. package/src/logger/createLogger.ts +0 -10
  52. package/src/logger/index.ts +0 -6
  53. package/src/main.ts +0 -122
  54. package/src/ncu/Ncu.ts +0 -43
  55. package/src/ncu/NcuOutdatedPackages.ts +0 -6
  56. package/src/ncu/NcuOutdatedPackagesConverter.ts +0 -25
  57. package/src/ncu/OutdatedPackage.ts +0 -9
  58. package/src/ncu/PackageVersion.test.ts +0 -25
  59. package/src/ncu/PackageVersion.ts +0 -40
  60. package/src/ncu/UpdateType.ts +0 -9
  61. package/src/ncu/index.ts +0 -7
  62. package/src/ncu/isNcuOutdatedPackages.ts +0 -6
  63. package/src/ncu/toUpdateType.test.ts +0 -21
  64. package/src/ncu/toUpdateType.ts +0 -18
  65. package/src/options/Options.ts +0 -26
  66. package/src/options/index.ts +0 -2
  67. package/src/options/initOptions.ts +0 -44
  68. package/src/package-json/Package.ts +0 -24
  69. package/src/package-json/PackageDependencies.ts +0 -10
  70. package/src/package-json/PackageJsonParser.ts +0 -19
  71. package/src/package-json/PackageJsonReader.ts +0 -27
  72. package/src/package-json/index.ts +0 -3
  73. package/src/package-manager/Npm.ts +0 -19
  74. package/src/package-manager/PackageManager.ts +0 -4
  75. package/src/package-manager/PackageManagerName.ts +0 -8
  76. package/src/package-manager/Yarn.ts +0 -19
  77. package/src/package-manager/createPackageManager.ts +0 -21
  78. package/src/package-manager/index.ts +0 -8
  79. package/src/processors/OutdatedPackageProcessor.ts +0 -109
  80. package/src/processors/OutdatedPackagesProcessor.ts +0 -32
  81. package/src/processors/Result.ts +0 -7
  82. package/src/processors/index.ts +0 -2
  83. package/src/terminal/Terminal.ts +0 -30
  84. package/src/terminal/index.ts +0 -1
  85. package/src/terminal/isExecaReturnValue.ts +0 -30
  86. package/tsconfig.base.json +0 -3
  87. package/tsconfig.build.json +0 -13
  88. package/tsconfig.json +0 -9
package/src/ncu/Ncu.ts DELETED
@@ -1,43 +0,0 @@
1
- import { run } from 'npm-check-updates'
2
- import type { Options } from 'npm-check-updates/build/src/types'
3
- import type { OutdatedPackage } from '../ncu'
4
- import type { PackageJsonReader } from '../package-json'
5
- import { isNcuOutdatedPackages } from './isNcuOutdatedPackages'
6
- import { NcuOutdatedPackagesConverter } from './NcuOutdatedPackagesConverter'
7
-
8
- // TODO: add test
9
- export class Ncu {
10
- constructor (private readonly packageJsonReader: PackageJsonReader) {}
11
-
12
- async check (): Promise<OutdatedPackage[]> {
13
- return await this.run({
14
- jsonUpgraded: true
15
- })
16
- }
17
-
18
- async update (outdatedPackage: OutdatedPackage): Promise<OutdatedPackage[]> {
19
- return await this.run({
20
- jsonUpgraded: true,
21
- filter: outdatedPackage.name,
22
- upgrade: true
23
- })
24
- }
25
-
26
- private async run (options: Options): Promise<OutdatedPackage[]> {
27
- const pkg = await this.packageJsonReader.read('./package.json')
28
- const currentDependencies = {
29
- ...pkg.dependencies,
30
- ...pkg.devDependencies,
31
- ...pkg.peerDependencies,
32
- ...pkg.optionalDependencies
33
- }
34
- const result = await run(options)
35
-
36
- if (!isNcuOutdatedPackages(result)) {
37
- throw new Error('result is not NcuOutdatedPackages')
38
- }
39
-
40
- const ncuOutdatedPackagesConverter = new NcuOutdatedPackagesConverter(currentDependencies)
41
- return ncuOutdatedPackagesConverter.toOutdatedPackages(result)
42
- }
43
- }
@@ -1,6 +0,0 @@
1
- import type {
2
- Index,
3
- VersionSpec
4
- } from 'npm-check-updates/build/src/types'
5
-
6
- export type NcuOutdatedPackages = Index<VersionSpec>
@@ -1,25 +0,0 @@
1
- import type { PackageDependencies } from '../package-json'
2
- import type { NcuOutdatedPackages } from './NcuOutdatedPackages'
3
- import type { OutdatedPackage } from './OutdatedPackage'
4
- import { PackageVersion } from './PackageVersion'
5
- import { toUpdateType } from './toUpdateType'
6
-
7
- // TODO: add test
8
- export class NcuOutdatedPackagesConverter {
9
- constructor (private readonly currentDependencies: PackageDependencies) {}
10
-
11
- toOutdatedPackages (outdatedPackages: NcuOutdatedPackages): OutdatedPackage[] {
12
- return Object.entries(outdatedPackages)
13
- .map(([name, newVersion]) => ({
14
- name,
15
- currentVersion: PackageVersion.of(this.currentDependencies[name]),
16
- newVersion: PackageVersion.of(newVersion)
17
- }))
18
- .map(({ name, currentVersion, newVersion }) => ({
19
- name,
20
- currentVersion,
21
- newVersion,
22
- type: toUpdateType(currentVersion, newVersion)
23
- }))
24
- }
25
- }
@@ -1,9 +0,0 @@
1
- import type { PackageVersion } from './PackageVersion'
2
- import type { UpdateType } from './UpdateType'
3
-
4
- export interface OutdatedPackage {
5
- name: string
6
- currentVersion: PackageVersion
7
- newVersion: PackageVersion
8
- type: UpdateType
9
- }
@@ -1,25 +0,0 @@
1
- import { PackageVersion } from './PackageVersion'
2
-
3
- describe('PackageVersion', () => {
4
- describe('of', () => {
5
- describe('if version is valid', () => {
6
- const version = '^1.2.3'
7
-
8
- it('returns new PackageVersion instance', () => {
9
- const packageVersion = PackageVersion.of(version)
10
- expect(packageVersion.version).toBe('1.2.3')
11
- expect(packageVersion.major).toBe(1)
12
- expect(packageVersion.minor).toBe(2)
13
- expect(packageVersion.patch).toBe(3)
14
- })
15
- })
16
-
17
- describe('if version is invalid', () => {
18
- const version = ''
19
-
20
- it('throws error', () => {
21
- expect(() => PackageVersion.of(version)).toThrow(Error)
22
- })
23
- })
24
- })
25
- })
@@ -1,40 +0,0 @@
1
- import { coerce } from 'semver'
2
-
3
- export class PackageVersion {
4
- readonly version: string
5
- readonly major: number
6
- readonly minor: number
7
- readonly patch: number
8
-
9
- private constructor ({
10
- version,
11
- major,
12
- minor,
13
- patch
14
- }: {
15
- version: string
16
- major: number
17
- minor: number
18
- patch: number
19
- }) {
20
- this.version = version
21
- this.major = major
22
- this.minor = minor
23
- this.patch = patch
24
- }
25
-
26
- static of (version: string): PackageVersion {
27
- const semver = coerce(version)
28
-
29
- if (semver === null) {
30
- throw new Error(`Failed to parse package version. version=${version}`)
31
- }
32
-
33
- return new PackageVersion({
34
- version: semver.version,
35
- major: semver.major,
36
- minor: semver.minor,
37
- patch: semver.patch
38
- })
39
- }
40
- }
@@ -1,9 +0,0 @@
1
- export const UpdateType = {
2
- Major: 'major',
3
- Minor: 'minor',
4
- Patch: 'patch'
5
- } as const
6
- // eslint-disable-next-line @typescript-eslint/no-redeclare
7
- export type UpdateType = typeof UpdateType[keyof typeof UpdateType]
8
- const updateTypes = Object.values(UpdateType)
9
- export const isUpdateType = (value: any): value is UpdateType => updateTypes.includes(value)
package/src/ncu/index.ts DELETED
@@ -1,7 +0,0 @@
1
- export { Ncu } from './Ncu'
2
- export type { OutdatedPackage } from './OutdatedPackage'
3
- export { PackageVersion } from './PackageVersion'
4
- export {
5
- isUpdateType,
6
- UpdateType
7
- } from './UpdateType'
@@ -1,6 +0,0 @@
1
- import type { NcuOutdatedPackages } from './NcuOutdatedPackages'
2
-
3
- // TODO: add test
4
- export const isNcuOutdatedPackages = (value: unknown): value is NcuOutdatedPackages => {
5
- return typeof value === 'object' && value !== null && Object.values(value).every(value => typeof value === 'string')
6
- }
@@ -1,21 +0,0 @@
1
- import { PackageVersion } from './PackageVersion'
2
- import { toUpdateType } from './toUpdateType'
3
- import { UpdateType } from './UpdateType'
4
-
5
- describe('toUpdateType', () => {
6
- const currentVersion = PackageVersion.of('1.0.0')
7
-
8
- describe('if both versions are different', () => {
9
- it('returns UpdateType', () => {
10
- expect(toUpdateType(currentVersion, PackageVersion.of('1.0.1'))).toBe(UpdateType.Patch)
11
- expect(toUpdateType(currentVersion, PackageVersion.of('1.1.1'))).toBe(UpdateType.Minor)
12
- expect(toUpdateType(currentVersion, PackageVersion.of('2.1.1'))).toBe(UpdateType.Major)
13
- })
14
- })
15
-
16
- describe('if both versions are same', () => {
17
- it('throws error', () => {
18
- expect(() => toUpdateType(currentVersion, PackageVersion.of('1.0.0'))).toThrow(Error)
19
- })
20
- })
21
- })
@@ -1,18 +0,0 @@
1
- import type { PackageVersion } from './PackageVersion'
2
- import { UpdateType } from './UpdateType'
3
-
4
- export const toUpdateType = (currentVersion: PackageVersion, newVersion: PackageVersion): UpdateType => {
5
- if (currentVersion.major !== newVersion.major) {
6
- return UpdateType.Major
7
- }
8
-
9
- if (currentVersion.minor !== newVersion.minor) {
10
- return UpdateType.Minor
11
- }
12
-
13
- if (currentVersion.patch !== newVersion.patch) {
14
- return UpdateType.Patch
15
- }
16
-
17
- throw new Error('Both versions are same.')
18
- }
@@ -1,26 +0,0 @@
1
- import {
2
- intersection,
3
- literal,
4
- partial,
5
- string,
6
- type,
7
- union
8
- } from 'io-ts'
9
- import type { TypeOf } from 'io-ts'
10
-
11
- const Options = intersection([
12
- type({
13
- branchName: string,
14
- commitMessage: string,
15
- githubToken: string,
16
- logLevel: union([literal('info'), literal('debug')]),
17
- packageManager: union([literal('npm'), literal('yarn')])
18
- }),
19
- partial({
20
- gitUserEmail: string,
21
- gitUserName: string
22
- })
23
- ])
24
- // eslint-disable-next-line @typescript-eslint/no-redeclare
25
- export type Options = TypeOf<typeof Options>
26
- export const isOptions = Options.is
@@ -1,2 +0,0 @@
1
- export { initOptions } from './initOptions'
2
- export type { Options } from './Options'
@@ -1,44 +0,0 @@
1
- import {
2
- Option,
3
- program
4
- } from 'commander'
5
- import { app } from '../app'
6
- import { LogLevel } from '../logger'
7
- import { PackageManagerName } from '../package-manager'
8
- import { isOptions } from './Options'
9
- import type { Options } from './Options'
10
-
11
- // TODO: add test
12
- export const initOptions = (): Options => {
13
- program
14
- .version(app.version)
15
- .option('--branch-name <value>', 'Branch name template', 'npm-update-package/{{{packageName}}}/v{{newVersion}}')
16
- .option('--commit-message <value>', 'Commit message template', 'chore(deps): {{updateType}} update {{{packageName}}} to v{{newVersion}}')
17
- .option('--git-user-email <value>', 'User email of commit')
18
- .option('--git-user-name <value>', 'User name of commit')
19
- .requiredOption('--github-token <value>', 'GitHub token')
20
- .addOption(
21
- new Option('--log-level <value>', 'Log level to show')
22
- .choices([
23
- LogLevel.Info,
24
- LogLevel.Debug
25
- ])
26
- .default(LogLevel.Info)
27
- )
28
- .addOption(
29
- new Option('--package-manager <value>', 'Package manager of your project')
30
- .choices([
31
- PackageManagerName.Npm,
32
- PackageManagerName.Yarn
33
- ])
34
- .default(PackageManagerName.Npm)
35
- )
36
- program.parse(process.argv)
37
- const options = program.opts()
38
-
39
- if (!isOptions(options)) {
40
- throw new Error(`Failed to parse command-line options. options=${JSON.stringify(options)}`)
41
- }
42
-
43
- return options
44
- }
@@ -1,24 +0,0 @@
1
- import {
2
- intersection,
3
- partial,
4
- string,
5
- type
6
- } from 'io-ts'
7
- import type { TypeOf } from 'io-ts'
8
- import { PackageDependencies } from './PackageDependencies'
9
-
10
- const Package = intersection([
11
- type({
12
- name: string,
13
- version: string
14
- }),
15
- partial({
16
- dependencies: PackageDependencies,
17
- devDependencies: PackageDependencies,
18
- peerDependencies: PackageDependencies,
19
- optionalDependencies: PackageDependencies
20
- })
21
- ])
22
- // eslint-disable-next-line @typescript-eslint/no-redeclare
23
- export type Package = TypeOf<typeof Package>
24
- export const isPackage = Package.is
@@ -1,10 +0,0 @@
1
- import {
2
- record,
3
- string
4
- } from 'io-ts'
5
- import type { TypeOf } from 'io-ts'
6
-
7
- export const PackageDependencies = record(string, string)
8
- // eslint-disable-next-line @typescript-eslint/no-redeclare
9
- export type PackageDependencies = TypeOf<typeof PackageDependencies>
10
- export const isPackageDependencies = PackageDependencies.is
@@ -1,19 +0,0 @@
1
- import type { Logger } from '../logger'
2
- import { isPackage } from './Package'
3
- import type { Package } from './Package'
4
-
5
- // TODO: add test
6
- export class PackageJsonParser {
7
- constructor (private readonly logger: Logger) {}
8
-
9
- parse (json: string): Package {
10
- const parsed: unknown = JSON.parse(json)
11
- this.logger.debug(`parsed=${JSON.stringify(parsed)}`)
12
-
13
- if (isPackage(parsed)) {
14
- return parsed
15
- } else {
16
- throw new Error(`Failed to parse package.json. json=${json}`)
17
- }
18
- }
19
- }
@@ -1,27 +0,0 @@
1
- import fs from 'fs'
2
- import type { Logger } from '../logger'
3
- import type { Package } from './Package'
4
- import type { PackageJsonParser } from './PackageJsonParser'
5
-
6
- // TODO: add test
7
- export class PackageJsonReader {
8
- private readonly packageJsonParser: PackageJsonParser
9
- private readonly logger: Logger
10
-
11
- constructor ({
12
- packageJsonParser,
13
- logger
14
- }: {
15
- packageJsonParser: PackageJsonParser
16
- logger: Logger
17
- }) {
18
- this.packageJsonParser = packageJsonParser
19
- this.logger = logger
20
- }
21
-
22
- async read (filePath: string): Promise<Package> {
23
- const json = await fs.promises.readFile(filePath, 'utf8')
24
- this.logger.debug(`json=${json}`)
25
- return this.packageJsonParser.parse(json)
26
- }
27
- }
@@ -1,3 +0,0 @@
1
- export { PackageJsonParser } from './PackageJsonParser'
2
- export { PackageJsonReader } from './PackageJsonReader'
3
- export type { PackageDependencies } from './PackageDependencies'
@@ -1,19 +0,0 @@
1
- import type { Terminal } from '../terminal'
2
- import type { PackageManager } from './PackageManager'
3
-
4
- // TODO: add test
5
- export class Npm implements PackageManager {
6
- readonly packageFiles = [
7
- 'package.json',
8
- 'package-lock.json'
9
- ]
10
-
11
- constructor (private readonly terminal: Terminal) {}
12
-
13
- /**
14
- * @see https://docs.npmjs.com/cli/v8/commands/npm-install
15
- */
16
- async install (): Promise<void> {
17
- await this.terminal.run('npm', 'install')
18
- }
19
- }
@@ -1,4 +0,0 @@
1
- export interface PackageManager {
2
- packageFiles: string[]
3
- install: () => Promise<void>
4
- }
@@ -1,8 +0,0 @@
1
- export const PackageManagerName = {
2
- Npm: 'npm',
3
- Yarn: 'yarn'
4
- } as const
5
- // eslint-disable-next-line @typescript-eslint/no-redeclare
6
- export type PackageManagerName = typeof PackageManagerName[keyof typeof PackageManagerName]
7
- const packageManagerNames = Object.values(PackageManagerName)
8
- export const isPackageManagerName = (value: any): value is PackageManagerName => packageManagerNames.includes(value)
@@ -1,19 +0,0 @@
1
- import type { Terminal } from '../terminal'
2
- import type { PackageManager } from './PackageManager'
3
-
4
- // TODO: add test
5
- export class Yarn implements PackageManager {
6
- readonly packageFiles = [
7
- 'package.json',
8
- 'yarn.lock'
9
- ]
10
-
11
- constructor (private readonly terminal: Terminal) {}
12
-
13
- /**
14
- * @see https://classic.yarnpkg.com/en/docs/cli/install
15
- */
16
- async install (): Promise<void> {
17
- await this.terminal.run('yarn', 'install')
18
- }
19
- }
@@ -1,21 +0,0 @@
1
- import type { Terminal } from '../terminal'
2
- import { Npm } from './Npm'
3
- import type { PackageManager } from './PackageManager'
4
- import type { PackageManagerName } from './PackageManagerName'
5
- import { Yarn } from './Yarn'
6
-
7
- // TODO: add test
8
- export const createPackageManager = ({
9
- terminal,
10
- packageManager
11
- }: {
12
- terminal: Terminal
13
- packageManager: PackageManagerName
14
- }): PackageManager => {
15
- switch (packageManager) {
16
- case 'npm':
17
- return new Npm(terminal)
18
- case 'yarn':
19
- return new Yarn(terminal)
20
- }
21
- }
@@ -1,8 +0,0 @@
1
- export { createPackageManager } from './createPackageManager'
2
- export { Npm } from './Npm'
3
- export type { PackageManager } from './PackageManager'
4
- export {
5
- isPackageManagerName,
6
- PackageManagerName
7
- } from './PackageManagerName'
8
- export { Yarn } from './Yarn'
@@ -1,109 +0,0 @@
1
- import type {
2
- BranchNameCreator,
3
- CommitMessageCreator,
4
- Committer,
5
- Git
6
- } from '../git'
7
- import type {
8
- PullRequestCreator,
9
- RemoteBranchExistenceChecker
10
- } from '../github'
11
- import type { Logger } from '../logger'
12
- import type {
13
- Ncu,
14
- OutdatedPackage
15
- } from '../ncu'
16
- import type { PackageManager } from '../package-manager'
17
- import type { Result } from './Result'
18
-
19
- // TODO: add test
20
- export class OutdatedPackageProcessor {
21
- private readonly committer: Committer
22
- private readonly git: Git
23
- private readonly ncu: Ncu
24
- private readonly packageManager: PackageManager
25
- private readonly pullRequestCreator: PullRequestCreator
26
- private readonly remoteBranchExistenceChecker: RemoteBranchExistenceChecker
27
- private readonly logger: Logger
28
- private readonly branchNameCreator: BranchNameCreator
29
- private readonly commitMessageCreator: CommitMessageCreator
30
-
31
- constructor ({
32
- committer,
33
- git,
34
- ncu,
35
- packageManager,
36
- pullRequestCreator,
37
- remoteBranchExistenceChecker,
38
- logger,
39
- branchNameCreator,
40
- commitMessageCreator
41
- }: {
42
- committer: Committer
43
- git: Git
44
- ncu: Ncu
45
- packageManager: PackageManager
46
- pullRequestCreator: PullRequestCreator
47
- remoteBranchExistenceChecker: RemoteBranchExistenceChecker
48
- logger: Logger
49
- branchNameCreator: BranchNameCreator
50
- commitMessageCreator: CommitMessageCreator
51
- }) {
52
- this.committer = committer
53
- this.git = git
54
- this.ncu = ncu
55
- this.packageManager = packageManager
56
- this.pullRequestCreator = pullRequestCreator
57
- this.remoteBranchExistenceChecker = remoteBranchExistenceChecker
58
- this.logger = logger
59
- this.branchNameCreator = branchNameCreator
60
- this.commitMessageCreator = commitMessageCreator
61
- }
62
-
63
- /**
64
- * Don't run in parallel because it includes file operations.
65
- */
66
- async process (outdatedPackage: OutdatedPackage): Promise<Result> {
67
- const branchName = this.branchNameCreator.create(outdatedPackage)
68
- this.logger.debug(`branchName=${branchName}`)
69
-
70
- if (this.remoteBranchExistenceChecker.check(branchName)) {
71
- this.logger.info(`Skip ${outdatedPackage.name} because ${branchName} branch already exists on remote.`)
72
- return {
73
- outdatedPackage,
74
- skipped: true
75
- }
76
- }
77
-
78
- await this.git.createBranch(branchName)
79
- this.logger.info(`${branchName} branch has created.`)
80
-
81
- const updatedPackages = await this.ncu.update(outdatedPackage)
82
-
83
- if (updatedPackages.length !== 1) {
84
- throw new Error(`Failed to update ${outdatedPackage.name}.`)
85
- }
86
-
87
- await this.packageManager.install()
88
- this.logger.info(`${outdatedPackage.name} has updated from v${outdatedPackage.currentVersion.version} to v${outdatedPackage.newVersion.version}`)
89
-
90
- await this.git.add(...this.packageManager.packageFiles)
91
- const message = this.commitMessageCreator.create(outdatedPackage)
92
- this.logger.debug(`message=${message}`)
93
-
94
- await this.committer.commit(message)
95
- await this.git.push(branchName)
96
- await this.pullRequestCreator.create({
97
- outdatedPackage,
98
- branchName
99
- })
100
- await this.git.checkout('-')
101
- await this.git.removeBranch(branchName)
102
- this.logger.info(`${branchName} branch has removed.`)
103
-
104
- return {
105
- outdatedPackage,
106
- updated: true
107
- }
108
- }
109
- }
@@ -1,32 +0,0 @@
1
- import type { Logger } from '../logger'
2
- import type { OutdatedPackage } from '../ncu'
3
- import type { OutdatedPackageProcessor } from './OutdatedPackageProcessor'
4
- import type { Result } from './Result'
5
-
6
- export class OutdatedPackagesProcessor {
7
- private readonly outdatedPackageProcessor: OutdatedPackageProcessor
8
- private readonly logger: Logger
9
-
10
- constructor ({
11
- outdatedPackageProcessor,
12
- logger
13
- }: {
14
- outdatedPackageProcessor: OutdatedPackageProcessor
15
- logger: Logger
16
- }) {
17
- this.outdatedPackageProcessor = outdatedPackageProcessor
18
- this.logger = logger
19
- }
20
-
21
- async process (outdatedPackages: OutdatedPackage[]): Promise<Result[]> {
22
- const results: Result[] = []
23
-
24
- for (const outdatedPackage of outdatedPackages) {
25
- this.logger.debug(`outdatedPackage=${JSON.stringify(outdatedPackage)}`)
26
- const result = await this.outdatedPackageProcessor.process(outdatedPackage)
27
- results.push(result)
28
- }
29
-
30
- return results
31
- }
32
- }
@@ -1,7 +0,0 @@
1
- import type { OutdatedPackage } from '../ncu'
2
-
3
- export interface Result {
4
- outdatedPackage: OutdatedPackage
5
- updated?: boolean
6
- skipped?: boolean
7
- }
@@ -1,2 +0,0 @@
1
- export { OutdatedPackageProcessor } from './OutdatedPackageProcessor'
2
- export { OutdatedPackagesProcessor } from './OutdatedPackagesProcessor'
@@ -1,30 +0,0 @@
1
- import execa from 'execa'
2
- import type { ExecaReturnValue } from 'execa'
3
- import { isExecaReturnValue } from './isExecaReturnValue'
4
-
5
- // TODO: add test
6
- export class Terminal {
7
- async run (
8
- command: string,
9
- ...args: string[]
10
- ): Promise<ExecaReturnValue<string>> {
11
- return await execa(command, args)
12
- }
13
-
14
- async runWithErrorHandling (
15
- command: string,
16
- ...args: string[]
17
- ): Promise<ExecaReturnValue<string>> {
18
- try {
19
- return await this.run(command, ...args)
20
- } catch (e) {
21
- const value: unknown = e instanceof Error ? JSON.parse(JSON.stringify(e)) : e
22
-
23
- if (isExecaReturnValue(value)) {
24
- return value
25
- } else {
26
- throw e
27
- }
28
- }
29
- }
30
- }
@@ -1 +0,0 @@
1
- export { Terminal } from './Terminal'