@cmflow/cli 1.1.0 → 2.0.0-alpha.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 (124) hide show
  1. package/.prettierignore +5 -0
  2. package/.prettierrc +10 -0
  3. package/README.md +130 -32
  4. package/bin/cm-changelog.js +20 -12
  5. package/bin/cm-clean.js +4 -7
  6. package/bin/cm-config.js +8 -8
  7. package/bin/cm-deploy.js +4 -8
  8. package/bin/cm-fetch.js +7 -7
  9. package/bin/cm-finish.js +9 -9
  10. package/bin/cm-merge.js +7 -7
  11. package/bin/cm-publish.js +10 -10
  12. package/bin/cm-push.js +10 -10
  13. package/bin/cm-rebase.js +10 -10
  14. package/bin/cm-republish.js +7 -7
  15. package/bin/cm-start.js +10 -10
  16. package/bin/cm.js +20 -20
  17. package/bin/cmrelease.js +2 -2
  18. package/eslint.config.mjs +67 -0
  19. package/package.json +27 -21
  20. package/release.config.mjs +36 -19
  21. package/src/commands/changelog.js +23 -23
  22. package/src/commands/clean.js +13 -13
  23. package/src/commands/config.js +8 -8
  24. package/src/commands/deploy.js +15 -20
  25. package/src/commands/fetch.js +7 -10
  26. package/src/commands/finish.js +18 -19
  27. package/src/commands/index.js +10 -11
  28. package/src/commands/merge.js +30 -14
  29. package/src/commands/prompts/branches.js +20 -20
  30. package/src/commands/push.js +11 -14
  31. package/src/commands/rebase.js +17 -19
  32. package/src/commands/release.js +10 -11
  33. package/src/commands/republish.js +11 -14
  34. package/src/commands/start.js +52 -48
  35. package/src/commands/tasks/merge-branch.js +41 -37
  36. package/src/commands/tasks/push-branch.js +5 -11
  37. package/src/commands/tasks/rebase-all-branches.js +19 -24
  38. package/src/commands/tasks/refresh-repository.js +26 -24
  39. package/src/commands/tasks/run-test.js +11 -17
  40. package/src/commands/tasks/update-branch.js +33 -30
  41. package/src/commands/tasks/update-dependencies.js +38 -32
  42. package/src/commands/utils/check-install.js +16 -15
  43. package/src/common/cli/cli.js +55 -57
  44. package/src/common/cli/docker.js +31 -28
  45. package/src/common/cli/docker.test.js +94 -96
  46. package/src/common/cli/git.js +59 -68
  47. package/src/common/cli/git.test.js +187 -189
  48. package/src/common/cli/lerna.js +12 -12
  49. package/src/common/cli/lerna.test.js +38 -40
  50. package/src/common/cli/npm.js +17 -17
  51. package/src/common/cli/npm.test.js +38 -40
  52. package/src/common/cli/yarn.js +17 -17
  53. package/src/common/cli/yarn.test.js +40 -40
  54. package/src/common/configure-git-workspace.js +11 -17
  55. package/src/common/get-config.js +63 -119
  56. package/src/common/get-package-json.js +4 -4
  57. package/src/common/get-release-config.js +4 -5
  58. package/src/common/index.js +10 -10
  59. package/src/common/run-command.js +26 -28
  60. package/src/common/run-command.test.js +35 -39
  61. package/src/index.js +10 -1
  62. package/src/semantic/core/analyze-commits.js +17 -0
  63. package/src/semantic/core/conditional.js +25 -0
  64. package/src/semantic/core/fail.js +21 -0
  65. package/src/semantic/core/generate-notes.js +11 -0
  66. package/src/semantic/core/prepare/bump-version.js +38 -0
  67. package/src/semantic/core/prepare/post.js +38 -0
  68. package/src/semantic/core/prepare/run.js +22 -0
  69. package/src/semantic/core/success.js +33 -0
  70. package/src/semantic/core/verify-conditions.js +32 -0
  71. package/src/semantic/core/verify-release.js +9 -0
  72. package/src/semantic/define-config.js +68 -0
  73. package/src/semantic/docker/publish.js +5 -0
  74. package/src/semantic/docker/success.js +9 -0
  75. package/src/semantic/utils/bump-packages-version.js +52 -0
  76. package/src/semantic/utils/bump-packages-version.test.js +75 -0
  77. package/src/semantic/utils/calculate-snapshot-version.js +15 -0
  78. package/src/semantic/utils/calculate-snapshot-version.test.js +67 -0
  79. package/src/semantic/utils/display-package-info.js +11 -0
  80. package/src/semantic/utils/display-release-info.js +12 -0
  81. package/src/semantic/utils/docker-clean-tags.js +51 -0
  82. package/src/semantic/utils/docker-clean-tags.test.js +61 -0
  83. package/src/semantic/utils/docker-publish.js +23 -0
  84. package/src/semantic/utils/docker-publish.test.js +44 -0
  85. package/src/semantic/utils/log-section.js +5 -0
  86. package/src/semantic/utils/release-rules.js +15 -0
  87. package/src/semantic/utils/transform-writer.js +75 -0
  88. package/src/workflow/index.js +22 -22
  89. package/tsconfig.json +54 -0
  90. package/vitest.config.mts +10 -0
  91. package/bin/cm-publish-pages.js +0 -12
  92. package/semantic.js +0 -1
  93. package/src/commands/publish-pages.js +0 -29
  94. package/src/common/cli/heroku.js +0 -21
  95. package/src/common/cli/heroku.test.js +0 -62
  96. package/src/main.js +0 -10
  97. package/src/semantic-release/actions/analyze-commits.js +0 -14
  98. package/src/semantic-release/actions/fail.js +0 -16
  99. package/src/semantic-release/actions/generate-notes.js +0 -12
  100. package/src/semantic-release/actions/index.js +0 -8
  101. package/src/semantic-release/actions/prepare.js +0 -114
  102. package/src/semantic-release/actions/publish.js +0 -17
  103. package/src/semantic-release/actions/success.js +0 -32
  104. package/src/semantic-release/actions/verify-conditions.js +0 -30
  105. package/src/semantic-release/actions/verify-release.js +0 -9
  106. package/src/semantic-release/get-semantic-config.js +0 -115
  107. package/src/semantic-release/utils/bump-packages-version.js +0 -51
  108. package/src/semantic-release/utils/bump-packages-version.test.js +0 -78
  109. package/src/semantic-release/utils/calculate-snapshot-version.js +0 -10
  110. package/src/semantic-release/utils/calculate-snapshot-version.test.js +0 -69
  111. package/src/semantic-release/utils/display-package-info.js +0 -11
  112. package/src/semantic-release/utils/display-release-info.js +0 -12
  113. package/src/semantic-release/utils/docker-clean-tags.js +0 -45
  114. package/src/semantic-release/utils/docker-clean-tags.test.js +0 -63
  115. package/src/semantic-release/utils/docker-publish.js +0 -47
  116. package/src/semantic-release/utils/docker-publish.test.js +0 -67
  117. package/src/semantic-release/utils/ghpages-publish.js +0 -16
  118. package/src/semantic-release/utils/log-section.js +0 -5
  119. /package/src/{semantic-release → semantic}/utils/__mock__/test1/package.json +0 -0
  120. /package/src/{semantic-release → semantic}/utils/__mock__/test1/packages/a/package.json +0 -0
  121. /package/src/{semantic-release → semantic}/utils/__mock__/test1/packages/b/package.json +0 -0
  122. /package/src/{semantic-release → semantic}/utils/__mock__/test2/package.json +0 -0
  123. /package/src/{semantic-release → semantic}/utils/__mock__/test2/packages/a/package.json +0 -0
  124. /package/src/{semantic-release → semantic}/utils/__mock__/test2/packages/b/package.json +0 -0
