Skip to content

Commit

Permalink
feat(dev): --manual instead of --no-restart
Browse files Browse the repository at this point in the history
`--no-restart` remains an alias for `--manual` in v1
  • Loading branch information
pcattori committed Jul 12, 2023
1 parent a934129 commit 7db021c
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 14 deletions.
33 changes: 25 additions & 8 deletions packages/remix-dev/cli/commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -215,12 +215,13 @@ export async function dev(

// v2_dev
command?: string;
scheme?: string;
host?: string;
manual?: boolean;
port?: number;
restart?: boolean;
tlsKey?: string;
tlsCert?: string;
scheme?: string; // TODO: remove in v2
host?: string; // TODO: remove in v2
restart?: boolean; // TODO: remove in v2
} = {}
) {
console.log(`\n 💿 remix dev\n`);
Expand Down Expand Up @@ -521,13 +522,14 @@ let resolveDev = async (
let resolveDevServe = async (
config: RemixConfig,
flags: {
command?: string;
manual?: boolean;
port?: number;
tlsKey?: string;
tlsCert?: string;
scheme?: string; // TODO: remove in v2
host?: string; // TODO: remove in v2
command?: string;
restart?: boolean;
restart?: boolean; // TODO: remove in v2
} = {}
) => {
let dev = config.future.v2_dev;
Expand All @@ -540,12 +542,27 @@ let resolveDevServe = async (
flags.command ??
(dev === true ? undefined : dev.command)

let restart =
flags.restart ?? (dev === true ? undefined : dev.restart) ?? true;
// TODO: remove in v2
let restart = dev === true ? undefined : dev.restart;
if (restart !== undefined) {
logger.warn("The `v2_dev.restart` option is deprecated", {
details: [
"Use `v2_dev.manual` instead.",
"-> https://remix.run/docs/en/main/guides/development-performance#manual-mode",
],
});
}

// prettier-ignore
let manual =
flags.manual ??
(dev === true ? undefined : dev.manual) ??
restart !== undefined ? !restart : // TODO: remove in v2
false;

return {
...resolved,
command,
restart,
manual,
};
};
13 changes: 10 additions & 3 deletions packages/remix-dev/cli/run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ ${colors.logoBlue("R")} ${colors.logoGreen("E")} ${colors.logoYellow(
[v2_dev]
--command, -c Command used to run your app server
--manual Enable manual mode
--port Port for the dev server. Default: any open port
--no-restart Do not restart the app server when rebuilds occur.
--tls-key Path to TLS key (key.pem)
--tls-cert Path to TLS certificate (cert.pem)
\`init\` Options:
Expand Down Expand Up @@ -182,13 +182,14 @@ export async function run(argv: string[] = process.argv.slice(2)) {
// dev server
"--command": String,
"-c": "--command",
"--manual": Boolean,
"--port": Number,
"-p": "--port",
"--no-restart": Boolean,
"--tls-key": String,
"--tls-cert": String,

// deprecated, remove in v2
"--no-restart": Boolean,
"--scheme": String,
"--host": String,
},
Expand Down Expand Up @@ -254,7 +255,13 @@ export async function run(argv: string[] = process.argv.slice(2)) {
}
flags.interactive = flags.interactive ?? require.main === module;
if (args["--no-restart"]) {
flags.restart = false;
logger.warn("`--no-restart` flag is deprecated", {
details: [
"Use `--manual` instead.",
"-> https://remix.run/docs/en/main/guides/development-performance#manual-mode",
],
});
flags.manual = true;
delete flags["no-restart"];
}
if (args["--no-typescript"]) {
Expand Down
4 changes: 3 additions & 1 deletion packages/remix-dev/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,13 @@ export type ServerPlatform = "node" | "neutral";

type Dev = {
command?: string;
manual?: boolean;
port?: number;
restart?: boolean;
tlsKey?: string;
tlsCert?: string;

/** @deprecated remove in v2 */
restart?: boolean;
/** @deprecated remove in v2 */
scheme?: string;
/** @deprecated remove in v2 */
Expand Down
4 changes: 2 additions & 2 deletions packages/remix-dev/devServer_unstable/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,11 @@ export let serve = async (
initialConfig: RemixConfig,
options: {
command?: string;
manual: boolean;
port: number;
tlsKey?: string;
tlsCert?: string;
REMIX_DEV_ORIGIN: URL;
restart: boolean;
}
) => {
await loadEnv(initialConfig.rootDirectory);
Expand Down Expand Up @@ -200,7 +200,7 @@ export let serve = async (
let newState: typeof state = { prevManifest: state.manifest };
try {
let start = Date.now();
if (state.appServer === undefined || options.restart) {
if (state.appServer === undefined || !options.manual) {
if (state.appServer?.pid) {
await killtree(state.appServer.pid);
}
Expand Down

0 comments on commit 7db021c

Please sign in to comment.