MCPcopy Create free account
hub / github.com/AlexErrant/Pentive / noteEntityToDomain

Function noteEntityToDomain

app/src/sqlite/util.ts:116–154  ·  view source on GitHub ↗
(
	note: NoteEntity & { template_fields: string },
	remotes: RemoteNote[],
)

Source from the content-addressed store, hash-verified

114}
115
116export function noteEntityToDomain(
117 note: NoteEntity & { template_fields: string },
118 remotes: RemoteNote[],
119): Note {
120 const noteFVs = parseMap<string, string>(note.fieldValues)
121 const tF = parseTemplateFields(note.template_fields).map((f) => f.name)
122 const fieldValues = Object.fromEntries(
123 tF.map((f) => [f, noteFVs.get(f) ?? '']),
124 )
125 noteFVs.forEach((v, f) => {
126 if (!tF.includes(f)) {
127 fieldValues[f] = v
128 }
129 })
130 const r = {
131 id: fromLDbId(note.id),
132 created: new Date(note.created),
133 edited: new Date(note.edited),
134 templateId: fromLDbId(note.templateId),
135 tags: parseTags(note.tags),
136 fieldValues,
137 ankiNoteId: note.ankiNoteId ?? undefined,
138 remotes: Object.fromEntries(
139 remotes.map((r) => [
140 r.nook,
141 r.remoteId == null
142 ? null
143 : ({
144 remoteNoteId: fromLDbId(r.remoteId),
145 uploadDate: new Date(r.uploadDate!),
146 } satisfies Note['remotes'][NookId]),
147 ]),
148 ),
149 } satisfies Note
150 if (r.ankiNoteId === undefined) {
151 delete r.ankiNoteId
152 }
153 return r
154}
155
156export function pluginEntityToDomain(entity: PluginEntity): Plugin {
157 return {

Callers 5

getCardsFunction · 0.90
getNoteFunction · 0.90
getNotesByIdsFunction · 0.90
getNewNotesToUploadDomFunction · 0.90

Calls 3

parseMapFunction · 0.90
fromLDbIdFunction · 0.90
parseTagsFunction · 0.85

Tested by

no test coverage detected