mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-04 08:20:24 +00:00
refactor: dedupe core trimmed string readers
This commit is contained in:
@@ -53,9 +53,9 @@ function normalizePayloadKind(payload: Record<string, unknown>) {
|
||||
}
|
||||
|
||||
function inferPayloadIfMissing(raw: Record<string, unknown>) {
|
||||
const message = typeof raw.message === "string" ? raw.message.trim() : "";
|
||||
const text = typeof raw.text === "string" ? raw.text.trim() : "";
|
||||
const command = typeof raw.command === "string" ? raw.command.trim() : "";
|
||||
const message = normalizeOptionalString(raw.message) ?? "";
|
||||
const text = normalizeOptionalString(raw.text) ?? "";
|
||||
const command = normalizeOptionalString(raw.command) ?? "";
|
||||
if (message) {
|
||||
raw.payload = { kind: "agentTurn", message };
|
||||
return true;
|
||||
@@ -78,13 +78,13 @@ function copyTopLevelAgentTurnFields(
|
||||
let mutated = false;
|
||||
|
||||
const copyTrimmedString = (field: "model" | "thinking") => {
|
||||
const existing = payload[field];
|
||||
if (typeof existing === "string" && existing.trim()) {
|
||||
const existing = normalizeOptionalString(payload[field]);
|
||||
if (existing) {
|
||||
return;
|
||||
}
|
||||
const value = raw[field];
|
||||
if (typeof value === "string" && value.trim()) {
|
||||
payload[field] = value.trim();
|
||||
const value = normalizeOptionalString(raw[field]);
|
||||
if (value) {
|
||||
payload[field] = value;
|
||||
mutated = true;
|
||||
}
|
||||
};
|
||||
@@ -112,24 +112,22 @@ function copyTopLevelAgentTurnFields(
|
||||
payload.deliver = raw.deliver;
|
||||
mutated = true;
|
||||
}
|
||||
if (
|
||||
typeof payload.channel !== "string" &&
|
||||
typeof raw.channel === "string" &&
|
||||
raw.channel.trim()
|
||||
) {
|
||||
payload.channel = raw.channel.trim();
|
||||
const channel = normalizeOptionalString(raw.channel);
|
||||
if (typeof payload.channel !== "string" && channel) {
|
||||
payload.channel = channel;
|
||||
mutated = true;
|
||||
}
|
||||
if (typeof payload.to !== "string" && typeof raw.to === "string" && raw.to.trim()) {
|
||||
payload.to = raw.to.trim();
|
||||
const to = normalizeOptionalString(raw.to);
|
||||
if (typeof payload.to !== "string" && to) {
|
||||
payload.to = to;
|
||||
mutated = true;
|
||||
}
|
||||
const rawThreadId = normalizeOptionalString(raw.threadId);
|
||||
if (
|
||||
!("threadId" in payload) &&
|
||||
((typeof raw.threadId === "number" && Number.isFinite(raw.threadId)) ||
|
||||
(typeof raw.threadId === "string" && raw.threadId.trim()))
|
||||
((typeof raw.threadId === "number" && Number.isFinite(raw.threadId)) || Boolean(rawThreadId))
|
||||
) {
|
||||
payload.threadId = typeof raw.threadId === "string" ? raw.threadId.trim() : raw.threadId;
|
||||
payload.threadId = rawThreadId ?? raw.threadId;
|
||||
mutated = true;
|
||||
}
|
||||
if (
|
||||
@@ -139,12 +137,9 @@ function copyTopLevelAgentTurnFields(
|
||||
payload.bestEffortDeliver = raw.bestEffortDeliver;
|
||||
mutated = true;
|
||||
}
|
||||
if (
|
||||
typeof payload.provider !== "string" &&
|
||||
typeof raw.provider === "string" &&
|
||||
raw.provider.trim()
|
||||
) {
|
||||
payload.provider = raw.provider.trim();
|
||||
const provider = normalizeOptionalString(raw.provider);
|
||||
if (typeof payload.provider !== "string" && provider) {
|
||||
payload.provider = provider;
|
||||
mutated = true;
|
||||
}
|
||||
|
||||
@@ -300,11 +295,11 @@ export function normalizeStoredCronJobs(
|
||||
trackIssue("legacyPayloadKind");
|
||||
}
|
||||
if (!payloadRecord.kind) {
|
||||
if (typeof payloadRecord.message === "string" && payloadRecord.message.trim()) {
|
||||
if (normalizeOptionalString(payloadRecord.message)) {
|
||||
payloadRecord.kind = "agentTurn";
|
||||
mutated = true;
|
||||
trackIssue("legacyPayloadKind");
|
||||
} else if (typeof payloadRecord.text === "string" && payloadRecord.text.trim()) {
|
||||
} else if (normalizeOptionalString(payloadRecord.text)) {
|
||||
payloadRecord.kind = "systemEvent";
|
||||
mutated = true;
|
||||
trackIssue("legacyPayloadKind");
|
||||
@@ -343,8 +338,7 @@ export function normalizeStoredCronJobs(
|
||||
}
|
||||
|
||||
if (payloadRecord) {
|
||||
const hadLegacyPayloadProvider =
|
||||
typeof payloadRecord.provider === "string" && payloadRecord.provider.trim().length > 0;
|
||||
const hadLegacyPayloadProvider = Boolean(normalizeOptionalString(payloadRecord.provider));
|
||||
if (migrateLegacyCronPayload(payloadRecord)) {
|
||||
mutated = true;
|
||||
if (hadLegacyPayloadProvider) {
|
||||
@@ -361,7 +355,7 @@ export function normalizeStoredCronJobs(
|
||||
sched.kind = "at";
|
||||
mutated = true;
|
||||
}
|
||||
const atRaw = typeof sched.at === "string" ? sched.at.trim() : "";
|
||||
const atRaw = normalizeOptionalString(sched.at) ?? "";
|
||||
const atMsRaw = sched.atMs;
|
||||
const parsedAtMs =
|
||||
typeof atMsRaw === "number"
|
||||
@@ -403,8 +397,8 @@ export function normalizeStoredCronJobs(
|
||||
}
|
||||
}
|
||||
|
||||
const exprRaw = typeof sched.expr === "string" ? sched.expr.trim() : "";
|
||||
const legacyCronRaw = typeof sched.cron === "string" ? sched.cron.trim() : "";
|
||||
const exprRaw = normalizeOptionalString(sched.expr) ?? "";
|
||||
const legacyCronRaw = normalizeOptionalString(sched.cron) ?? "";
|
||||
let normalizedExpr = exprRaw;
|
||||
if (!normalizedExpr && legacyCronRaw) {
|
||||
normalizedExpr = legacyCronRaw;
|
||||
@@ -461,7 +455,7 @@ export function normalizeStoredCronJobs(
|
||||
|
||||
const payloadKind =
|
||||
payloadRecord && typeof payloadRecord.kind === "string" ? payloadRecord.kind : "";
|
||||
const rawSessionTarget = typeof raw.sessionTarget === "string" ? raw.sessionTarget.trim() : "";
|
||||
const rawSessionTarget = normalizeOptionalString(raw.sessionTarget) ?? "";
|
||||
const loweredSessionTarget = normalizeLowercaseStringOrEmpty(rawSessionTarget);
|
||||
if (loweredSessionTarget === "main" || loweredSessionTarget === "isolated") {
|
||||
if (raw.sessionTarget !== loweredSessionTarget) {
|
||||
|
||||
Reference in New Issue
Block a user