is-plain-object.js 837 B

12345678910111213141516171819202122232425
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var is_object_like_1 = require("./is-object-like");
  4. var is_type_1 = require("./is-type");
  5. var isPlainObject = function (value) {
  6. /**
  7. * isObjectLike(new Foo) => false
  8. * isObjectLike([1, 2, 3]) => false
  9. * isObjectLike({ x: 0, y: 0 }) => true
  10. * isObjectLike(Object.create(null)) => true
  11. */
  12. if (!is_object_like_1.default(value) || !is_type_1.default(value, 'Object')) {
  13. return false;
  14. }
  15. if (Object.getPrototypeOf(value) === null) {
  16. return true;
  17. }
  18. var proto = value;
  19. while (Object.getPrototypeOf(proto) !== null) {
  20. proto = Object.getPrototypeOf(proto);
  21. }
  22. return Object.getPrototypeOf(value) === proto;
  23. };
  24. exports.default = isPlainObject;
  25. //# sourceMappingURL=is-plain-object.js.map