* Validate requested issue fields against configured allowed-fields. * @param {Array<{name: string, value: string|number}>} issueFields * @param {string[]} allowedFields * @returns {void}
(issueFields, allowedFields)
| 47 | * @returns {void} |
| 48 | */ |
| 49 | function validateAllowedIssueFields(issueFields, allowedFields) { |
| 50 | if (!Array.isArray(issueFields) || issueFields.length === 0) return; |
| 51 | const fieldSet = buildAllowedFieldSet(allowedFields); |
| 52 | if (!fieldSet) return; |
| 53 | for (const field of issueFields) { |
| 54 | if (!fieldSet.has(field.name.toLowerCase())) { |
| 55 | throw new Error(`${ERR_VALIDATION}: issue field "${field.name}" is not in the allowed-fields list: ${allowedFields.join(", ")}`); |
| 56 | } |
| 57 | } |
| 58 | } |
| 59 | |
| 60 | module.exports = { |
| 61 | parseAllowedIssueFields, |
no test coverage detected