feat(branching): add configuration for catalog arborescence

This commit is contained in:
Joxit
2023-05-30 07:49:18 +02:00
parent 398fa65fa1
commit 1031034bc4
11 changed files with 80 additions and 43 deletions

View File

@@ -1,6 +1,7 @@
export class DockerRegistryUIError extends Error {
constructor(msg) {
constructor(msg, code) {
super(msg);
this.isError = true;
this.code = code;
}
}

View File

@@ -1,4 +1,5 @@
import { DockerRegistryUIError } from './error.js';
const ERROR_CODE = 'CATALOG_BRANCHING_CONFIGURATION';
const getRepositoryName = (split, max) => {
let repositoryName = '';
@@ -29,14 +30,24 @@ const getLatestRepository = (repo, repoName) => {
}
};
const cleanInt = (n) => (n === '' ? 1 : parseInt(n));
export const getBranching = (min = 1, max = 1) => {
if (min > max) {
throw new DockerRegistryUIError(`min must be inferior to max (min: ${min} <= max: ${max})`);
min = cleanInt(min);
max = cleanInt(max);
if (isNaN(min) || isNaN(max)) {
throw new DockerRegistryUIError(`min and max must be integers: (min: ${min} and max: ${max}))`, ERROR_CODE);
} else if (min > max) {
throw new DockerRegistryUIError(`min must be inferior to max (min: ${min} <= max: ${max})`, ERROR_CODE);
} else if (max < 0 || min < 0) {
throw new DockerRegistryUIError(
`min and max must be greater than equals to 0 (min: ${min} >= 0 and max: ${max} >= 0)`
`min and max must be greater than equals to 0 (min: ${min} >= 0 and max: ${max} >= 0)`,
ERROR_CODE
);
}
if (max == 1) {
min = 1;
}
return (repositories) =>
repositories.sort().reduce(function (acc, image) {
const split = image.split('/');