@goatlab/fluent
Version:
Readable query Interface & API generator for TS and Node
32 lines (31 loc) • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.nestQueryResults = void 0;
const js_utils_1 = require("@goatlab/js-utils");
const nestQueryResults = (results, keyToNestedKeyMap) => {
let nestableObject = {};
let currentLevel = 0;
for (const key of Object.keys(keyToNestedKeyMap)) {
if (!key.endsWith('_id')) {
continue;
}
const currentLevelMetadata = keyToNestedKeyMap[key];
currentLevel = currentLevelMetadata.level;
const grouped = js_utils_1.Arrays.groupBy(results, r => r[key]);
const resultCount = Object.keys(grouped)?.length || 0;
for (const [index, k] of Object.keys(grouped).entries()) {
const prefixindex = currentLevelMetadata.nestableKey.lastIndexOf('.');
const prefix = currentLevelMetadata.nestableKey.substring(0, prefixindex);
const currentIndex = `${prefix}.${index}.${currentLevelMetadata.keyName}`;
const results = grouped[k];
console.log(currentLevelMetadata);
if (currentLevelMetadata.level === currentLevel) {
nestableObject[`${currentIndex}`] = k;
}
for (const result of results) {
}
}
}
return results;
};
exports.nestQueryResults = nestQueryResults;