@@ -1,209 +1,207 @@
1
- import { beforeEach, describe, expect, it, jest } from '@jest/globals'
2
-
3
- jest.unstable_mockModule('execa', () => {
4
- const execaMock = jest.fn()
5
- execaMock.sync = jest.fn()
6
- return { default: execaMock }
7
- })
8
- const { default: execa } = await import('execa')
9
- const { git } = await import('./git.js')
10
- const { Cli } = await import('./cli.js')
1
+ vi.mock("execa", () => {
2
+ const execaMock = vi.fn();
3
+ execaMock.sync = vi.fn();
4
+ return { default: execaMock };
5
+ });
6
+ const { default: execa } = await import("execa");
7
+ const { git } = await import("./git.js");
8
+ const { Cli } = await import("./cli.js");
11
9
  execa.sync.mockImplementation((...args) => {
12
10
  return {
13
- stdout: `CMD: ${[].concat(...args.filter(arg => typeof arg === 'string' || Array.isArray(arg))).join(' ')}`
14
- }
15
- })
11
+ stdout: `CMD: ${[].concat(...args.filter((arg) => typeof arg === "string" || Array.isArray(arg))).join(" ")}`
12
+ };
13
+ });
16
14
 
17
- execa.mockReturnValue({})
15
+ execa.mockReturnValue({});
18
16
 
