mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-23 02:45:38 -06:00
33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
// Normalizes command flag config records for CLI and channel commands.
|
|
import { isPlainObject } from "../infra/plain-object.js";
|
|
import type { CommandsConfig } from "./types.js";
|
|
|
|
/** Boolean command flags accepted by the normalized commands config. */
|
|
export type CommandFlagKey = {
|
|
[K in keyof CommandsConfig]-?: Exclude<CommandsConfig[K], undefined> extends boolean ? K : never;
|
|
}[keyof CommandsConfig];
|
|
|
|
function getOwnCommandFlagValue(
|
|
config: { commands?: unknown } | undefined,
|
|
key: CommandFlagKey,
|
|
): unknown {
|
|
const { commands } = config ?? {};
|
|
if (!isPlainObject(commands) || !Object.hasOwn(commands, key)) {
|
|
return undefined;
|
|
}
|
|
return commands[key];
|
|
}
|
|
|
|
/** Returns true only when a command flag is explicitly enabled. */
|
|
export function isCommandFlagEnabled(
|
|
config: { commands?: unknown } | undefined,
|
|
key: CommandFlagKey,
|
|
): boolean {
|
|
return getOwnCommandFlagValue(config, key) === true;
|
|
}
|
|
|
|
/** Returns the public restart command state; restart defaults on and is disabled only by false. */
|
|
export function isRestartEnabled(config?: { commands?: unknown }): boolean {
|
|
return getOwnCommandFlagValue(config, "restart") !== false;
|
|
}
|