@notatki/core
Version:
A collection of tools for creating and syncing Anki notes from simple text files.
35 lines (30 loc) • 854 B
text/typescript
import { type FieldNode, type NoteNode, type PropertyNode, type Token } from "@notatki/parser";
import { loc } from "./nodes.js";
export function reformatNoteNodes(nodes: Iterable<NoteNode>): NoteNode[] {
return [...nodes].map(mapNoteNode);
}
function mapNoteNode(node: NoteNode): NoteNode {
return {
properties: node.properties.map(mapPropertyNode),
fields: node.fields.map(mapFieldNode),
end: { text: "~~~", loc },
loc,
};
}
function mapPropertyNode({ name, value }: PropertyNode): PropertyNode {
return {
name: nameOf(name),
value: { text: value.text, loc },
loc,
};
}
function mapFieldNode({ name, value }: FieldNode): FieldNode {
return {
name: nameOf(name),
value: { text: value.text, loc },
loc,
};
}
function nameOf({ text }: Token): Token {
return { text: text.toLowerCase(), loc };
}