rule/required.js

/**
 * Svelte Form validation rules module.
 * @module svelte-form/rule/required
 */

import tc from '@spaceavocado/type-check';

/**
 * Required rule
 * @param {string} msg error message.
 * @return {boolean|string} true when valid, error message otherwise.
 */
export default (msg) => (value) => {
  if (tc.isNullOrUndefined(value)
  || tc.isObject(value)
  || tc.isFunction(value)) {
    return msg;
  }
  if (tc.isString(value)) {
    value = value.trim();
    if (value.length == 0) {
      return msg;
    }
  }
  return true;
};