mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-12 09:41:11 +00:00
20 lines
606 B
TypeScript
20 lines
606 B
TypeScript
import { lowercasePreservingWhitespace } from "./shared/string-coerce.js";
|
|
|
|
function toSnakeCaseKey(key: string): string {
|
|
const snakeKey = key
|
|
.replace(/([A-Z]+)([A-Z][a-z])/g, "$1_$2")
|
|
.replace(/([a-z0-9])([A-Z])/g, "$1_$2");
|
|
return lowercasePreservingWhitespace(snakeKey);
|
|
}
|
|
|
|
export function readSnakeCaseParamRaw(params: Record<string, unknown>, key: string): unknown {
|
|
if (Object.hasOwn(params, key)) {
|
|
return params[key];
|
|
}
|
|
const snakeKey = toSnakeCaseKey(key);
|
|
if (snakeKey !== key && Object.hasOwn(params, snakeKey)) {
|
|
return params[snakeKey];
|
|
}
|
|
return undefined;
|
|
}
|