HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: /var/www/javago_test/node_modules/node-input-validator/lib/util/messageParser.js
const { camelToSentance, snakeToSentance } = require('./str');

/**
 * parse message
 * @param {*} param0
 * @return {string}
 */
module.exports = function messageParser({
  args, attr, value, message = '',
}) {
  let defaultMessage = message;

  // replace attribute name
  if (defaultMessage.indexOf(':attribute') >= 0) {
    // convert camel to sentance and replce _ with space
    let attributeName = attr || '';

    if (attributeName.indexOf('.') < 0) {
      attributeName = camelToSentance(snakeToSentance(attr));
    }

    defaultMessage = defaultMessage.replace(':attribute', attributeName);
  }

  // replace args
  if (defaultMessage.indexOf(':args') >= 0) {
    defaultMessage = defaultMessage.replace(':args', args.toString());
  }

  // find and replace each arg
  for (let i = 0; i < 10; i++) {
    if (defaultMessage.indexOf(`:arg${i}`) >= 0) {
      defaultMessage = defaultMessage.replace(`:arg${i}`, args[i]);
    } else {
      break;
    }
  }

  if (defaultMessage.indexOf(':value') >= 0) {
    /* istanbul ignore next */
    if (typeof value === 'object') {
      defaultMessage = defaultMessage.replace(':value', JSON.stringify(value));
    } else if (typeof value === 'undefined') {
      defaultMessage = defaultMessage.replace(':value', 'undefined');
    } else {
      defaultMessage = defaultMessage.replace(':value', value.toString());
    }
  }

  return defaultMessage;
};