-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
I have a simple dev-server called Hot. https://jsr.io/@ndh/hot
It auto builds on src change, and hot-reloads the browser.
On start, it auto-opens the browser with the url : port being served.
I really like dsbuild and think a browser-launch feature would be a great enhancement:
https://jsr.io/@ndh/hot/1.1.5/browser.ts
/**
* Open a web page with the appropriate browser.
*
* This utility is used by a few dev-servers to
* auto-launch the browser with the url being served.
* @module
*/
/**
* Get a browser open command based on the os
* @returns the string for the command to call
*/
function getBrowserCmd(): string {
switch (Deno.build.os) {
case "windows":
return "explorer.exe";
case "darwin":
return "open";
case "linux":
if (Deno.env.get("WSL_DISTRO_NAME")) {
// is WSL
return "explorer.exe";
} else {
return "xdg-open";
}
default:
return "Unknown os"
}
}
/**
* Opens a URL in the default browser
*
* @param url - the complete url to be opened in the browser
*
* @examples
* openWebsite('https://Deno.com')
* openWebsite('http://localhost:8080')
*/
export function openWebsite(url: string): Deno.CommandOutput {
return new Deno.Command(getBrowserCmd(),
{ args: [url] }).outputSync();
}USAGE: bottom of my server:
https://jsr.io/@ndh/hot/1.1.5/server.ts
import { openWebsite } from "./browser.ts"
// ....
// ....
// .... bottom of my server
// launch the browser with our url
openWebsite(`http://localhost:${cfg.Port}`)Metadata
Metadata
Assignees
Labels
No labels