UNPKG

@rcsb/rcsb-saguaro-app

Version:
31 lines (30 loc) 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MultiplePolymerEntityCollector = void 0; const tslib_1 = require("tslib"); const MultipleEntityInstancesCollector_1 = require("./MultipleEntityInstancesCollector"); const TagDelimiter_1 = require("@rcsb/rcsb-api-tools/lib/RcsbUtils/TagDelimiter"); class MultiplePolymerEntityCollector { constructor() { this.multipleEntityInstanceCollector = new MultipleEntityInstancesCollector_1.MultipleEntityInstancesCollector(); } collect(requestConfig) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const results = yield this.multipleEntityInstanceCollector.collect(requestConfig); const map = new Map(); results.forEach(r => { var _a; if (!map.has(`${r.entryId}${TagDelimiter_1.TagDelimiter.entity}${r.entityId}`)) map.set(`${r.entryId}${TagDelimiter_1.TagDelimiter.entity}${r.entityId}`, []); (_a = map.get(`${r.entryId}${TagDelimiter_1.TagDelimiter.entity}${r.entityId}`)) === null || _a === void 0 ? void 0 : _a.push(r); }); return Array.from(map.entries()).map(([k, v]) => ({ rcsbId: v[0].rcsbId, entityId: v[0].entityId, entryId: v[0].entryId, instances: v })); }); } } exports.MultiplePolymerEntityCollector = MultiplePolymerEntityCollector;