mirror of
https://github.com/orangecoding/fredy.git
synced 2026-06-16 12:31:07 +00:00
* feat(): create map component, add area filtering to the job config * feat(): filter listings by area filter * chore(): cleanup * feat(): solve feedback * feat(): solve most providers * feat(): solve maybe other providers * feat(): add specFilter config, also add rooms to listing * feat(): change tests * feat(): fix kleinanzeigen parser * feat(): add spec filter switch for listing overviiews * feat(): add rooms and size to the overview and detail of a listing * feat(): rem label * feat(): add types, update providers, they now return specs as numbers * feat(): add jsonconfig to enable type checks * feat: add type for prividerConfig, add fieldNames per provider * feat: fix tests, provider, add formatListing * chore: remov duplicates * feat(): fix tests * feat: fix immoscout * chore: geojson typing * feat: solve requested changes
30 lines
987 B
JavaScript
30 lines
987 B
JavaScript
/*
|
|
* Copyright (c) 2026 by Christian Kellner.
|
|
* Licensed under Apache-2.0 with Commons Clause and Attribution/Naming Clause
|
|
*/
|
|
|
|
/** @import { ParsedListing } from '../types/listing.js' */
|
|
|
|
/**
|
|
* @typedef {Omit<import('../types/listing.js').ParsedListing, 'price' | 'size' | 'rooms'> & {
|
|
* price: string | null,
|
|
* size: string | null,
|
|
* rooms: string | null,
|
|
* }} FormattedListing
|
|
*/
|
|
|
|
/**
|
|
* Formats a listing's numerical fields (price, size, rooms) into strings with their respective units.
|
|
*
|
|
* @param {import('../types/listing.js').ParsedListing} listing The original listing object.
|
|
* @returns {FormattedListing} A copy of the listing with formatted strings for price, size, and rooms.
|
|
*/
|
|
export const formatListing = (listing) => {
|
|
return {
|
|
...listing,
|
|
price: listing.price != null ? `${listing.price} €` : null,
|
|
size: listing.size != null ? `${listing.size} m²` : null,
|
|
rooms: listing.rooms != null ? `${listing.rooms} Zimmer` : null,
|
|
};
|
|
};
|