jsonSizeFast.js 914 B

123456789101112131415161718192021222324252627282930313233
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.jsonSizeFast = void 0;
  4. const arraySize = (arr) => {
  5. let size = 2;
  6. for (let i = arr.length - 1; i >= 0; i--)
  7. size += (0, exports.jsonSizeFast)(arr[i]);
  8. return size;
  9. };
  10. const objectSize = (obj) => {
  11. let size = 2;
  12. for (const key in obj)
  13. if (obj.hasOwnProperty(key))
  14. size += 2 + key.length + (0, exports.jsonSizeFast)(obj[key]);
  15. return size;
  16. };
  17. const jsonSizeFast = (value) => {
  18. if (value === null)
  19. return 1;
  20. switch (typeof value) {
  21. case 'number':
  22. return 9;
  23. case 'string':
  24. return 4 + value.length;
  25. case 'boolean':
  26. return 1;
  27. }
  28. if (value instanceof Array)
  29. return arraySize(value);
  30. return objectSize(value);
  31. };
  32. exports.jsonSizeFast = jsonSizeFast;
  33. //# sourceMappingURL=jsonSizeFast.js.map