22 lines
761 B
TypeScript
22 lines
761 B
TypeScript
|
import type { Address, IEntry, ListingResult, OrderedListing } from "./types";
|
||
|
|
||
|
export function listingAsOrdered(listing: ListingResult): OrderedListing {
|
||
|
const entries = Object.entries(listing) as [Address, IEntry][];
|
||
|
return entries
|
||
|
.sort(([_, a], [__, b]) => String(a.value.c).localeCompare(b.value.c))
|
||
|
.sort(([_, a], [__, b]) => String(a.value.t).localeCompare(b.value.t))
|
||
|
.sort(([_, a], [__, b]) => a.attribute.localeCompare(b.attribute));
|
||
|
}
|
||
|
|
||
|
export function asDict(attributes: OrderedListing): {
|
||
|
[key: string]: string;
|
||
|
} {
|
||
|
const result = {} as { [key: string]: string };
|
||
|
attributes
|
||
|
.map(([_, attribute]) => attribute)
|
||
|
.forEach((attribute) => {
|
||
|
result[attribute.attribute] = attribute.value.c;
|
||
|
});
|
||
|
return result;
|
||
|
}
|