in read_input/format.js [296:333]
function formatHeaderData(rangeNoteKey, rangeName, header, note) {
if (!rangeNoteKey[rangeName]) {
rangeNoteKey[rangeName] = {
key: {},
required_keys: [],
allow_empty_keys: [],
metadata: {},
module: {},
};
}
let headerKey = cleanKey(header);
let noteHeader = lowerObj(sepKeyValPairs(note), true);
if (noteHeader["field"]) {
rangeNoteKey[rangeName]["key"][headerKey] = noteHeader["field"];
headerKey = noteHeader["field"];
}
if (noteHeader.metadata) {
let keyMetadata = sepArray(noteHeader["metadata"].toLowerCase());
if (keyMetadata.includes("required"))
rangeNoteKey[rangeName]["required_keys"].push(headerKey);
if (keyMetadata.includes("allowempty"))
rangeNoteKey[rangeName]["allow_empty_keys"].push(headerKey);
keyMetadata = keyMetadata.filter(
(val) => !["required", "allowempty"].includes(val)
);
if (keyMetadata.length > 0) {
let sortedKeyMatadata = customSort(keyMetadata, metadataOrderMap);
rangeNoteKey[rangeName]["metadata"][headerKey] = sortedKeyMatadata;
}
}
if (noteHeader.source) {
rangeNoteKey[rangeName]["module"]["source"] = noteHeader["source"];
}
if (noteHeader.version) {
rangeNoteKey[rangeName]["module"]["version"] = noteHeader["version"];
}
}