function validateStringFormat()

in libs/designer/src/lib/core/utils/validation.ts [310:370]


function validateStringFormat(parameterFormat: string, parameterValue: string, isTemplateExpression: boolean): string {
  if (!parameterFormat) {
    return '';
  }

  const intl = getIntl();
  switch (parameterFormat.toLowerCase()) {
    case 'datetime':
    case Constants.SWAGGER.FORMAT.DATETIME: {
      if (isTemplateExpression) {
        return '';
      }
      // RFC 3339
      if (Number.isNaN(Date.parse(parameterValue)) || !regex.datetime.test(parameterValue)) {
        return intl.formatMessage({
          defaultMessage: 'Enter a valid datetime.',
          id: '3uA4ml',
          description: 'Error validation message for date times',
        });
      }
      break;
    }

    case Constants.SWAGGER.FORMAT.EMAIL:
      // RFC 5322
      // Support validating multiple emails separated by ;
      if (isTemplateExpression) {
        try {
          return validateEmailLiteralsFromExpression(parameterValue);
        } catch {
          // NOTE: Parser throws exceptions when invalid emails are entered,
          // switch to normal validation in such cases.
          return validateStringEmails(parameterValue);
        }
      } else {
        return validateStringEmails(parameterValue);
      }

    case Constants.SWAGGER.FORMAT.URI: {
      if (isTemplateExpression) {
        return '';
      }
      if (regex.whiteSpace.test(parameterValue)) {
        return intl.formatMessage({
          defaultMessage: 'Whitespaces must be encoded for URIs.',
          id: 'A8T1X/',
          description: 'Error validation message for URIs with whitespace',
        });
      }
      if (!regex.url.test(parameterValue)) {
        return intl.formatMessage({ defaultMessage: 'Enter a valid URI.', id: '1r9ljA', description: 'Error validation message for URIs' });
      }
      break;
    }

    default:
      break;
  }

  return '';
}