@mikezimm/fps-core-v7
Version:
Library of reusable core interfaces, types and constants migrated from fps-library-v2
45 lines • 1.48 kB
JavaScript
/**
* cleanSearchedResults will go through results.items and flatten the results into traditional objects.
*
* @param results
* @returns
*/
export function cleanSearchResults(results) {
const { fetchAPI } = results;
if (!fetchAPI || fetchAPI.indexOf('_api/search') === -1)
return results;
const rows = results.items;
const cleanItems = [];
rows.map((row) => {
const thisItem = {};
row.Cells.map((cell) => {
const { Key, Value, ValueType } = cell;
const convertedValue = converValueType(Value, ValueType);
thisItem[Key] = convertedValue;
});
cleanItems.push(thisItem);
});
results.search = rows;
results.items = cleanItems;
return results;
}
export function converValueType(value, valueType) {
switch (valueType) {
case 'Edm.String':
case 'Edm.Guid': // Treat as a string
case 'Edm.DateTime':
// return new Date(value);
return value;
case 'Edm.Int32':
case 'Edm.Int64':
return parseInt(value, 10);
case 'Edm.Double':
return parseFloat(value);
case 'Edm.Boolean':
return value.toLowerCase() === 'true';
default:
console.warn(`Unhandled ValueType: ${valueType}`);
return value; // Return as is for unknown types
}
}
//# sourceMappingURL=cleanSearchedResults.js.map