UNPKG

@rcsb/rcsb-saguaro-app

Version:
28 lines (27 loc) 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AlignmentBlockFactory = void 0; const tslib_1 = require("tslib"); class AlignmentBlockFactory { constructor(alignmentTrackFactory, trackModifier) { this.trackFactory = alignmentTrackFactory; this.trackConfigModifier = trackModifier; } getBlock(alignmentRequestContext, alignmentData) { return tslib_1.__awaiter(this, void 0, void 0, function* () { var _a; alignmentRequestContext = Object.assign(Object.assign({}, alignmentRequestContext), { querySequence: (_a = alignmentData.query_sequence) !== null && _a !== void 0 ? _a : undefined }); if (!alignmentData.target_alignments) return []; return (yield Promise.all(alignmentData.target_alignments.map((alignment, index) => tslib_1.__awaiter(this, void 0, void 0, function* () { var _a, _b; if (alignmentRequestContext.filterByTargetContains != null && !((_a = alignment === null || alignment === void 0 ? void 0 : alignment.target_id) === null || _a === void 0 ? void 0 : _a.includes(alignmentRequestContext.filterByTargetContains))) return; if ((alignment === null || alignment === void 0 ? void 0 : alignment.target_sequence) == null) return; return Object.assign(Object.assign({}, yield this.trackFactory.getTrack(alignmentRequestContext, alignment)), yield ((_b = this.trackConfigModifier) === null || _b === void 0 ? void 0 : _b.call(this, alignmentRequestContext, alignment, alignmentData, index))); })))).filter((x) => x != undefined); }); } } exports.AlignmentBlockFactory = AlignmentBlockFactory;