19
- describe('GitCli', () => {
17
+ describe("GitCli", () => {
20
18
  beforeEach(() => {
21
- jest.spyOn(Cli, 'getRaw').mockImplementation((...args) => {
22
- return `CMD: ${[].concat(...args.filter(arg => typeof arg === 'string' || Array.isArray(arg))).join(' ')}`
23
- })
24
- })
25
- describe('init', () => {
26
- it('should run init cmd', () => {
27
- const result = git.init('init-arg').sync()
28
-
29
- expect(result.stdout).toEqual('CMD: git init init-arg')
30
- expect(execa.sync).toHaveBeenCalledWith('git', ['init', 'init-arg'], {
19
+ vi.spyOn(Cli, "getRaw").mockImplementation((...args) => {
20
+ return `CMD: ${[].concat(...args.filter((arg) => typeof arg === "string" || Array.isArray(arg))).join(" ")}`;
21
+ });
22
+ });
23
+ describe("init", () => {
24
+ it("should run init cmd", () => {
25
+ const result = git.init("init-arg").sync();
26
+
27
+ expect(result.stdout).toEqual("CMD: git init init-arg");
28
+ expect(execa.sync).toHaveBeenCalledWith("git", ["init", "init-arg"], {
31
29
  cwd: process.cwd(),
32
- stdio: 'inherit'
33
- })
34
- })
35
- })
36
- describe('add', () => {
37
- it('should run add cmd', () => {
38
- const result = git.add('add-arg').sync()
39
-
40
- expect(result.stdout).toEqual('CMD: git add add-arg')
41
- expect(execa.sync).toHaveBeenCalledWith('git', ['add', 'add-arg'], {
30
+ stdio: "inherit"
31
+ });
32
+ });
33
+ });
34
+ describe("add", () => {
35
+ it("should run add cmd", () => {
36
+ const result = git.add("add-arg").sync();
37
+
38
+ expect(result.stdout).toEqual("CMD: git add add-arg");
39
+ expect(execa.sync).toHaveBeenCalledWith("git", ["add", "add-arg"], {
42
40
  cwd: process.cwd(),
43
- stdio: 'inherit'
44
- })
45
- })
46
- })
47
- describe('branch', () => {
48
- it('should run branch cmd', () => {
49
- const result = git.branch('branch-arg').sync()
50
-
51
- expect(result.stdout).toEqual('CMD: git branch branch-arg')
52
- expect(execa.sync).toHaveBeenCalledWith('git', ['branch', 'branch-arg'], {
41
+ stdio: "inherit"
42
+ });
43
+ });
44
+ });
45
+ describe("branch", () => {
46
+ it("should run branch cmd", () => {
47
+ const result = git.branch("branch-arg").sync();
48
+
49
+ expect(result.stdout).toEqual("CMD: git branch branch-arg");
50
+ expect(execa.sync).toHaveBeenCalledWith("git", ["branch", "branch-arg"], {
53
51
  cwd: process.cwd(),
54
- stdio: 'inherit'
55
- })
56
- })
57
- })
58
- describe('clean', () => {
59
- it('should run branch cmd', () => {
60
- const result = git.clean('clean-arg').sync()
61
-
62
- expect(result.stdout).toEqual('CMD: git clean clean-arg')
63
- expect(execa.sync).toHaveBeenCalledWith('git', ['clean', 'clean-arg'], {
52
+ stdio: "inherit"
53
+ });
54
+ });
55
+ });
56
+ describe("clean", () => {
57
+ it("should run branch cmd", () => {
58
+ const result = git.clean("clean-arg").sync();
59
+
60
+ expect(result.stdout).toEqual("CMD: git clean clean-arg");
61
+ expect(execa.sync).toHaveBeenCalledWith("git", ["clean", "clean-arg"], {
64
62
  cwd: process.cwd(),
65
- stdio: 'inherit'
66
- })
67
- })
68
- })
69
- describe('config', () => {
70
- it('should run config cmd', () => {
71
- const result = git.config('config-arg')
72
-
73
- expect(result).toEqual('CMD: git config config-arg')
74
- expect(Cli.getRaw).toHaveBeenCalledWith('git', ['config', 'config-arg'], {
63
+ stdio: "inherit"
64
+ });
65
+ });
66
+ });
67
+ describe("config", () => {
68
+ it("should run config cmd", () => {
69
+ const result = git.config("config-arg");
70
+
71
+ expect(result).toEqual("CMD: git config config-arg");
72
+ expect(Cli.getRaw).toHaveBeenCalledWith("git", ["config", "config-arg"], {
75
73
  cwd: process.cwd()
76
- })
77
- })
78
- })
79
- describe('checkout', () => {
80
- it('should run checkout cmd', () => {
81
- const result = git.checkout('checkout-arg').sync()
82
-
83
- expect(result.stdout).toEqual('CMD: git checkout checkout-arg')
84
- expect(execa.sync).toHaveBeenCalledWith('git', ['checkout', 'checkout-arg'], {
74
+ });
75
+ });
76
+ });
77
+ describe("checkout", () => {
78
+ it("should run checkout cmd", () => {
79
+ const result = git.checkout("checkout-arg").sync();
80
+
81
+ expect(result.stdout).toEqual("CMD: git checkout checkout-arg");
82
+ expect(execa.sync).toHaveBeenCalledWith("git", ["checkout", "checkout-arg"], {
85
83
  cwd: process.cwd(),
86
- stdio: 'inherit'
87
- })
88
- })
89
- })
90
- describe('commit', () => {
91
- it('should run commit cmd', () => {
92
- const result = git.commit('commit-arg').sync()
93
-
94
- expect(result.stdout).toEqual('CMD: git commit commit-arg')
95
- expect(execa.sync).toHaveBeenCalledWith('git', ['commit', 'commit-arg'], {
84
+ stdio: "inherit"
85
+ });
86
+ });
87
+ });
88
+ describe("commit", () => {
89
+ it("should run commit cmd", () => {
90
+ const result = git.commit("commit-arg").sync();
91
+
92
+ expect(result.stdout).toEqual("CMD: git commit commit-arg");
93
+ expect(execa.sync).toHaveBeenCalledWith("git", ["commit", "commit-arg"], {
96
94
  cwd: process.cwd(),
97
- stdio: 'inherit'
98
- })
99
- })
100
- })
101
- describe('fetch', () => {
102
- it('should run fetch cmd', () => {
103
- const result = git.fetch('fetch-arg').sync()
104
-
105
- expect(result.stdout).toEqual('CMD: git fetch fetch-arg')
106
- expect(execa.sync).toHaveBeenCalledWith('git', ['fetch', 'fetch-arg'], {
95
+ stdio: "inherit"
96
+ });
97
+ });
98
+ });
99
+ describe("fetch", () => {
100
+ it("should run fetch cmd", () => {
101
+ const result = git.fetch("fetch-arg").sync();
102
+
103
+ expect(result.stdout).toEqual("CMD: git fetch fetch-arg");
104
+ expect(execa.sync).toHaveBeenCalledWith("git", ["fetch", "fetch-arg"], {
107
105
  cwd: process.cwd(),
108
- stdio: 'inherit'
109
- })
110
- })
111
- })
112
- describe('prune', () => {
113
- it('should run fetch cmd', () => {
114
- const result = git.prune('prune-arg').sync()
115
-
116
- expect(result.stdout).toEqual('CMD: git prune prune-arg')
117
- expect(execa.sync).toHaveBeenCalledWith('git', ['prune', 'prune-arg'], {
106
+ stdio: "inherit"
107
+ });
108
+ });
109
+ });
110
+ describe("prune", () => {
111
+ it("should run fetch cmd", () => {
112
+ const result = git.prune("prune-arg").sync();
113
+
114
+ expect(result.stdout).toEqual("CMD: git prune prune-arg");
115
+ expect(execa.sync).toHaveBeenCalledWith("git", ["prune", "prune-arg"], {
118
116
  cwd: process.cwd(),
119
- stdio: 'inherit'
120
- })
121
- })
122
- })
123
- describe('merge', () => {
124
- it('should run fetch cmd', () => {
125
- const result = git.merge('merge-arg')
126
-
127
- expect(result.stdout).toEqual('CMD: git merge merge-arg')
128
- expect(execa.sync).toHaveBeenCalledWith('git', ['merge', 'merge-arg'], {
117
+ stdio: "inherit"
118
+ });
119
+ });
120
+ });
121
+ describe("merge", () => {
122
+ it("should run fetch cmd", () => {
123
+ const result = git.merge("merge-arg");
124
+
125
+ expect(result.stdout).toEqual("CMD: git merge merge-arg");
126
+ expect(execa.sync).toHaveBeenCalledWith("git", ["merge", "merge-arg"], {
129
127
  cwd: process.cwd(),
130
- stdio: 'inherit'
131
- })
132
- })
133
- })
134
- describe('reset', () => {
135
- it('should run reset cmd', () => {
136
- const result = git.reset('reset-arg')
137
-
138
- expect(result.stdout).toEqual('CMD: git reset reset-arg')
139
- expect(execa.sync).toHaveBeenCalledWith('git', ['reset', 'reset-arg'], {
128
+ stdio: "inherit"
129
+ });
130
+ });
131
+ });
132
+ describe("reset", () => {
133
+ it("should run reset cmd", () => {
134
+ const result = git.reset("reset-arg");
135
+
136
+ expect(result.stdout).toEqual("CMD: git reset reset-arg");
137
+ expect(execa.sync).toHaveBeenCalledWith("git", ["reset", "reset-arg"], {
140
138
  cwd: process.cwd(),
141
- stdio: 'inherit'
142
- })
143
- })
144
- })
145
- describe('remote', () => {
146
- it('should run remote cmd', () => {
147
- const result = git.remote('remote-arg').sync()
148
-
149
- expect(result.stdout).toEqual('CMD: git remote remote-arg')
150
- expect(execa.sync).toHaveBeenCalledWith('git', ['remote', 'remote-arg'], {
139
+ stdio: "inherit"
140
+ });
141
+ });
142
+ });
143
+ describe("remote", () => {
144
+ it("should run remote cmd", () => {
145
+ const result = git.remote("remote-arg").sync();
146
+
147
+ expect(result.stdout).toEqual("CMD: git remote remote-arg");
148
+ expect(execa.sync).toHaveBeenCalledWith("git", ["remote", "remote-arg"], {
151
149
  cwd: process.cwd(),
152
- stdio: 'inherit'
153
- })
154
- })
155
- })
156
- describe('rebase', () => {
157
- it('should run rebase cmd', () => {
158
- const result = git.rebase('rebase-arg').sync()
159
-
160
- expect(result.stdout).toEqual('CMD: git rebase rebase-arg')
161
- expect(execa.sync).toHaveBeenCalledWith('git', ['rebase', 'rebase-arg'], {
150
+ stdio: "inherit"
151
+ });
152
+ });
153
+ });
154
+ describe("rebase", () => {
155
+ it("should run rebase cmd", () => {
156
+ const result = git.rebase("rebase-arg").sync();
157
+
158
+ expect(result.stdout).toEqual("CMD: git rebase rebase-arg");
159
+ expect(execa.sync).toHaveBeenCalledWith("git", ["rebase", "rebase-arg"], {
162
160
  cwd: process.cwd(),
163
- stdio: 'inherit'
164
- })
165
- })
166
- })
167
- describe('status', () => {
168
- it('should run status cmd', () => {
169
- const result = git.status('status-arg')
170
-
171
- expect(result.stdout).toEqual('CMD: git status status-arg')
172
- expect(execa.sync).toHaveBeenCalledWith('git', ['status', 'status-arg'], {
161
+ stdio: "inherit"
162
+ });
163
+ });
164
+ });
165
+ describe("status", () => {
166
+ it("should run status cmd", () => {
167
+ const result = git.status("status-arg");
168
+
169
+ expect(result.stdout).toEqual("CMD: git status status-arg");
170
+ expect(execa.sync).toHaveBeenCalledWith("git", ["status", "status-arg"], {
173
171
  cwd: process.cwd(),
174
- stdio: 'inherit'
175
- })
176
- })
177
- })
178
- describe('getCommitTag', () => {
179
- it('should run revParse cmd', () => {
180
- const result = git.getCommitTag('ref')
181
-
182
- expect(result).toEqual('CMD: git rev-parse --short ref')
183
- })
184
- })
185
- describe('getBranchName', () => {
186
- it('should run revParse cmd', () => {
187
- const result = git.getBranchName('ref')
188
-
189
- expect(result).toEqual('CMD: git rev-parse --abbrev-ref ref')
190
- })
191
- })
192
- describe('getLastCommitMsg', () => {
193
- it('should run revParse cmd', () => {
194
- const result = git.getLastCommitMsg()
195
-
196
- expect(result).toEqual('CMD: git log -1 --pretty=%B')
197
- })
198
- })
199
- describe('push', () => {
200
- it('should run push cmd', async () => {
201
- await git.push('push-arg')
202
-
203
- expect(execa).toHaveBeenCalledWith('git', ['push', 'push-arg'], {
172
+ stdio: "inherit"
173
+ });
174
+ });
175
+ });
176
+ describe("getCommitTag", () => {
177
+ it("should run revParse cmd", () => {
178
+ const result = git.getCommitTag("ref");
179
+
180
+ expect(result).toEqual("CMD: git rev-parse --short ref");
181
+ });
182
+ });
183
+ describe("getBranchName", () => {
184
+ it("should run revParse cmd", () => {
185
+ const result = git.getBranchName("ref");
186
+
187
+ expect(result).toEqual("CMD: git rev-parse --abbrev-ref ref");
188
+ });
189
+ });
190
+ describe("getLastCommitMsg", () => {
191
+ it("should run revParse cmd", () => {
192
+ const result = git.getLastCommitMsg();
193
+
194
+ expect(result).toEqual("CMD: git log -1 --pretty=%B");
195
+ });
196
+ });
197
+ describe("push", () => {
198
+ it("should run push cmd", async () => {
199
+ await git.push("push-arg");
200
+
201
+ expect(execa).toHaveBeenCalledWith("git", ["push", "push-arg"], {
204
202
  cwd: process.cwd(),
205
- stdio: 'inherit'
206
- })
207
- })
208
- })
209
- })
203
+ stdio: "inherit"
204
+ });
205
+ });
206
+ });
207
+ });
@@ -1,25 +1,25 @@
1
- import { Cli } from './cli.js'
1
+ import { Cli } from "./cli.js";
2
2
 
