asDict args, handles multiple entities, values

feat/vaults
Tomáš Mládek 2021-12-17 11:32:13 +01:00
parent f738875905
commit c77bb8a425
1 changed files with 18 additions and 9 deletions

View File

@ -8,14 +8,23 @@ export function listingAsOrdered(listing: ListingResult): OrderedListing {
.sort(([_, a], [__, b]) => a.attribute.localeCompare(b.attribute)); .sort(([_, a], [__, b]) => a.attribute.localeCompare(b.attribute));
} }
export function asDict(attributes: OrderedListing): { export function asDict(attributes: IEntry[]) {
[key: string]: string; const result = {} as { [key: string]: { [key: string]: unknown } };
} { attributes.forEach((entry) => {
const result = {} as { [key: string]: string }; if (!result[entry.entity]) {
attributes result[entry.entity] = {};
.map(([_, attribute]) => attribute) }
.forEach((attribute) => { if (result[entry.entity][entry.attribute]) {
result[attribute.attribute] = attribute.value.c; if (!Array.isArray(result[entry.entity][entry.attribute])) {
}); result[entry.entity][entry.attribute] = [
result[entry.entity][entry.attribute],
];
}
(result[entry.entity][entry.attribute] as unknown[]).push(entry.value.c);
} else {
result[entry.entity][entry.attribute] = entry.value.c;
}
});
return result; return result;
} }