feat: initial release

This commit is contained in:
2026-07-12 18:34:54 +05:00
commit 66ddc3762f
17 changed files with 725 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
import matter from "gray-matter";
import { Task } from "../model/task";
export function parseTaskFile(content: string): Task {
const parsed = matter(content);
return {
id: parsed.data.id,
title: parsed.data.title,
description: parsed.content.trim(),
status: parsed.data.status ?? "todo",
priority: parsed.data.priority ?? "medium",
tags: parsed.data.tags ?? [],
assignee: parsed.data.assignee ?? "",
created: parsed.data.created ?? new Date().toISOString(),
updated: parsed.data.updated ?? new Date().toISOString(),
};
}
export function serializeTask(task: Task): string {
const frontmatter: Record<string, unknown> = {
id: task.id,
title: task.title,
status: task.status,
priority: task.priority,
tags: task.tags,
assignee: task.assignee,
created: task.created,
updated: task.updated,
};
const content = matter.stringify(task.description, frontmatter);
return content;
}
+5
View File
@@ -0,0 +1,5 @@
import { v4 as uuidv4 } from "uuid";
export function generateId(): string {
return uuidv4();
}