3
3
  class LernaCli extends Cli {
4
- constructor () {
5
- super('lerna')
4
+ constructor() {
5
+ super("lerna");
6
6
  }
7
7
 
8
- newVersion (version) {
9
- return this.version(version, '--exact', '--yes', '--no-git-tag-version', '--no-push')
8
+ newVersion(version) {
9
+ return this.version(version, "--exact", "--yes", "--no-git-tag-version", "--no-push");
10
10
  }
11
11
 
12
- version (...args) {
13
- return this.sync('version', ...args)
12
+ version(...args) {
13
+ return this.sync("version", ...args);
14
14
  }
15
15
 
16
- run (...args) {
17
- return super.run('run', ...args)
16
+ run(...args) {
17
+ return super.run("run", ...args);
18
18
  }
19
19
 
20
- install (...args) {
21
- return super.run('install', ...args)
20
+ install(...args) {
21
+ return super.run("install", ...args);
22
22
  }
23
23
  }
24
24
 
25
- export const lerna = new LernaCli()
25
+ export const lerna = new LernaCli();
@@ -1,53 +1,51 @@
1
- import { beforeEach, describe, expect, it, jest } from '@jest/globals'
2
-
3
- jest.unstable_mockModule('execa', () => {
4
- const execaMock = jest.fn()
5
- execaMock.sync = jest.fn()
6
- return { default: execaMock }
7
- })
8
- const { default: execa } = await import('execa')
9
- const { lerna } = await import('./lerna.js')
10
- const { Cli } = await import('./cli.js')
1
+ vi.mock("execa", () => {
2
+ const execaMock = vi.fn();
3
+ execaMock.sync = vi.fn();
4
+ return { default: execaMock };
5
+ });
6
+ const { default: execa } = await import("execa");
7
+ const { lerna } = await import("./lerna.js");
8
+ const { Cli } = await import("./cli.js");
11
9
 
12
10
  execa.sync.mockImplementation((...args) => {
13
11
  return {
14
- stdout: `CMD: ${[].concat(...args.filter(arg => typeof arg === 'string' || Array.isArray(arg))).join(' ')}`
15
- }
16
- })
12
+ stdout: `CMD: ${[].concat(...args.filter((arg) => typeof arg === "string" || Array.isArray(arg))).join(" ")}`
13
+ };
14
+ });
17
15
 
18
- execa.mockReturnValue({})
16
+ execa.mockReturnValue({});
19
17
 
20
- describe('LernaCli', () => {
18
+ describe("LernaCli", () => {
21
19
  beforeEach(() => {
22
- jest.spyOn(Cli, 'getRaw').mockImplementation((...args) => {
23
- return `CMD: ${[].concat(...args.filter(arg => typeof arg === 'string' || Array.isArray(arg))).join(' ')}`
24
- })
25
- })
26
- describe('newVersion', () => {
27
- it('should run add cmd', () => {
28
- const result = lerna.newVersion('1.0.0')
20
+ vi.spyOn(Cli, "getRaw").mockImplementation((...args) => {
21
+ return `CMD: ${[].concat(...args.filter((arg) => typeof arg === "string" || Array.isArray(arg))).join(" ")}`;
22
+ });
23
+ });
24
+ describe("newVersion", () => {
25
+ it("should run add cmd", () => {
26
+ const result = lerna.newVersion("1.0.0");
29
27
 
30
- expect(result.stdout).toEqual('CMD: lerna version 1.0.0 --exact --yes --no-git-tag-version --no-push')
31
- })
32
- })
33
- describe('run', () => {
28
+ expect(result.stdout).toEqual("CMD: lerna version 1.0.0 --exact --yes --no-git-tag-version --no-push");
29
+ });
30
+ });
31
+ describe("run", () => {
34
32
  it('should run "run" cmd', async () => {
35
- await lerna.run('run-arg')
33
+ await lerna.run("run-arg");
36
34
 
37
- expect(execa).toHaveBeenCalledWith('lerna', ['run', 'run-arg'], {
35
+ expect(execa).toHaveBeenCalledWith("lerna", ["run", "run-arg"], {
38
36
  cwd: process.cwd(),
39
- stdio: 'inherit'
40
- })
41
- })
42
- })
43
- describe('install', () => {
37
+ stdio: "inherit"
38
+ });
39
+ });
40
+ });
41
+ describe("install", () => {
44
42
  it('should run "install" cmd', async () => {
45
- await lerna.install('install-arg')
43
+ await lerna.install("install-arg");
46
44
 
47
- expect(execa).toHaveBeenCalledWith('lerna', ['install', 'install-arg'], {
45
+ expect(execa).toHaveBeenCalledWith("lerna", ["install", "install-arg"], {
48
46
  cwd: process.cwd(),
49
- stdio: 'inherit'
50
- })
51
- })
52
- })
53
- })
47
+ stdio: "inherit"
48
+ });
49
+ });
50
+ });
51
+ });
@@ -1,33 +1,33 @@
1
- import { Cli } from './cli.js'
1
+ import { Cli } from "./cli.js";
2
2
 
