Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions code/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,6 @@
"@vitest/expect": "3.2.4",
"@vitest/mocker": "3.2.4",
"@vitest/spy": "3.2.4",
"better-opn": "^3.0.2",
"esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0",
"recast": "^0.23.5",
"semver": "^7.6.2",
Expand Down Expand Up @@ -324,7 +323,7 @@
"memoizerific": "^1.11.3",
"nanoid": "^4.0.2",
"npmlog": "^7.0.0",
"open": "^8.4.0",
"open": "^10.2.0",
"p-limit": "^6.2.0",
"package-manager-detector": "^1.1.0",
"picocolors": "^1.1.0",
Expand Down
2 changes: 0 additions & 2 deletions code/core/src/core-server/typings.d.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
declare module 'lazy-universal-dotenv';
declare module 'pnp-webpack-plugin';
declare module 'better-opn';
declare module 'open';
declare module '@aw-web-design/x-default-browser';
declare module '@discoveryjs/json-ext';
declare module 'watchpack';
Expand Down
38 changes: 6 additions & 32 deletions code/core/src/core-server/utils/open-in-browser.ts
Original file line number Diff line number Diff line change
@@ -1,42 +1,16 @@
import { logger } from 'storybook/internal/node-logger';

import getDefaultBrowser from '@aw-web-design/x-default-browser';
import betterOpn from 'better-opn';
// betterOpn alias used because also loading open
import open from 'open';
import { dedent } from 'ts-dedent';

