JAVASCRIPT   53

is moment input

Guest on 1st May 2022 04:40:11 PM

  1. import isObjectEmpty from './is-object-empty';
  2. import hasOwnProp from './has-own-prop';
  3. import isObject from './is-object';
  4. import isDate from './is-date';
  5. import isNumber from './is-number';
  6. import isString from './is-string';
  7. import { isMoment } from '../moment/constructor';
  8. import isArray from './is-array';
  9.  
  10. // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined
  11. export function isMomentInput(input) {
  12.     return (
  13.         isMoment(input) ||
  14.         isDate(input) ||
  15.         isString(input) ||
  16.         isNumber(input) ||
  17.         isNumberOrStringArray(input) ||
  18.         isMomentInputObject(input) ||
  19.         input === null ||
  20.         input === undefined
  21.     );
  22. }
  23.  
  24. export function isMomentInputObject(input) {
  25.     var objectTest = isObject(input) && !isObjectEmpty(input),
  26.         propertyTest = false,
  27.         properties = [
  28.             'years',
  29.             'year',
  30.             'y',
  31.             'months',
  32.             'month',
  33.             'M',
  34.             'days',
  35.             'day',
  36.             'd',
  37.             'dates',
  38.             'date',
  39.             'D',
  40.             'hours',
  41.             'hour',
  42.             'h',
  43.             'minutes',
  44.             'minute',
  45.             'm',
  46.             'seconds',
  47.             'second',
  48.             's',
  49.             'milliseconds',
  50.             'millisecond',
  51.             'ms',
  52.         ],
  53.         i,
  54.         property;
  55.  
  56.     for (i = 0; i < properties.length; i += 1) {
  57.         property = properties[i];
  58.         propertyTest = propertyTest || hasOwnProp(input, property);
  59.     }
  60.  
  61.     return objectTest && propertyTest;
  62. }
  63.  
  64. function isNumberOrStringArray(input) {
  65.     var arrayTest = isArray(input),
  66.         dataTypeTest = false;
  67.     if (arrayTest) {
  68.         dataTypeTest =
  69.             input.filter(function (item) {
  70.                 return !isNumber(item) && isString(input);
  71.             }).length === 0;
  72.     }
  73.     return arrayTest && dataTypeTest;
  74. }

Raw Paste


Login or Register to edit or fork this paste. It's free.