UNPKG

@rcsb/rcsb-saguaro-app

Version:
39 lines 1.67 kB
import { __awaiter } from "tslib"; export var RcsbRequestTools; (function (RcsbRequestTools) { function getSingleObjectData(id, map, collector) { return __awaiter(this, void 0, void 0, function* () { const promise = map.get(id); if (promise) return promise; const t = collector(); map.set(id, t); return t; }); } RcsbRequestTools.getSingleObjectData = getSingleObjectData; function getMultipleObjectProperties(ids, map, collector, collectorKey, propertyKey) { return __awaiter(this, void 0, void 0, function* () { if (!Array.isArray(ids)) ids = [ids]; const missing = ids.filter(id => !map.has(id)); if (missing.length > 0) { const collectorPromise = collector.collect({ [collectorKey]: missing }); missing.forEach(id => { map.set(id, new Promise((resolve, reject) => { collectorPromise.then(t => { const d = t.find(t => propertyKey(t) == id); if (d) resolve(d); else reject(`${id} not available`); }); })); }); } return Promise.all(ids.map(i => map.get(i)).filter((x) => typeof x !== undefined)); }); } RcsbRequestTools.getMultipleObjectProperties = getMultipleObjectProperties; })(RcsbRequestTools || (RcsbRequestTools = {})); //# sourceMappingURL=RcsbRequestTools.js.map