mirror of https://github.com/openclaw/openclaw.git
34 lines
965 B
TypeScript
34 lines
965 B
TypeScript
import { isNonEmptyString, isRecord } from "./shared.js";
|
|
|
|
export type SecretExpectedResolvedValue = "string" | "string-or-object"; // pragma: allowlist secret
|
|
|
|
export function isExpectedResolvedSecretValue(
|
|
value: unknown,
|
|
expected: SecretExpectedResolvedValue,
|
|
): boolean {
|
|
if (expected === "string") {
|
|
return isNonEmptyString(value);
|
|
}
|
|
return isNonEmptyString(value) || isRecord(value);
|
|
}
|
|
|
|
export function hasConfiguredPlaintextSecretValue(
|
|
value: unknown,
|
|
expected: SecretExpectedResolvedValue,
|
|
): boolean {
|
|
if (expected === "string") {
|
|
return isNonEmptyString(value);
|
|
}
|
|
return isNonEmptyString(value) || (isRecord(value) && Object.keys(value).length > 0);
|
|
}
|
|
|
|
export function assertExpectedResolvedSecretValue(params: {
|
|
value: unknown;
|
|
expected: SecretExpectedResolvedValue;
|
|
errorMessage: string;
|
|
}): void {
|
|
if (!isExpectedResolvedSecretValue(params.value, params.expected)) {
|
|
throw new Error(params.errorMessage);
|
|
}
|
|
}
|