提交学习笔记专用
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
2.8 KiB

  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.isURL = exports.isTypedArray = exports.isInfinite = exports.isBigint = exports.isPrimitive = exports.isNaNValue = exports.isError = exports.isDate = exports.isSymbol = exports.isSet = exports.isMap = exports.isRegExp = exports.isBoolean = exports.isNumber = exports.isString = exports.isArray = exports.isEmptyObject = exports.isPlainObject = exports.isNull = exports.isUndefined = void 0;
  4. const getType = (payload) => Object.prototype.toString.call(payload).slice(8, -1);
  5. const isUndefined = (payload) => typeof payload === 'undefined';
  6. exports.isUndefined = isUndefined;
  7. const isNull = (payload) => payload === null;
  8. exports.isNull = isNull;
  9. const isPlainObject = (payload) => {
  10. if (typeof payload !== 'object' || payload === null)
  11. return false;
  12. if (payload === Object.prototype)
  13. return false;
  14. if (Object.getPrototypeOf(payload) === null)
  15. return true;
  16. return Object.getPrototypeOf(payload) === Object.prototype;
  17. };
  18. exports.isPlainObject = isPlainObject;
  19. const isEmptyObject = (payload) => exports.isPlainObject(payload) && Object.keys(payload).length === 0;
  20. exports.isEmptyObject = isEmptyObject;
  21. const isArray = (payload) => Array.isArray(payload);
  22. exports.isArray = isArray;
  23. const isString = (payload) => typeof payload === 'string';
  24. exports.isString = isString;
  25. const isNumber = (payload) => typeof payload === 'number' && !isNaN(payload);
  26. exports.isNumber = isNumber;
  27. const isBoolean = (payload) => typeof payload === 'boolean';
  28. exports.isBoolean = isBoolean;
  29. const isRegExp = (payload) => payload instanceof RegExp;
  30. exports.isRegExp = isRegExp;
  31. const isMap = (payload) => payload instanceof Map;
  32. exports.isMap = isMap;
  33. const isSet = (payload) => payload instanceof Set;
  34. exports.isSet = isSet;
  35. const isSymbol = (payload) => getType(payload) === 'Symbol';
  36. exports.isSymbol = isSymbol;
  37. const isDate = (payload) => payload instanceof Date && !isNaN(payload.valueOf());
  38. exports.isDate = isDate;
  39. const isError = (payload) => payload instanceof Error;
  40. exports.isError = isError;
  41. const isNaNValue = (payload) => typeof payload === 'number' && isNaN(payload);
  42. exports.isNaNValue = isNaNValue;
  43. const isPrimitive = (payload) => exports.isBoolean(payload) ||
  44. exports.isNull(payload) ||
  45. exports.isUndefined(payload) ||
  46. exports.isNumber(payload) ||
  47. exports.isString(payload) ||
  48. exports.isSymbol(payload);
  49. exports.isPrimitive = isPrimitive;
  50. const isBigint = (payload) => typeof payload === 'bigint';
  51. exports.isBigint = isBigint;
  52. const isInfinite = (payload) => payload === Infinity || payload === -Infinity;
  53. exports.isInfinite = isInfinite;
  54. const isTypedArray = (payload) => ArrayBuffer.isView(payload) && !(payload instanceof DataView);
  55. exports.isTypedArray = isTypedArray;
  56. const isURL = (payload) => payload instanceof URL;
  57. exports.isURL = isURL;
  58. //# sourceMappingURL=is.js.map