MCPcopy Create free account
hub / github.com/bearlyai/OpenADE / toOpenADEProject

Function toOpenADEProject

projects/openade-module/src/yjsProjection.ts:118–134  ·  view source on GitHub ↗
(value: Record<string, unknown>, options: { workingTaskIds: string[]; pinnedTaskIds: string[] })

Source from the content-addressed store, hash-verified

116}
117
118function toOpenADEProject(value: Record<string, unknown>, options: { workingTaskIds: string[]; pinnedTaskIds: string[] }): OpenADEProject | null {
119 const id = stringValue(value.id)
120 if (!id) return null
121
122 const rawTasks = Array.isArray(value.tasks) ? value.tasks : []
123 const tasks = rawTasks
124 .map((task) => (isRecord(task) ? toOpenADETaskPreview(task) : null))
125 .filter((task): task is OpenADETaskPreview => task !== null)
126
127 return {
128 id,
129 name: stringValue(value.name, "Untitled project"),
130 path: stringValue(value.path),
131 archived: optionalBoolean(value.archived),
132 tasks: sortTasksLikeSidebar(tasks, options.workingTaskIds, options.pinnedTaskIds),
133 }
134}
135
136async function readPersonalSettings(storage: OpenADEYjsStorageAdapter): Promise<Record<string, unknown>> {
137 return (await storage.readMapObject("code:personal_settings", "personal_settings")) ?? {}

Callers 1

readReposFunction · 0.85

Calls 5

toOpenADETaskPreviewFunction · 0.85
sortTasksLikeSidebarFunction · 0.85
stringValueFunction · 0.70
isRecordFunction · 0.70
optionalBooleanFunction · 0.70

Tested by

no test coverage detected