Skip to main content
Glama
convertTransitionsToPeriods.ts1.79 kB
/** * Status Transition to Period Converter * * This utility transforms a chronological list of status transitions into distinct time periods * for each status. It processes the raw transition data to create a structured representation * of when an issue entered and exited each workflow state. This conversion is essential for * accurate time-in-status calculations, providing the foundation for metrics like cycle time, * lead time, and status-specific durations that help teams optimize their workflow. */ import { createStatusPeriod } from './createStatusPeriod' import { processTransition } from './processTransition' import type { StatusPeriod, StatusTransition } from './types/durationAssessment.types' /** * Converts transitions to status periods * @param transitions Array of status transitions * @returns Array of status periods */ export function convertTransitionsToPeriods(transitions: StatusTransition[]): StatusPeriod[] { if (transitions.length === 0) { return [] } const statusPeriods: StatusPeriod[] = [] let currentStatus = transitions[0].toStatus let currentStatusCategory = transitions[0].toStatusCategory let startTime = transitions[0].timestamp // Process all transitions into periods for (let i = 1; i < transitions.length; i++) { const transition = transitions[i] const result = processTransition(statusPeriods, currentStatus, currentStatusCategory, startTime, transition) currentStatus = result.currentStatus currentStatusCategory = result.currentStatusCategory startTime = result.startTime } // Add the last period if the issue is still in a status const finalPeriod = createStatusPeriod(currentStatus, currentStatusCategory, startTime, null) if (finalPeriod) { statusPeriods.push(finalPeriod) } return statusPeriods }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tbreeding/jira-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server