feat: initial release
This commit is contained in:
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user