import { ModuleDescriptor, ResolveOptions, SearchResults } from '../types'; /** * Resolves search results to a list of platform-specific configuration. */ export async function resolveModulesAsync( searchResults: SearchResults, options: ResolveOptions ): Promise { const platformLinking = require(`../platforms/${options.platform}`); return ( await Promise.all( Object.entries(searchResults).map(async ([packageName, revision]) => { const resolvedModule = await platformLinking.resolveModuleAsync( packageName, revision, options ); return resolvedModule ? { packageName, packageVersion: revision.version, ...resolvedModule, } : null; }) ) ) .filter(Boolean) .sort((a, b) => a.packageName.localeCompare(b.packageName)); }