mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-11 21:50:42 +00:00
29 lines
857 B
TypeScript
29 lines
857 B
TypeScript
import { isPlainObject } from "../infra/plain-object.js";
|
|
import type { CommandsConfig } from "./types.js";
|
|
|
|
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];
|
|
}
|
|
|
|
export function isCommandFlagEnabled(
|
|
config: { commands?: unknown } | undefined,
|
|
key: CommandFlagKey,
|
|
): boolean {
|
|
return getOwnCommandFlagValue(config, key) === true;
|
|
}
|
|
|
|
export function isRestartEnabled(config?: { commands?: unknown }): boolean {
|
|
return getOwnCommandFlagValue(config, "restart") !== false;
|
|
}
|