import type { AssayFeature, AssaySample, } from './types' import { idFromName } from './builderIdUtils' export function createAssaySampleLookup(samples: AssaySample[]): Map { const lookup = new Map() for (const sample of samples) { addLookupAlias(lookup, sample.sampleId, sample.sampleId) if (sample.name) { addLookupAlias(lookup, sample.name, sample.sampleId) addLookupAlias(lookup, idFromName(sample.name, sample.sampleId), sample.sampleId) } } return lookup } export function createAssayFeatureLookup(features: AssayFeature[]): Map { const lookup = new Map() for (const feature of features) { addLookupAlias(lookup, feature.id, feature.id) addLookupAlias(lookup, feature.name, feature.id) addLookupAlias(lookup, idFromName(feature.name, feature.id), feature.id) } return lookup } function addLookupAlias(lookup: Map, alias: string, value: string): void { if (!lookup.has(alias)) { lookup.set(alias, value) } }