dependency-owners
Version:
Determine ownership of dependencies in a project
22 lines (21 loc) • 1.14 kB
JavaScript
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);
}