3
3
  class NpmCli extends Cli {
4
- constructor () {
5
- super('npm')
4
+ constructor() {
5
+ super("npm");
6
6
  }
7
7
 
8
- newVersion (version) {
9
- return this.version('--no-git-tag-version', version)
8
+ newVersion(version) {
9
+ return this.version("--no-git-tag-version", version);
10
10
  }
11
11
 
12
- version (...args) {
13
- return this.sync('version', ...args)
12
+ version(...args) {
13
+ return this.sync("version", ...args);
14
14
  }
15
15
 
16
- run (...args) {
17
- return super.run('run', ...args)
16
+ run(...args) {
17
+ return super.run("run", ...args);
18
18
  }
19
19
 
20
- install (...args) {
21
- return super.run('install', ...args)
20
+ install(...args) {
21
+ return super.run("install", ...args);
22
22
  }
23
23
 
24
24
  /**
25
- * Reinstall dependencies without package-lock mutation
26
- * @returns {Promise<unknown>}
27
- */
28
- restore () {
29
- return super.run('ci')
25
+ * Reinstall dependencies without package-lock mutation
26
+ * @returns {Promise<unknown>}
27
+ */
28
+ restore() {
29
+ return super.run("ci");
30
30
  }
31
31
  }
32
32
 
33
- export const npm = new NpmCli()
33
+ export const npm = new NpmCli();