export function openInBrowser(address: string) {
const browserEnvVar = process.env.BROWSER;
const userBrowserIsChrome =
browserEnvVar === 'chrome' ||
browserEnvVar === 'chromium' ||
browserEnvVar === 'brave' ||
browserEnvVar === 'com.brave.browser';

const openOptions = browserEnvVar ? { app: { name: browserEnvVar } } : {};

getDefaultBrowser(async (err: any, res: any) => {
try {
if (
res &&
(res.isChrome ||
res.isChromium ||
res.identity === 'com.brave.browser' ||
userBrowserIsChrome)
) {
// We use betterOpn for Chrome because it is better at handling which chrome tab
// or window the preview loads in.
await betterOpn(address);
} else {
await open(address, openOptions);
}
} catch (error) {
logger.error(dedent`
export async function openInBrowser(address: string) {
try {
await open(address);
} catch (error) {
logger.error(dedent`
Could not open ${address} inside a browser. If you're running this command inside a
docker container or on a CI, you need to pass the '--ci' flag to prevent opening a
browser by default.
`);
}
});
}
}
2 changes: 0 additions & 2 deletions code/core/src/typings.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@ declare var __STORYBOOK_VITEST_MOCKER__: any;

declare module '@aw-web-design/x-default-browser';
declare module 'ansi-to-html';
declare module 'better-opn';
declare module 'lazy-universal-dotenv';
declare module 'open';
declare module 'pnp-webpack-plugin';
declare module 'react-inspector';

Expand Down
132 changes: 9 additions & 123 deletions code/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ __metadata:
languageName: node
linkType: hard

"@angular-devkit/core@npm:19.2.16":
"@angular-devkit/core@npm:19.2.16, @angular-devkit/core@npm:^19.1.1":
version: 19.2.16
resolution: "@angular-devkit/core@npm:19.2.16"
dependencies:
Expand All @@ -218,25 +218,6 @@ __metadata:
languageName: node
linkType: hard

"@angular-devkit/core@npm:^19.1.1":
version: 19.2.9
resolution: "@angular-devkit/core@npm:19.2.9"
dependencies:
ajv: "npm:8.17.1"
ajv-formats: "npm:3.0.1"
jsonc-parser: "npm:3.3.1"
picomatch: "npm:4.0.2"
rxjs: "npm:7.8.1"
source-map: "npm:0.7.4"
peerDependencies:
chokidar: ^4.0.0
peerDependenciesMeta:
chokidar:
optional: true
checksum: 10c0/c1a7fde1d7346ffdf32ad0b8030ad00d2ce5a41abd51f468454fecb23e1590d1fd32272c553d7677501228767181ddc36833a60888464137cfefcc918342c780
languageName: node
linkType: hard

"@angular/animations@npm:^19.1.1":
version: 19.2.15
resolution: "@angular/animations@npm:19.2.15"
Expand Down Expand Up @@ -1099,18 +1080,7 @@ __metadata:
languageName: node
linkType: hard

"@babel/plugin-transform-block-scoping@npm:^7.25.9, @babel/plugin-transform-block-scoping@npm:^7.8.3":
version: 7.27.0
resolution: "@babel/plugin-transform-block-scoping@npm:7.27.0"
dependencies:
"@babel/helper-plugin-utils": "npm:^7.26.5"
peerDependencies:
"@babel/core": ^7.0.0-0
checksum: 10c0/15a604fac04151a795ff3213c73ece06bda7cd5f7c8cb7a3b29563ab243f0b3f7cba9e6facfc9d70e3e63b21af32f9d26bd10ccc58e1c425c7801186014b5ce4
languageName: node
linkType: hard

"@babel/plugin-transform-block-scoping@npm:^7.28.0":
"@babel/plugin-transform-block-scoping@npm:^7.25.9, @babel/plugin-transform-block-scoping@npm:^7.28.0, @babel/plugin-transform-block-scoping@npm:^7.8.3":
version: 7.28.4
resolution: "@babel/plugin-transform-block-scoping@npm:7.28.4"
dependencies:
Expand Down Expand Up @@ -10010,7 +9980,7 @@ __metadata:
languageName: node
linkType: hard

"axios@npm:^1.12.1":
"axios@npm:^1.12.1, axios@npm:^1.8.3":
version: 1.12.2
resolution: "axios@npm:1.12.2"
dependencies:
Expand All @@ -10021,17 +9991,6 @@ __metadata:
languageName: node
linkType: hard

"axios@npm:^1.8.3":
version: 1.9.0
resolution: "axios@npm:1.9.0"
dependencies:
follow-redirects: "npm:^1.15.6"
form-data: "npm:^4.0.0"
proxy-from-env: "npm:^1.1.0"
checksum: 10c0/9371a56886c2e43e4ff5647b5c2c3c046ed0a3d13482ef1d0135b994a628c41fbad459796f101c655e62f0c161d03883454474d2e435b2e021b1924d9f24994c
languageName: node
linkType: hard

"axobject-query@npm:^4.1.0":
version: 4.1.0
resolution: "axobject-query@npm:4.1.0"
Expand Down Expand Up @@ -10318,15 +10277,6 @@ __metadata:
languageName: node
linkType: hard

"better-opn@npm:^3.0.2":
version: 3.0.2
resolution: "better-opn@npm:3.0.2"
dependencies:
open: "npm:^8.0.4"
checksum: 10c0/911ef25d44da75aabfd2444ce7a4294a8000ebcac73068c04a60298b0f7c7506b60421aa4cd02ac82502fb42baaff7e4892234b51e6923eded44c5a11185f2f5
languageName: node
linkType: hard

"big-integer@npm:^1.6.44":
version: 1.6.52
resolution: "big-integer@npm:1.6.52"
Expand Down Expand Up @@ -13250,17 +13200,7 @@ __metadata:
languageName: node
linkType: hard

"enhanced-resolve@npm:^5.17.1, enhanced-resolve@npm:^5.7.0":
version: 5.18.1
resolution: "enhanced-resolve@npm:5.18.1"
dependencies:
graceful-fs: "npm:^4.2.4"
tapable: "npm:^2.2.0"
checksum: 10c0/4cffd9b125225184e2abed9fdf0ed3dbd2224c873b165d0838fd066cde32e0918626cba2f1f4bf6860762f13a7e2364fd89a82b99566be2873d813573ac71846
languageName: node
linkType: hard

"enhanced-resolve@npm:^5.17.3":
"enhanced-resolve@npm:^5.17.1, enhanced-resolve@npm:^5.17.3, enhanced-resolve@npm:^5.7.0":
version: 5.18.3
resolution: "enhanced-resolve@npm:5.18.3"
dependencies:
Expand Down Expand Up @@ -14847,18 +14787,6 @@ __metadata:
languageName: node
linkType: hard

"fdir@npm:^6.4.4":
version: 6.4.6
resolution: "fdir@npm:6.4.6"
peerDependencies:
picomatch: ^3 || ^4
peerDependenciesMeta:
picomatch:
optional: true
checksum: 10c0/45b559cff889934ebb8bc498351e5acba40750ada7e7d6bde197768d2fa67c149be8ae7f8ff34d03f4e1eb20f2764116e56440aaa2f6689e9a4aa7ef06acafe9
languageName: node
linkType: hard

"fetch-retry@npm:^6.0.0":
version: 6.0.0
resolution: "fetch-retry@npm:6.0.0"
Expand Down Expand Up @@ -15202,18 +15130,6 @@ __metadata:
languageName: node
linkType: hard

"form-data@npm:^4.0.0":
version: 4.0.2
resolution: "form-data@npm:4.0.2"
dependencies:
asynckit: "npm:^0.4.0"
combined-stream: "npm:^1.0.8"
es-set-tostringtag: "npm:^2.1.0"
mime-types: "npm:^2.1.12"
checksum: 10c0/e534b0cf025c831a0929bf4b9bbe1a9a6b03e273a8161f9947286b9b13bf8fb279c6944aae0070c4c311100c6d6dbb815cd955dc217728caf73fad8dc5b8ee9c
languageName: node
linkType: hard

"form-data@npm:^4.0.4":
version: 4.0.4
resolution: "form-data@npm:4.0.4"
Expand Down Expand Up @@ -16705,20 +16621,13 @@ __metadata:
languageName: node
linkType: hard

"ignore@npm:^7.0.0":
"ignore@npm:^7.0.0, ignore@npm:^7.0.3":
version: 7.0.5
resolution: "ignore@npm:7.0.5"
checksum: 10c0/ae00db89fe873064a093b8999fe4cc284b13ef2a178636211842cceb650b9c3e390d3339191acb145d81ed5379d2074840cf0c33a20bdbd6f32821f79eb4ad5d
languageName: node
linkType: hard

"ignore@npm:^7.0.3":
version: 7.0.4
resolution: "ignore@npm:7.0.4"
checksum: 10c0/90e1f69ce352b9555caecd9cbfd07abe7626d312a6f90efbbb52c7edca6ea8df065d66303863b30154ab1502afb2da8bc59d5b04e1719a52ef75bbf675c488eb
languageName: node
linkType: hard

"image-size@npm:^2.0.0, image-size@npm:^2.0.2":
version: 2.0.2
resolution: "image-size@npm:2.0.2"
Expand Down Expand Up @@ -20601,7 +20510,7 @@ __metadata:
languageName: node
linkType: hard

"open@npm:^8.0.4, open@npm:^8.4.0":
"open@npm:^8.4.0":
version: 8.4.2
resolution: "open@npm:8.4.2"
dependencies:
Expand Down Expand Up @@ -23939,19 +23848,7 @@ __metadata:
languageName: node
linkType: hard

"sha.js@npm:^2.4.0, sha.js@npm:^2.4.8":
version: 2.4.11
resolution: "sha.js@npm:2.4.11"
dependencies:
inherits: "npm:^2.0.1"
safe-buffer: "npm:^5.0.1"
bin:
sha.js: ./bin.js
checksum: 10c0/b7a371bca8821c9cc98a0aeff67444a03d48d745cb103f17228b96793f455f0eb0a691941b89ea1e60f6359207e36081d9be193252b0f128e0daf9cfea2815a5
languageName: node
linkType: hard

"sha.js@npm:^2.4.11":
"sha.js@npm:^2.4.0, sha.js@npm:^2.4.11, sha.js@npm:^2.4.8":
version: 2.4.12
resolution: "sha.js@npm:2.4.12"
dependencies:
Expand Down Expand Up @@ -24610,7 +24507,6 @@ __metadata:
"@yarnpkg/fslib": "npm:2.10.3"
"@yarnpkg/libzip": "npm:2.3.0"
ansi-to-html: "npm:^0.7.2"
better-opn: "npm:^3.0.2"
boxen: "npm:^8.0.1"
browser-dtector: "npm:^3.4.0"
bundle-require: "npm:^5.1.0"
Expand Down Expand Up @@ -24648,7 +24544,7 @@ __metadata:
memoizerific: "npm:^1.11.3"
nanoid: "npm:^4.0.2"
npmlog: "npm:^7.0.0"
open: "npm:^8.4.0"
open: "npm:^10.2.0"
p-limit: "npm:^6.2.0"
package-manager-detector: "npm:^1.1.0"
picocolors: "npm:^1.1.0"
Expand Down Expand Up @@ -25428,17 +25324,7 @@ __metadata:
languageName: node
linkType: hard

"tinyglobby@npm:^0.2.10, tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13, tinyglobby@npm:^0.2.14, tinyglobby@npm:^0.2.9":
version: 0.2.14
resolution: "tinyglobby@npm:0.2.14"
dependencies:
fdir: "npm:^6.4.4"
picomatch: "npm:^4.0.2"
checksum: 10c0/f789ed6c924287a9b7d3612056ed0cda67306cd2c80c249fd280cf1504742b12583a2089b61f4abbd24605f390809017240e250241f09938054c9b363e51c0a6
languageName: node
linkType: hard

"tinyglobby@npm:^0.2.15":
"tinyglobby@npm:^0.2.10, tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13, tinyglobby@npm:^0.2.14, tinyglobby@npm:^0.2.15, tinyglobby@npm:^0.2.9":
version: 0.2.15
resolution: "tinyglobby@npm:0.2.15"
dependencies:
Expand Down
Loading