chore: Enable "curly" rule to avoid single-statement if confusion/errors.

This commit is contained in:
cpojer
2026-01-31 16:19:20 +09:00
parent 009b16fab8
commit 5ceff756e1
1266 changed files with 27871 additions and 9393 deletions

View File

@@ -39,16 +39,24 @@ export function guardCancel<T>(value: T | symbol, runtime: RuntimeEnv): T {
export function summarizeExistingConfig(config: OpenClawConfig): string {
const rows: string[] = [];
const defaults = config.agents?.defaults;
if (defaults?.workspace) rows.push(shortenHomeInString(`workspace: ${defaults.workspace}`));
if (defaults?.workspace) {
rows.push(shortenHomeInString(`workspace: ${defaults.workspace}`));
}
if (defaults?.model) {
const model = typeof defaults.model === "string" ? defaults.model : defaults.model.primary;
if (model) rows.push(shortenHomeInString(`model: ${model}`));
if (model) {
rows.push(shortenHomeInString(`model: ${model}`));
}
}
if (config.gateway?.mode) {
rows.push(shortenHomeInString(`gateway.mode: ${config.gateway.mode}`));
}
if (config.gateway?.mode) rows.push(shortenHomeInString(`gateway.mode: ${config.gateway.mode}`));
if (typeof config.gateway?.port === "number") {
rows.push(shortenHomeInString(`gateway.port: ${config.gateway.port}`));
}
if (config.gateway?.bind) rows.push(shortenHomeInString(`gateway.bind: ${config.gateway.bind}`));
if (config.gateway?.bind) {
rows.push(shortenHomeInString(`gateway.bind: ${config.gateway.bind}`));
}
if (config.gateway?.remote?.url) {
rows.push(shortenHomeInString(`gateway.remote.url: ${config.gateway.remote.url}`));
}
@@ -63,7 +71,9 @@ export function randomToken(): string {
}
export function normalizeGatewayTokenInput(value: unknown): string {
if (typeof value !== "string") return "";
if (typeof value !== "string") {
return "";
}
return value.trim();
}
@@ -147,8 +157,12 @@ export async function resolveBrowserOpenCommand(): Promise<BrowserOpenCommand> {
}
if (wsl) {
const hasWslview = await detectBinary("wslview");
if (hasWslview) return { argv: ["wslview"], command: "wslview" };
if (!hasDisplay) return { argv: null, reason: "wsl-no-wslview" };
if (hasWslview) {
return { argv: ["wslview"], command: "wslview" };
}
if (!hasDisplay) {
return { argv: null, reason: "wsl-no-wslview" };
}
}
const hasXdgOpen = await detectBinary("xdg-open");
return hasXdgOpen
@@ -161,7 +175,9 @@ export async function resolveBrowserOpenCommand(): Promise<BrowserOpenCommand> {
export async function detectBrowserOpenSupport(): Promise<BrowserOpenSupport> {
const resolved = await resolveBrowserOpenCommand();
if (!resolved.argv) return { ok: false, reason: resolved.reason };
if (!resolved.argv) {
return { ok: false, reason: resolved.reason };
}
return { ok: true, command: resolved.command };
}
@@ -198,9 +214,13 @@ function resolveSshTargetHint(): string {
}
export async function openUrl(url: string): Promise<boolean> {
if (shouldSkipBrowserOpenInTests()) return false;
if (shouldSkipBrowserOpenInTests()) {
return false;
}
const resolved = await resolveBrowserOpenCommand();
if (!resolved.argv) return false;
if (!resolved.argv) {
return false;
}
const quoteUrl = resolved.quoteUrl === true;
const command = [...resolved.argv];
if (quoteUrl) {
@@ -225,10 +245,16 @@ export async function openUrl(url: string): Promise<boolean> {
}
export async function openUrlInBackground(url: string): Promise<boolean> {
if (shouldSkipBrowserOpenInTests()) return false;
if (process.platform !== "darwin") return false;
if (shouldSkipBrowserOpenInTests()) {
return false;
}
if (process.platform !== "darwin") {
return false;
}
const resolved = await resolveBrowserOpenCommand();
if (!resolved.argv || resolved.command !== "open") return false;
if (!resolved.argv || resolved.command !== "open") {
return false;
}
const command = ["open", "-g", url];
try {
await runCommandWithTimeout(command, { timeoutMs: 5_000 });
@@ -265,7 +291,9 @@ export function resolveNodeManagerOptions(): Array<{
}
export async function moveToTrash(pathname: string, runtime: RuntimeEnv): Promise<void> {
if (!pathname) return;
if (!pathname) {
return;
}
try {
await fs.access(pathname);
} catch {
@@ -281,7 +309,9 @@ export async function moveToTrash(pathname: string, runtime: RuntimeEnv): Promis
export async function handleReset(scope: ResetScope, workspaceDir: string, runtime: RuntimeEnv) {
await moveToTrash(CONFIG_PATH, runtime);
if (scope === "config") return;
if (scope === "config") {
return;
}
await moveToTrash(path.join(CONFIG_DIR, "credentials"), runtime);
await moveToTrash(resolveSessionTranscriptsDirForAgent(), runtime);
if (scope === "full") {
@@ -290,8 +320,12 @@ export async function handleReset(scope: ResetScope, workspaceDir: string, runti
}
export async function detectBinary(name: string): Promise<boolean> {
if (!name?.trim()) return false;
if (!isSafeExecutableValue(name)) return false;
if (!name?.trim()) {
return false;
}
if (!isSafeExecutableValue(name)) {
return false;
}
const resolved = name.startsWith("~") ? resolveUserPath(name) : name;
if (
path.isAbsolute(resolved) ||
@@ -317,7 +351,9 @@ export async function detectBinary(name: string): Promise<boolean> {
}
function shouldSkipBrowserOpenInTests(): boolean {
if (process.env.VITEST) return true;
if (process.env.VITEST) {
return true;
}
return process.env.NODE_ENV === "test";
}
@@ -369,7 +405,9 @@ export async function waitForGatewayReachable(params: {
password: params.password,
timeoutMs: probeTimeoutMs,
});
if (probe.ok) return probe;
if (probe.ok) {
return probe;
}
lastDetail = probe.detail;
await sleep(pollMs);
}
@@ -410,7 +448,9 @@ export function resolveControlUiLinks(params: {
if (bind === "custom" && customBindHost && isValidIPv4(customBindHost)) {
return customBindHost;
}
if (bind === "tailnet" && tailnetIPv4) return tailnetIPv4 ?? "127.0.0.1";
if (bind === "tailnet" && tailnetIPv4) {
return tailnetIPv4 ?? "127.0.0.1";
}
return "127.0.0.1";
})();
const basePath = normalizeControlUiBasePath(params.basePath);
@@ -424,7 +464,9 @@ export function resolveControlUiLinks(params: {
function isValidIPv4(host: string): boolean {
const parts = host.split(".");
if (parts.length !== 4) return false;
if (parts.length !== 4) {
return false;
}
return parts.every((part) => {
const n = Number.parseInt(part, 10);
return !Number.isNaN(n) && n >= 0 && n <= 255 && part === String(n);