@reliverse/rse
Version:
@reliverse/rse is your all-in-one companion for bootstrapping and improving any kind of projects (especially web apps built with frameworks like Next.js) — whether you're kicking off something new or upgrading an existing app. It is also a little AI-power
44 lines (43 loc) • 1.07 kB
JavaScript
import { relinka } from "@reliverse/relinka";
import { confirmPrompt } from "@reliverse/rempts";
import { execa } from "execa";
import { isVSCodeInstalled } from "../handlers/isAppInstalled.js";
export async function askOpenInIDE({
isDev,
projectPath,
enforce = false
}) {
if (isDev) {
return;
}
let shouldOpenIDE;
if (enforce) {
shouldOpenIDE = true;
} else {
shouldOpenIDE = await confirmPrompt({
title: "Do you want to open the project in your editor?",
defaultValue: false
});
}
if (!shouldOpenIDE) {
return;
}
const vscodeInstalled = isVSCodeInstalled();
relinka(
"verbose",
vscodeInstalled ? "Opening bootstrapped project in VSCode-based IDE..." : "Trying to open project in default IDE..."
);
try {
await execa("code", [projectPath], {
detached: true,
stdio: "ignore"
});
} catch (error) {
relinka(
"error",
"Error opening project in IDE:",
error instanceof Error ? error.message : String(error),
`Try manually: code ${projectPath}`
);
}
}