Files
SCM-Manager/scm-ui/ui-webapp/src/repos/branches/util/orderBranches.ts

31 lines
984 B
TypeScript
Raw Normal View History

// master, default should always be the first one,
// followed by develop the rest should be ordered by its name
import { Branch } from '@scm-manager/ui-types';
export function orderBranches(branches: Branch[]) {
branches.sort((a, b) => {
if (a.defaultBranch && !b.defaultBranch) {
return -20;
} else if (!a.defaultBranch && b.defaultBranch) {
return 20;
} else if (a.name === 'master' && b.name !== 'master') {
return -10;
} else if (a.name !== 'master' && b.name === 'master') {
return 10;
} else if (a.name === 'default' && b.name !== 'default') {
return -10;
} else if (a.name !== 'default' && b.name === 'default') {
return 10;
} else if (a.name === 'develop' && b.name !== 'develop') {
return -5;
} else if (a.name !== 'develop' && b.name === 'develop') {
return 5;
} else if (a.name < b.name) {
return -1;
} else if (a.name > b.name) {
return 1;
}
return 0;
});
}