MCPcopy Create free account
hub / github.com/apache/maka / normalizeUpdateTaskInput

Function normalizeUpdateTaskInput

packages/core/src/task-ledger.ts:324–386  ·  view source on GitHub ↗
(input: unknown)

Source from the content-addressed store, hash-verified

322}
323
324export function normalizeUpdateTaskInput(input: unknown): TaskLedgerNormalizeResult<{
325 subject?: string;
326 status?: TaskStatus;
327 blockedReason?: string;
328 failureReason?: string;
329 completionEvidence?: string;
330 explicitReopen?: boolean;
331}> {
332 if (typeof input !== 'object' || input === null || Array.isArray(input)) {
333 return invalid('empty_patch', 'Task update must be an object');
334 }
335 const record = input as UpdateTaskInput;
336 const patch: {
337 subject?: string;
338 status?: TaskStatus;
339 blockedReason?: string;
340 failureReason?: string;
341 completionEvidence?: string;
342 explicitReopen?: boolean;
343 } = {};
344 if (record.subject !== undefined) {
345 const subject = normalizeTaskSubject(record.subject);
346 if (!subject.ok) return subject;
347 patch.subject = subject.value;
348 }
349 if (record.status !== undefined) {
350 const status = normalizeTaskStatus(record.status);
351 if (!status.ok) return status;
352 patch.status = status.value;
353 }
354 if (record.blockedReason !== undefined) {
355 const blockedReason = normalizeTaskEvidenceText(record.blockedReason, 'blockedReason');
356 if (!blockedReason.ok) return blockedReason;
357 patch.blockedReason = blockedReason.value;
358 }
359 if (record.failureReason !== undefined) {
360 const failureReason = normalizeTaskEvidenceText(record.failureReason, 'failureReason');
361 if (!failureReason.ok) return failureReason;
362 patch.failureReason = failureReason.value;
363 }
364 if (record.completionEvidence !== undefined) {
365 const completionEvidence = normalizeTaskEvidenceText(
366 record.completionEvidence,
367 'completionEvidence',
368 );
369 if (!completionEvidence.ok) return completionEvidence;
370 patch.completionEvidence = completionEvidence.value;
371 }
372 if (record.explicitReopen !== undefined) {
373 patch.explicitReopen = record.explicitReopen === true;
374 }
375 if (
376 patch.subject === undefined &&
377 patch.status === undefined &&
378 patch.blockedReason === undefined &&
379 patch.failureReason === undefined &&
380 patch.completionEvidence === undefined &&
381 patch.explicitReopen === undefined

Callers 3

updateMethod · 0.90
validateTaskUpdateFunction · 0.85

Calls 4

normalizeTaskSubjectFunction · 0.85
normalizeTaskStatusFunction · 0.85
invalidFunction · 0.70

Tested by

no test coverage detected