Files
paperclip-adapter-claude-k8s/dist/server/session.js
T
2026-04-15 21:45:46 +00:00

52 lines
2.2 KiB
JavaScript

function readNonEmptyString(value) {
return typeof value === "string" && value.trim().length > 0 ? value.trim() : null;
}
function extractSessionFields(record) {
const sessionId = readNonEmptyString(record.sessionId) ?? readNonEmptyString(record.session_id);
const cwd = readNonEmptyString(record.cwd) ??
readNonEmptyString(record.workdir) ??
readNonEmptyString(record.folder);
const workspaceId = readNonEmptyString(record.workspaceId) ?? readNonEmptyString(record.workspace_id);
const repoUrl = readNonEmptyString(record.repoUrl) ?? readNonEmptyString(record.repo_url);
const repoRef = readNonEmptyString(record.repoRef) ?? readNonEmptyString(record.repo_ref);
const promptBundleKey = readNonEmptyString(record.promptBundleKey) ?? readNonEmptyString(record.prompt_bundle_key);
return { sessionId, cwd, workspaceId, repoUrl, repoRef, promptBundleKey };
}
export const sessionCodec = {
deserialize(raw) {
if (typeof raw !== "object" || raw === null || Array.isArray(raw))
return null;
const { sessionId, cwd, workspaceId, repoUrl, repoRef, promptBundleKey } = extractSessionFields(raw);
if (!sessionId)
return null;
return {
sessionId,
...(cwd ? { cwd } : {}),
...(workspaceId ? { workspaceId } : {}),
...(repoUrl ? { repoUrl } : {}),
...(repoRef ? { repoRef } : {}),
...(promptBundleKey ? { promptBundleKey } : {}),
};
},
serialize(params) {
if (!params)
return null;
const { sessionId, cwd, workspaceId, repoUrl, repoRef, promptBundleKey } = extractSessionFields(params);
if (!sessionId)
return null;
return {
sessionId,
...(cwd ? { cwd } : {}),
...(workspaceId ? { workspaceId } : {}),
...(repoUrl ? { repoUrl } : {}),
...(repoRef ? { repoRef } : {}),
...(promptBundleKey ? { promptBundleKey } : {}),
};
},
getDisplayId(params) {
if (!params)
return null;
return readNonEmptyString(params.sessionId) ?? readNonEmptyString(params.session_id);
},
};
//# sourceMappingURL=session.js.map