isJSON.js 1.3 KB

1234567891011121314151617181920212223242526272829
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = isJSON;
  6. var _assertString = _interopRequireDefault(require("./util/assertString"));
  7. var _includesArray = _interopRequireDefault(require("./util/includesArray"));
  8. var _merge = _interopRequireDefault(require("./util/merge"));
  9. function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
  10. function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
  11. var default_json_options = {
  12. allow_primitives: false
  13. };
  14. function isJSON(str, options) {
  15. (0, _assertString.default)(str);
  16. try {
  17. options = (0, _merge.default)(options, default_json_options);
  18. var primitives = [];
  19. if (options.allow_primitives) {
  20. primitives = [null, false, true];
  21. }
  22. var obj = JSON.parse(str);
  23. return (0, _includesArray.default)(primitives, obj) || !!obj && _typeof(obj) === 'object';
  24. } catch (e) {/* ignore */}
  25. return false;
  26. }
  27. module.exports = exports.default;
  28. module.exports.default = exports.default;