diff options
author | Alexander Neonxp Kiryukhin <i@neonxp.ru> | 2024-08-18 13:29:54 +0300 |
---|---|---|
committer | Alexander Neonxp Kiryukhin <i@neonxp.ru> | 2024-08-18 13:29:54 +0300 |
commit | fd70f95224374d23157ee7c0357733102cd0df53 (patch) | |
tree | e490c12e021cedaf211b292d5d623baa32a673fc /node_modules/moment/src/lib/utils/is-moment-input.js |
Diffstat (limited to 'node_modules/moment/src/lib/utils/is-moment-input.js')
-rw-r--r-- | node_modules/moment/src/lib/utils/is-moment-input.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/node_modules/moment/src/lib/utils/is-moment-input.js b/node_modules/moment/src/lib/utils/is-moment-input.js new file mode 100644 index 0000000..7543bde --- /dev/null +++ b/node_modules/moment/src/lib/utils/is-moment-input.js @@ -0,0 +1,75 @@ +import isObjectEmpty from './is-object-empty'; +import hasOwnProp from './has-own-prop'; +import isObject from './is-object'; +import isDate from './is-date'; +import isNumber from './is-number'; +import isString from './is-string'; +import { isMoment } from '../moment/constructor'; +import isArray from './is-array'; + +// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined +export function isMomentInput(input) { + return ( + isMoment(input) || + isDate(input) || + isString(input) || + isNumber(input) || + isNumberOrStringArray(input) || + isMomentInputObject(input) || + input === null || + input === undefined + ); +} + +export function isMomentInputObject(input) { + var objectTest = isObject(input) && !isObjectEmpty(input), + propertyTest = false, + properties = [ + 'years', + 'year', + 'y', + 'months', + 'month', + 'M', + 'days', + 'day', + 'd', + 'dates', + 'date', + 'D', + 'hours', + 'hour', + 'h', + 'minutes', + 'minute', + 'm', + 'seconds', + 'second', + 's', + 'milliseconds', + 'millisecond', + 'ms', + ], + i, + property, + propertyLen = properties.length; + + for (i = 0; i < propertyLen; i += 1) { + property = properties[i]; + propertyTest = propertyTest || hasOwnProp(input, property); + } + + return objectTest && propertyTest; +} + +function isNumberOrStringArray(input) { + var arrayTest = isArray(input), + dataTypeTest = false; + if (arrayTest) { + dataTypeTest = + input.filter(function (item) { + return !isNumber(item) && isString(input); + }).length === 0; + } + return arrayTest && dataTypeTest; +} |