openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
42 lines (41 loc) • 1.97 kB
JavaScript
import { c as normalizeOptionalString } from "./string-coerce-mnp54Vah.js";
import { in as errorShape, rn as ErrorCodes } from "./schema-BwaBORnA.js";
import { t as formatValidationErrors } from "./src-oj0IwW6K.js";
import { t as formatForLog } from "./ws-log-DlzuStZb.js";
//#region src/gateway/server-json.ts
/** Safely parses an optional JSON string, returning a payloadJSON wrapper on parse failure. */
function safeParseJson(value) {
const trimmed = normalizeOptionalString(value);
if (!trimmed) return;
try {
return JSON.parse(trimmed);
} catch {
return { payloadJSON: value };
}
}
//#endregion
//#region src/gateway/server-methods/nodes.helpers.ts
/** Responds with the protocol validation error for invalid method params. */
function respondInvalidParams(params) {
params.respond(false, void 0, errorShape(ErrorCodes.INVALID_REQUEST, `invalid ${params.method} params: ${formatValidationErrors(params.validator.errors)}`));
}
/** Converts thrown node-handler failures into `UNAVAILABLE` protocol errors. */
async function respondUnavailableOnThrow(respond, fn) {
try {
await fn();
} catch (err) {
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, formatForLog(err)));
}
}
/** Narrows successful node invoke results or responds with the node error details. */
function respondUnavailableOnNodeInvokeError(respond, res) {
if (res.ok) return true;
const nodeError = res.error && typeof res.error === "object" ? res.error : null;
const nodeCode = normalizeOptionalString(nodeError?.code) ?? "";
const nodeMessage = normalizeOptionalString(nodeError?.message) ?? "node invoke failed";
const message = nodeCode ? `${nodeCode}: ${nodeMessage}` : nodeMessage;
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, message, { details: { nodeError: res.error ?? null } }));
return false;
}
//#endregion
export { safeParseJson as i, respondUnavailableOnNodeInvokeError as n, respondUnavailableOnThrow as r, respondInvalidParams as t };