import { format as mapBiblatex, formatBibtex as mapBibtex } from '../mapping/index.js';
import { format as formatValue, formatAnnotation } from './value.js';
function formatEntryValues({ type, label, properties }) {
    const output = {
        type,
        label,
        properties: {},
    };
    for (const property in properties) {
        const value = properties[property];
        const [field, annotation] = property.split('+an:');
        if (annotation) {
            if (!output.annotations) {
                output.annotations = {};
            }
            if (!output.annotations[field]) {
                output.annotations[field] = {};
            }
            output.annotations[field][annotation] = formatAnnotation(value);
        }
        else {
            output.properties[property] = formatValue(property, value);
        }
    }
    return output;
}
export function format(entries) {
    return mapBiblatex(entries).map(formatEntryValues);
}
export function formatBibtex(entries) {
    return mapBibtex(entries).map(formatEntryValues);
}
