diff options
Diffstat (limited to 'src/validators.js')
| -rw-r--r-- | src/validators.js | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/src/validators.js b/src/validators.js index 28f3cef7..8f32e669 100644 --- a/src/validators.js +++ b/src/validators.js @@ -839,10 +839,39 @@ export const validateURLEntry = (isURL) => }); export const isURLEntry = - validateURLEntry(isURL); + validateProperties({ + url: isURL, + annotation: optional(isStringNonEmpty), + }); export const isCuratedURLEntry = - validateURLEntry(isCuratedURL); + (() => { + const commonProperties = { + annotation: optional(isStringNonEmpty), + }; + + const pickyValidator = + validateProperties({ + url: isCuratedURL, + ...commonProperties, + bypassValidation: optional(is(false)), + }); + + const niceysValidator = + validateProperties({ + url: isURL, + ...commonProperties, + bypassValidation: is(true), + }); + + return value => { + if (typeof value === 'object' && value.bypassValidation) { + return niceysValidator(value); + } else { + return pickyValidator(value); + } + }; + })(); export const isURLList = validateArrayItems(isURLEntry); |