UNPKG

@goatlab/fluent

Version:

Readable query Interface & API generator for TS and Node

32 lines (31 loc) 1.33 kB
"use strict"; 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;