UNPKG

dependency-owners

Version:
22 lines (21 loc) 1.14 kB
import * as path from 'node:path'; import { getOwners, getOwnersMapping } from "./utils/owners.js"; import { resolveDependencyLoader, } from "./utils/loader.js"; /** * Get the owners of the specified dependencies. * @param {Options} options - The options for the dependency owners lookup. * @returns {Promise<Record<string, string[]>>} A mapping of dependency owners for the specified dependencies. */ export async function dependencyOwners(options) { const { dependencies = [], loader, dependencyFile, configFile = path.join(process.cwd(), 'dependency-owners.json'), } = options; const resolvedLoader = await resolveDependencyLoader(loader, dependencyFile); if (!resolvedLoader) { throw new Error(`No loader found for file: ${dependencyFile}`); } const ownersMapping = getOwnersMapping(configFile); const resolvedDependencies = await resolvedLoader.load(dependencyFile); const filteredDependencies = resolvedDependencies .filter((dep) => dependencies.length === 0 || dependencies.includes(dep.name)) .map((dep) => dep.name); return getOwners(filteredDependencies, ownersMapping); }