mime-todo-cli/src/sprint.js
2026-03-15 05:11:59 +01:00

33 lines
1 KiB
JavaScript

export function parseSprints(text) {
const lines = text.split(/\r?\n/);
const sprints = [];
let current = null;
for (const line of lines) {
// Start of sprint entry (must not trim indentation)
if (/^\s*-\s*(Name:.*)?$/.test(line)) {
if (current)
sprints.push(current);
current = {};
const match = line.match(/^\s*-\s*Name:\s*(.*)$/);
if (match)
current.name = match[1];
continue;
}
// Key-value pairs (must be indented)
const kv = line.match(/^\s+([A-Za-z][A-Za-z0-9]*):\s*(.*)$/);
if (kv && current) {
const key = kv[1];
const value = kv[2];
if (key === "Name")
current.name = value;
if (key === "Range") {
const [start, end] = value.split("..");
current.start = start;
current.end = end;
}
}
}
if (current)
sprints.push(current);
return sprints;
}