Skip to content

Commit c2642f8

Browse files
committed
feat: auto open release ui
1 parent e9b4c10 commit c2642f8

File tree

4 files changed

+91
-4
lines changed

4 files changed

+91
-4
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"debug": "^4.3.4",
3333
"execa": "^8.0.1",
3434
"express": "^4.21.2",
35+
"open": "^10.1.0",
3536
"pony-cause": "^2.1.9",
3637
"react": "^19.0.0",
3738
"react-dom": "^19.0.0",

src/main.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@ jest.mock('./ui');
1111
jest.mock('./dirname', () => ({
1212
getCurrentDirectoryPath: jest.fn().mockReturnValue('/path/to/somewhere'),
1313
}));
14+
jest.mock('open', () => ({
15+
apps: {
16+
browser: jest.fn(),
17+
},
18+
}));
1419

1520
describe('main', () => {
1621
it('executes the CLI monorepo workflow if the project is a monorepo and interactive is false', async () => {

src/ui.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import type { WriteStream } from 'fs';
22
import { join } from 'path';
33
import express from 'express';
4+
import open, { apps } from 'open';
5+
46
import {
57
restoreChangelogsForSkippedPackages,
68
updateChangelogsForChangedPackages,
@@ -84,6 +86,7 @@ export async function startUI({
8486
const server = app.listen(port, async () => {
8587
const url = `http://localhost:${port}`;
8688
stdout.write(`UI server running at ${url}\n`);
89+
open(url, { app: { name: apps.browser } });
8790
});
8891

8992
return new Promise((resolve, reject) => {
@@ -297,9 +300,5 @@ function createApp({
297300
},
298301
);
299302

300-
app.get('*', (_req, res) => {
301-
res.sendFile(join(UI_BUILD_DIR, 'index.html'));
302-
});
303-
304303
return app;
305304
}

yarn.lock

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2114,6 +2114,7 @@ __metadata:
21142114
jest-it-up: ^3.0.0
21152115
jest-when: ^3.5.2
21162116
nanoid: ^3.3.4
2117+
open: ^10.1.0
21172118
pony-cause: ^2.1.9
21182119
prettier: ^3.3.3
21192120
prettier-plugin-packagejson: ^2.5.2
@@ -3400,6 +3401,15 @@ __metadata:
34003401
languageName: node
34013402
linkType: hard
34023403

3404+
"bundle-name@npm:^4.1.0":
3405+
version: 4.1.0
3406+
resolution: "bundle-name@npm:4.1.0"
3407+
dependencies:
3408+
run-applescript: ^7.0.0
3409+
checksum: 1d966c8d2dbf4d9d394e53b724ac756c2414c45c01340b37743621f59cc565a435024b394ddcb62b9b335d1c9a31f4640eb648c3fec7f97ee74dc0694c9beb6c
3410+
languageName: node
3411+
linkType: hard
3412+
34033413
"bytes@npm:3.1.2":
34043414
version: 3.1.2
34053415
resolution: "bytes@npm:3.1.2"
@@ -3900,6 +3910,30 @@ __metadata:
39003910
languageName: node
39013911
linkType: hard
39023912

3913+
"default-browser-id@npm:^5.0.0":
3914+
version: 5.0.0
3915+
resolution: "default-browser-id@npm:5.0.0"
3916+
checksum: 185bfaecec2c75fa423544af722a3469b20704c8d1942794a86e4364fe7d9e8e9f63241a5b769d61c8151993bc65833a5b959026fa1ccea343b3db0a33aa6deb
3917+
languageName: node
3918+
linkType: hard
3919+
3920+
"default-browser@npm:^5.2.1":
3921+
version: 5.2.1
3922+
resolution: "default-browser@npm:5.2.1"
3923+
dependencies:
3924+
bundle-name: ^4.1.0
3925+
default-browser-id: ^5.0.0
3926+
checksum: afab7eff7b7f5f7a94d9114d1ec67273d3fbc539edf8c0f80019879d53aa71e867303c6f6d7cffeb10a6f3cfb59d4f963dba3f9c96830b4540cc7339a1bf9840
3927+
languageName: node
3928+
linkType: hard
3929+
3930+
"define-lazy-prop@npm:^3.0.0":
3931+
version: 3.0.0
3932+
resolution: "define-lazy-prop@npm:3.0.0"
3933+
checksum: 54884f94caac0791bf6395a3ec530ce901cf71c47b0196b8754f3fd17edb6c0e80149c1214429d851873bb0d689dbe08dcedbb2306dc45c8534a5934723851b6
3934+
languageName: node
3935+
linkType: hard
3936+
39033937
"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4":
39043938
version: 1.1.4
39053939
resolution: "define-properties@npm:1.1.4"
@@ -5659,6 +5693,15 @@ __metadata:
56595693
languageName: node
56605694
linkType: hard
56615695

5696+
"is-docker@npm:^3.0.0":
5697+
version: 3.0.0
5698+
resolution: "is-docker@npm:3.0.0"
5699+
bin:
5700+
is-docker: cli.js
5701+
checksum: b698118f04feb7eaf3338922bd79cba064ea54a1c3db6ec8c0c8d8ee7613e7e5854d802d3ef646812a8a3ace81182a085dfa0a71cc68b06f3fa794b9783b3c90
5702+
languageName: node
5703+
linkType: hard
5704+
56625705
"is-extglob@npm:^2.1.1":
56635706
version: 2.1.1
56645707
resolution: "is-extglob@npm:2.1.1"
@@ -5696,6 +5739,17 @@ __metadata:
56965739
languageName: node
56975740
linkType: hard
56985741

5742+
"is-inside-container@npm:^1.0.0":
5743+
version: 1.0.0
5744+
resolution: "is-inside-container@npm:1.0.0"
5745+
dependencies:
5746+
is-docker: ^3.0.0
5747+
bin:
5748+
is-inside-container: cli.js
5749+
checksum: c50b75a2ab66ab3e8b92b3bc534e1ea72ca25766832c0623ac22d134116a98bcf012197d1caabe1d1c4bd5f84363d4aa5c36bb4b585fbcaf57be172cd10a1a03
5750+
languageName: node
5751+
linkType: hard
5752+
56995753
"is-lambda@npm:^1.0.1":
57005754
version: 1.0.1
57015755
resolution: "is-lambda@npm:1.0.1"
@@ -5800,6 +5854,15 @@ __metadata:
58005854
languageName: node
58015855
linkType: hard
58025856

5857+
"is-wsl@npm:^3.1.0":
5858+
version: 3.1.0
5859+
resolution: "is-wsl@npm:3.1.0"
5860+
dependencies:
5861+
is-inside-container: ^1.0.0
5862+
checksum: f9734c81f2f9cf9877c5db8356bfe1ff61680f1f4c1011e91278a9c0564b395ae796addb4bf33956871041476ec82c3e5260ed57b22ac91794d4ae70a1d2f0a9
5863+
languageName: node
5864+
linkType: hard
5865+
58035866
"isexe@npm:^2.0.0":
58045867
version: 2.0.0
58055868
resolution: "isexe@npm:2.0.0"
@@ -7559,6 +7622,18 @@ __metadata:
75597622
languageName: node
75607623
linkType: hard
75617624

7625+
"open@npm:^10.1.0":
7626+
version: 10.1.0
7627+
resolution: "open@npm:10.1.0"
7628+
dependencies:
7629+
default-browser: ^5.2.1
7630+
define-lazy-prop: ^3.0.0
7631+
is-inside-container: ^1.0.0
7632+
is-wsl: ^3.1.0
7633+
checksum: 079b0771616bac13b08129b0300032dc9328d72f345e460dd0416b8a8196a5bdf5e0251fefec8aa2a6a97c736734ac65dd8f1d29ab3fc9a13e85624aa5bc4470
7634+
languageName: node
7635+
linkType: hard
7636+
75627637
"optionator@npm:^0.9.1":
75637638
version: 0.9.1
75647639
resolution: "optionator@npm:0.9.1"
@@ -8235,6 +8310,13 @@ __metadata:
82358310
languageName: node
82368311
linkType: hard
82378312

8313+
"run-applescript@npm:^7.0.0":
8314+
version: 7.0.0
8315+
resolution: "run-applescript@npm:7.0.0"
8316+
checksum: b02462454d8b182ad4117e5d4626e9e6782eb2072925c9fac582170b0627ae3c1ea92ee9b2df7daf84b5e9ffe14eb1cf5fb70bc44b15c8a0bfcdb47987e2410c
8317+
languageName: node
8318+
linkType: hard
8319+
82388320
"run-async@npm:^3.0.0":
82398321
version: 3.0.0
82408322
resolution: "run-async@npm:3.0.0"

0 commit comments

Comments
 (0)