Skip to content
Snippets Groups Projects
Commit e13cb52e authored by Rhys Arkins's avatar Rhys Arkins
Browse files

feat: validate managers

parent ed331d4d
No related branches found
No related tags found
No related merge requests found
......@@ -22,8 +22,27 @@ import {
LANGUAGE_RUST,
} from '../constants/languages';
import { loadModules } from '../util/modules';
import { logger } from '../logger';
const managers = loadModules<ManagerApi>(__dirname);
// istanbul ignore next
function validateManager(manager): boolean {
if (!manager.defaultConfig) {
logger.fatal(`manager is missing defaultConfig`);
return false;
}
if (!manager.updateDependency) {
logger.fatal(`manager is missing updateDependency`);
return false;
}
if (!manager.extractPackageFile && !manager.extractAllPackageFiles) {
logger.fatal(
`manager must support extractPackageFile or extractAllPackageFiles`
);
}
return true;
}
const managers = loadModules<ManagerApi>(__dirname, validateManager);
const managerList = Object.keys(managers);
......
......@@ -22,7 +22,7 @@ function relatePath(here: string, there: string): string {
export function loadModules<T>(
dirname: string,
validate?: (x: unknown) => x is T
validate?: (x: unknown) => boolean
): Record<string, T> {
const result: Record<string, T> = {};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment