25 lines
829 B
JavaScript
25 lines
829 B
JavaScript
import { computeGroupsNames } from './compute-groups-names.js'
|
|
/**
|
|
* Throws an error if a group is specified more than once.
|
|
*
|
|
* @param parameters - Parameters object.
|
|
* @param parameters.groups - The groups to check for duplicates.
|
|
* @throws Error Will throw an error if duplicated groups are found.
|
|
*/
|
|
function validateNoDuplicatedGroups({ groups }) {
|
|
let groupNames = computeGroupsNames(groups)
|
|
let seenGroups = /* @__PURE__ */ new Set()
|
|
let duplicatedGroups = /* @__PURE__ */ new Set()
|
|
for (let groupName of groupNames) {
|
|
if (seenGroups.has(groupName)) {
|
|
duplicatedGroups.add(groupName)
|
|
} else {
|
|
seenGroups.add(groupName)
|
|
}
|
|
}
|
|
if (duplicatedGroups.size > 0) {
|
|
throw new Error(`Duplicated group(s): ${[...duplicatedGroups].join(', ')}`)
|
|
}
|
|
}
|
|
export { validateNoDuplicatedGroups }
|