json-storage-formatter 2.0.6 → 2.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bundle.js ADDED
@@ -0,0 +1 @@
1
+ !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports["json-storage-formatter"]=r():e["json-storage-formatter"]=r()}(this,(()=>(()=>{"use strict";var e={333:(e,r,t)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}Object.defineProperty(r,"__esModule",{value:!0}),r.clone=void 0;var i=t(646),u=t(346),a=t(473);r.clone=function(e){var t,f=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).shallow;if((0,a.isPrimitive)(e)||(0,i.isDate)(e))return e;if(Array.isArray(e))return f?function(e){if(Array.isArray(e))return o(e)}(t=e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,r){if(e){if("string"==typeof e)return o(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(e,r):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}():e.map((function(e){return(0,r.clone)(e)}));if(e instanceof Map){var l=Array.from(e.entries());return f?new Map(l):new Map(l.map((function(e){return(0,r.clone)(e)})))}if(e instanceof Set){var c=Array.from(e.values());return f?new Set(c):new Set(c.map((function(e){return(0,r.clone)(e)})))}return e instanceof RegExp?new RegExp(e.toString()):(0,u.isFunction)(e)?f?e:Object.create(e):f?Object.assign({},e):e instanceof Error?new Error(e.message):Object.keys(e).reduce((function(t,o){var i=e[o];return Object.assign(Object.assign({},t),function(e,r,t){return(r=function(e){var r=function(e){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=n(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}({},o,(0,r.clone)(i)))}),{})}},944:(e,r,t)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}Object.defineProperty(r,"__esModule",{value:!0}),r.formatFromStore=void 0;var i=t(333),u=t(346),a=t(473);r.formatFromStore=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},f=t.jsonParse,l=t.sortKeys;return function(e){var t,i,f;if((0,a.isPrimitive)(e))return e;if("date"===(null==e?void 0:e.$t))return new Date(e.$v);if("map"===(null==e?void 0:e.$t)){var c=(null!==(t=e.$v)&&void 0!==t?t:[]).map((function(e){var t,n,i=(n=2,function(e){if(Array.isArray(e))return e}(t=e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,i,u,a=[],f=!0,l=!1;try{if(i=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;f=!1}else for(;!(f=(n=i.call(t)).done)&&(a.push(n.value),a.length!==r);f=!0);}catch(e){l=!0,o=e}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(l)throw o}}return a}}(t,n)||function(e,r){if(e){if("string"==typeof e)return o(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(e,r):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=i[0],a=i[1];return[u,(0,r.formatFromStore)(a)]}));return new Map(c)}if("set"===(null==e?void 0:e.$t)){var s=null!==(i=e.$v)&&void 0!==i?i:[].map((function(e){return(0,r.formatFromStore)(e)}));return new Set(s)}return"regex"===(null==e?void 0:e.$t)?new RegExp(e.$v):"error"===(null==e?void 0:e.$t)?new Error(e.$v):Array.isArray(e)?e.map((function(e){return(0,r.formatFromStore)(e)})):"function"===(null==e?void 0:e.$t)?Function("(".concat(e.$v,")(...arguments)")):(f=Object.keys(e),l?(0,u.isFunction)(l)?f.sort(l):f.sort((function(e,r){return(null!=e?e:"").localeCompare(r)})):f).reduce((function(t,o){var i,u,a,f=e[o];return Object.assign(Object.assign({},t),(i={},u=o,a=(0,r.formatFromStore)(f),(u=function(e){var r=function(e){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=n(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(r)?r:r+""}(u))in i?Object.defineProperty(i,u,{value:a,enumerable:!0,configurable:!0,writable:!0}):i[u]=a,i))}),{})}(f?JSON.parse(e):(0,i.clone)(e))}},915:(e,r,t)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.formatToStore=void 0;var o=t(333),i=t(646),u=t(346),a=t(473),f=t(43);r.formatToStore=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{stringify:!1},t=r.stringify,l=r.validator,c=r.excludeTypes,s=r.excludeKeys,y=r.sortKeys,m=new Set(null!=c?c:[]),v=new Set(null!=s?s:[]),b=m.size||v.size,p=null!=l?l:function(e){var r=e.key,t=e.value;if(!b)return!0;var o=v.has(r),i=m.has(n(t));return!o&&!i},d=function(e){if((0,a.isPrimitive)(e))return e;var r;if(Array.isArray(e))return e.map((function(e){return d(e)}));if(e instanceof Map)return{$t:"map",$v:Array.from(e.entries()).map((function(e){return d(e)}))};if(e instanceof Set)return{$t:"set",$v:Array.from(e.values()).map((function(e){return d(e)}))};if((0,i.isDate)(e))return{$t:"date",$v:e.toISOString()};if((0,f.isRegex)(e))return{$t:"regex",$v:e.toString()};if((0,u.isFunction)(e)){var t;try{t={$t:"function",$v:e.toString()}}catch(e){t={$t:"error",$v:"Error: Could not serialize function"}}return t}return e instanceof Error?{$t:"error",$v:e.message}:(r=Object.keys(e),y?(0,u.isFunction)(y)?r.sort(y):r.sort((function(e,r){return(null!=e?e:"").localeCompare(r)})):r).reduce((function(r,t){var o,i,u,a=e[t],f=d(a);return p({obj:e,key:t,value:f})?Object.assign(Object.assign({},r),(o={},i=t,u=d(a),(i=function(e){var r=function(e){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=n(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(r)?r:r+""}(i))in o?Object.defineProperty(o,i,{value:u,enumerable:!0,configurable:!0,writable:!0}):o[i]=u,o)):r}),{})},g=d((0,o.clone)(e));return t?JSON.stringify(g):g}},112:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isBoolean=void 0,r.isBoolean=function(e){return"boolean"==typeof e}},646:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isDate=void 0,r.isDate=function(e){return e instanceof Date}},346:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isFunction=void 0,r.isFunction=function(e){return"function"==typeof e||e instanceof Function}},243:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isNil=void 0,r.isNil=function(e){return null==e}},11:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isNumber=void 0,r.isNumber=function(e){return"number"==typeof e}},473:(e,r,t)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.isPrimitive=void 0;var o=t(112),i=t(243),u=t(11),a=t(671);r.isPrimitive=function(e){return(0,i.isNil)(e)||(0,u.isNumber)(e)||(0,o.isBoolean)(e)||(0,a.isString)(e)||"symbol"===n(e)}},43:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isRegex=void 0,r.isRegex=function(e){return e instanceof RegExp}},671:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isString=void 0,r.isString=function(e){return"string"==typeof e}}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var i=r[n]={exports:{}};return e[n](i,i.exports,t),i.exports}var n={};return(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:!0}),e.formatToStore=e.formatFromStore=e.isPrimitive=e.isFunction=e.isRegex=e.isDate=e.isString=e.isBoolean=e.isNumber=e.isNil=e.clone=void 0;var r=t(333);Object.defineProperty(e,"clone",{enumerable:!0,get:function(){return r.clone}});var o=t(243);Object.defineProperty(e,"isNil",{enumerable:!0,get:function(){return o.isNil}});var i=t(11);Object.defineProperty(e,"isNumber",{enumerable:!0,get:function(){return i.isNumber}});var u=t(112);Object.defineProperty(e,"isBoolean",{enumerable:!0,get:function(){return u.isBoolean}});var a=t(671);Object.defineProperty(e,"isString",{enumerable:!0,get:function(){return a.isString}});var f=t(646);Object.defineProperty(e,"isDate",{enumerable:!0,get:function(){return f.isDate}});var l=t(43);Object.defineProperty(e,"isRegex",{enumerable:!0,get:function(){return l.isRegex}});var c=t(346);Object.defineProperty(e,"isFunction",{enumerable:!0,get:function(){return c.isFunction}});var s=t(473);Object.defineProperty(e,"isPrimitive",{enumerable:!0,get:function(){return s.isPrimitive}});var y=t(944);Object.defineProperty(e,"formatFromStore",{enumerable:!0,get:function(){return y.formatFromStore}});var m=t(915);Object.defineProperty(e,"formatToStore",{enumerable:!0,get:function(){return m.formatToStore}})})(),n})()));
package/clone.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Deep clone an object, it also support Map, Set, Arrays
3
+ * @param value
4
+ * @returns
5
+ * A deep clone of the object
6
+ * */
7
+ export declare const clone: <T>(value: T, { shallow, }?: {
8
+ /**
9
+ * If true, it will only clone the first level of the object
10
+ */
11
+ shallow?: boolean;
12
+ }) => T;
package/clone.js ADDED
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["json-storage-formatter"]=t():e["json-storage-formatter"]=t()}(this,(()=>(()=>{"use strict";var e={333:(e,t,r)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}Object.defineProperty(t,"__esModule",{value:!0}),t.clone=void 0;var i=r(646),u=r(346),f=r(473);t.clone=function(e){var r,a=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).shallow;if((0,f.isPrimitive)(e)||(0,i.isDate)(e))return e;if(Array.isArray(e))return a?function(e){if(Array.isArray(e))return o(e)}(r=e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(r)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}():e.map((function(e){return(0,t.clone)(e)}));if(e instanceof Map){var c=Array.from(e.entries());return a?new Map(c):new Map(c.map((function(e){return(0,t.clone)(e)})))}if(e instanceof Set){var s=Array.from(e.values());return a?new Set(s):new Set(s.map((function(e){return(0,t.clone)(e)})))}return e instanceof RegExp?new RegExp(e.toString()):(0,u.isFunction)(e)?a?e:Object.create(e):a?Object.assign({},e):e instanceof Error?new Error(e.message):Object.keys(e).reduce((function(r,o){var i=e[o];return Object.assign(Object.assign({},r),function(e,t,r){return(t=function(e){var t=function(e){if("object"!=n(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=n(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}({},o,(0,t.clone)(i)))}),{})}},112:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isBoolean=void 0,t.isBoolean=function(e){return"boolean"==typeof e}},646:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isDate=void 0,t.isDate=function(e){return e instanceof Date}},346:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isFunction=void 0,t.isFunction=function(e){return"function"==typeof e||e instanceof Function}},243:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isNil=void 0,t.isNil=function(e){return null==e}},11:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isNumber=void 0,t.isNumber=function(e){return"number"==typeof e}},473:(e,t,r)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.isPrimitive=void 0;var o=r(112),i=r(243),u=r(11),f=r(671);t.isPrimitive=function(e){return(0,i.isNil)(e)||(0,u.isNumber)(e)||(0,o.isBoolean)(e)||(0,f.isString)(e)||"symbol"===n(e)}},671:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isString=void 0,t.isString=function(e){return"string"==typeof e}}},t={};return function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}(333)})()));
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Format an value with possible metadata to his original form, it also supports Map, Set, Arrays
3
+ * @param value
4
+ * @returns
5
+ * Original form of the value
6
+ */
7
+ export declare const formatFromStore: <T = unknown>(value: unknown, { jsonParse, sortKeys, }?: {
8
+ /** If the value should be parsed from json before formatting */
9
+ jsonParse?: boolean;
10
+ sortKeys?: boolean | ((a: string, b: string) => number);
11
+ }) => T;
@@ -0,0 +1 @@
1
+ !function(r,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports["json-storage-formatter"]=e():r["json-storage-formatter"]=e()}(this,(()=>(()=>{"use strict";var r={333:(r,e,t)=>{function n(r){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},n(r)}function o(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=Array(e);t<e;t++)n[t]=r[t];return n}Object.defineProperty(e,"__esModule",{value:!0}),e.clone=void 0;var i=t(646),u=t(346),a=t(473);e.clone=function(r){var t,l=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).shallow;if((0,a.isPrimitive)(r)||(0,i.isDate)(r))return r;if(Array.isArray(r))return l?function(r){if(Array.isArray(r))return o(r)}(t=r)||function(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(t)||function(r,e){if(r){if("string"==typeof r)return o(r,e);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(r,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}():r.map((function(r){return(0,e.clone)(r)}));if(r instanceof Map){var f=Array.from(r.entries());return l?new Map(f):new Map(f.map((function(r){return(0,e.clone)(r)})))}if(r instanceof Set){var c=Array.from(r.values());return l?new Set(c):new Set(c.map((function(r){return(0,e.clone)(r)})))}return r instanceof RegExp?new RegExp(r.toString()):(0,u.isFunction)(r)?l?r:Object.create(r):l?Object.assign({},r):r instanceof Error?new Error(r.message):Object.keys(r).reduce((function(t,o){var i=r[o];return Object.assign(Object.assign({},t),function(r,e,t){return(e=function(r){var e=function(r){if("object"!=n(r)||!r)return r;var e=r[Symbol.toPrimitive];if(void 0!==e){var t=e.call(r,"string");if("object"!=n(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(r)}(r);return"symbol"==n(e)?e:e+""}(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}({},o,(0,e.clone)(i)))}),{})}},944:(r,e,t)=>{function n(r){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},n(r)}function o(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,n=Array(e);t<e;t++)n[t]=r[t];return n}Object.defineProperty(e,"__esModule",{value:!0}),e.formatFromStore=void 0;var i=t(333),u=t(346),a=t(473);e.formatFromStore=function(r){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},l=t.jsonParse,f=t.sortKeys;return function(r){var t,i,l;if((0,a.isPrimitive)(r))return r;if("date"===(null==r?void 0:r.$t))return new Date(r.$v);if("map"===(null==r?void 0:r.$t)){var c=(null!==(t=r.$v)&&void 0!==t?t:[]).map((function(r){var t,n,i=(n=2,function(r){if(Array.isArray(r))return r}(t=r)||function(r,e){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var n,o,i,u,a=[],l=!0,f=!1;try{if(i=(t=t.call(r)).next,0===e){if(Object(t)!==t)return;l=!1}else for(;!(l=(n=i.call(t)).done)&&(a.push(n.value),a.length!==e);l=!0);}catch(r){f=!0,o=r}finally{try{if(!l&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(f)throw o}}return a}}(t,n)||function(r,e){if(r){if("string"==typeof r)return o(r,e);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(r,e):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=i[0],a=i[1];return[u,(0,e.formatFromStore)(a)]}));return new Map(c)}if("set"===(null==r?void 0:r.$t)){var s=null!==(i=r.$v)&&void 0!==i?i:[].map((function(r){return(0,e.formatFromStore)(r)}));return new Set(s)}return"regex"===(null==r?void 0:r.$t)?new RegExp(r.$v):"error"===(null==r?void 0:r.$t)?new Error(r.$v):Array.isArray(r)?r.map((function(r){return(0,e.formatFromStore)(r)})):"function"===(null==r?void 0:r.$t)?Function("(".concat(r.$v,")(...arguments)")):(l=Object.keys(r),f?(0,u.isFunction)(f)?l.sort(f):l.sort((function(r,e){return(null!=r?r:"").localeCompare(e)})):l).reduce((function(t,o){var i,u,a,l=r[o];return Object.assign(Object.assign({},t),(i={},u=o,a=(0,e.formatFromStore)(l),(u=function(r){var e=function(r){if("object"!=n(r)||!r)return r;var e=r[Symbol.toPrimitive];if(void 0!==e){var t=e.call(r,"string");if("object"!=n(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(r)}(r);return"symbol"==n(e)?e:e+""}(u))in i?Object.defineProperty(i,u,{value:a,enumerable:!0,configurable:!0,writable:!0}):i[u]=a,i))}),{})}(l?JSON.parse(r):(0,i.clone)(r))}},112:(r,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isBoolean=void 0,e.isBoolean=function(r){return"boolean"==typeof r}},646:(r,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isDate=void 0,e.isDate=function(r){return r instanceof Date}},346:(r,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isFunction=void 0,e.isFunction=function(r){return"function"==typeof r||r instanceof Function}},243:(r,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isNil=void 0,e.isNil=function(r){return null==r}},11:(r,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isNumber=void 0,e.isNumber=function(r){return"number"==typeof r}},473:(r,e,t)=>{function n(r){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},n(r)}Object.defineProperty(e,"__esModule",{value:!0}),e.isPrimitive=void 0;var o=t(112),i=t(243),u=t(11),a=t(671);e.isPrimitive=function(r){return(0,i.isNil)(r)||(0,u.isNumber)(r)||(0,o.isBoolean)(r)||(0,a.isString)(r)||"symbol"===n(r)}},671:(r,e)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isString=void 0,e.isString=function(r){return"string"==typeof r}}},e={};return function t(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return r[n](i,i.exports,t),i.exports}(944)})()));
@@ -0,0 +1,24 @@
1
+ import { TPrimitives } from "./types";
2
+ /**
3
+ * Add metadata to a value to store it as json, it also supports Map, Set, Arrays,
4
+ * Returns a new object which is a clone of the original object with metadata
5
+ * @template {TValue} The type of the value to format
6
+ * @template {TStringify} If the value should be stringified
7
+ * @param {TValue} value The value to format
8
+ * @param {{ stringify: TStringify }} { stringify: boolean } If the value should be stringified
9
+ */
10
+ export declare const formatToStore: <TValue, TStringify extends boolean = false>(value: TValue, { stringify, validator, excludeTypes, excludeKeys, sortKeys, }?: {
11
+ stringify?: TStringify;
12
+ excludeTypes?: TPrimitives[] | Set<TPrimitives>;
13
+ excludeKeys?: string[] | Set<string>;
14
+ sortKeys?: boolean | ((a: string, b: string) => number);
15
+ /**
16
+ * Returns true if the value should be included in the stringified version,
17
+ * if provided it will override the default validator and the excludesTypes and excludeKeys
18
+ */
19
+ validator?: ({ obj, key, value, }: {
20
+ obj: unknown;
21
+ key: string;
22
+ value: unknown;
23
+ }) => boolean | undefined;
24
+ }) => TStringify extends true ? string : unknown;
@@ -0,0 +1 @@
1
+ !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports["json-storage-formatter"]=r():e["json-storage-formatter"]=r()}(this,(()=>(()=>{"use strict";var e={333:(e,r,t)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}Object.defineProperty(r,"__esModule",{value:!0}),r.clone=void 0;var i=t(646),u=t(346),a=t(473);r.clone=function(e){var t,f=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).shallow;if((0,a.isPrimitive)(e)||(0,i.isDate)(e))return e;if(Array.isArray(e))return f?function(e){if(Array.isArray(e))return o(e)}(t=e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,r){if(e){if("string"==typeof e)return o(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(e,r):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}():e.map((function(e){return(0,r.clone)(e)}));if(e instanceof Map){var c=Array.from(e.entries());return f?new Map(c):new Map(c.map((function(e){return(0,r.clone)(e)})))}if(e instanceof Set){var s=Array.from(e.values());return f?new Set(s):new Set(s.map((function(e){return(0,r.clone)(e)})))}return e instanceof RegExp?new RegExp(e.toString()):(0,u.isFunction)(e)?f?e:Object.create(e):f?Object.assign({},e):e instanceof Error?new Error(e.message):Object.keys(e).reduce((function(t,o){var i=e[o];return Object.assign(Object.assign({},t),function(e,r,t){return(r=function(e){var r=function(e){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=n(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==n(r)?r:r+""}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}({},o,(0,r.clone)(i)))}),{})}},112:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isBoolean=void 0,r.isBoolean=function(e){return"boolean"==typeof e}},646:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isDate=void 0,r.isDate=function(e){return e instanceof Date}},346:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isFunction=void 0,r.isFunction=function(e){return"function"==typeof e||e instanceof Function}},243:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isNil=void 0,r.isNil=function(e){return null==e}},11:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isNumber=void 0,r.isNumber=function(e){return"number"==typeof e}},473:(e,r,t)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.isPrimitive=void 0;var o=t(112),i=t(243),u=t(11),a=t(671);r.isPrimitive=function(e){return(0,i.isNil)(e)||(0,u.isNumber)(e)||(0,o.isBoolean)(e)||(0,a.isString)(e)||"symbol"===n(e)}},43:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isRegex=void 0,r.isRegex=function(e){return e instanceof RegExp}},671:(e,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.isString=void 0,r.isString=function(e){return"string"==typeof e}}},r={};function t(n){var o=r[n];if(void 0!==o)return o.exports;var i=r[n]={exports:{}};return e[n](i,i.exports,t),i.exports}var n={};return(()=>{var e=n;function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.formatToStore=void 0;var o=t(333),i=t(646),u=t(346),a=t(473),f=t(43);e.formatToStore=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{stringify:!1},n=t.stringify,c=t.validator,s=t.excludeTypes,l=t.excludeKeys,y=t.sortKeys,v=new Set(null!=s?s:[]),m=new Set(null!=l?l:[]),p=v.size||m.size,b=null!=c?c:function(e){var t=e.key,n=e.value;if(!p)return!0;var o=m.has(t),i=v.has(r(n));return!o&&!i},d=function(e){if((0,a.isPrimitive)(e))return e;var t;if(Array.isArray(e))return e.map((function(e){return d(e)}));if(e instanceof Map)return{$t:"map",$v:Array.from(e.entries()).map((function(e){return d(e)}))};if(e instanceof Set)return{$t:"set",$v:Array.from(e.values()).map((function(e){return d(e)}))};if((0,i.isDate)(e))return{$t:"date",$v:e.toISOString()};if((0,f.isRegex)(e))return{$t:"regex",$v:e.toString()};if((0,u.isFunction)(e)){var n;try{n={$t:"function",$v:e.toString()}}catch(e){n={$t:"error",$v:"Error: Could not serialize function"}}return n}return e instanceof Error?{$t:"error",$v:e.message}:(t=Object.keys(e),y?(0,u.isFunction)(y)?t.sort(y):t.sort((function(e,r){return(null!=e?e:"").localeCompare(r)})):t).reduce((function(t,n){var o,i,u,a=e[n],f=d(a);return b({obj:e,key:n,value:f})?Object.assign(Object.assign({},t),(o={},i=n,u=d(a),(i=function(e){var t=function(e){if("object"!=r(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==r(t)?t:t+""}(i))in o?Object.defineProperty(o,i,{value:u,enumerable:!0,configurable:!0,writable:!0}):o[i]=u,o)):t}),{})},S=d((0,o.clone)(e));return n?JSON.stringify(S):S}})(),n})()));
package/index.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ export { clone } from "./clone";
2
+ export { isNil } from "./isNil";
3
+ export { isNumber } from "./isNumber";
4
+ export { isBoolean } from "./isBoolean";
5
+ export { isString } from "./isString";
6
+ export { isDate } from "./isDate";
7
+ export { isRegex } from "./isRegex";
8
+ export { isFunction } from "./isFunction";
9
+ export { isPrimitive } from "./isPrimitive";
10
+ export { TPrimitives, IValueWithMetaData } from "./types";
11
+ export { formatFromStore } from "./formatFromStore";
12
+ export { formatToStore } from "./formatToStore";
package/isBoolean.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Check if a value is a boolean
3
+ * @param value
4
+ * @returns
5
+ * true if the value is a boolean
6
+ * false otherwise
7
+ * */
8
+ export declare const isBoolean: (value: unknown) => value is boolean;
package/isBoolean.js ADDED
@@ -0,0 +1 @@
1
+ !function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports["json-storage-formatter"]=o():e["json-storage-formatter"]=o()}(this,(()=>(()=>{"use strict";var e={};return(()=>{var o=e;Object.defineProperty(o,"__esModule",{value:!0}),o.isBoolean=void 0,o.isBoolean=function(e){return"boolean"==typeof e}})(),e})()));
package/isDate.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ /** Check if a value is a Date
2
+ * @param value
3
+ * @returns
4
+ * true if the value is a Date
5
+ * false otherwise
6
+ */
7
+ export declare const isDate: (value: unknown) => value is Date;
package/isDate.js ADDED
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["json-storage-formatter"]=t():e["json-storage-formatter"]=t()}(this,(()=>(()=>{"use strict";var e={};return(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.isDate=void 0,t.isDate=function(e){return e instanceof Date}})(),e})()));
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Check if a value is a function
3
+ * @param value The value to check
4
+ * @returns true if the value is a function, false otherwise
5
+ * */
6
+ export declare const isFunction: <T extends (...args: any[]) => any>(value: unknown) => value is NonNullable<T>;
package/isFunction.js ADDED
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["json-storage-formatter"]=t():e["json-storage-formatter"]=t()}(this,(()=>(()=>{"use strict";var e={};return(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.isFunction=void 0,t.isFunction=function(e){return"function"==typeof e||e instanceof Function}})(),e})()));
package/isNil.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Check if a value is null or undefined
3
+ * @param value
4
+ * @returns
5
+ * true if the value is null or undefined
6
+ * false otherwise
7
+ * */
8
+ export declare const isNil: (value: unknown) => value is null | undefined;
package/isNil.js ADDED
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["json-storage-formatter"]=t():e["json-storage-formatter"]=t()}(this,(()=>(()=>{"use strict";var e={};return(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.isNil=void 0,t.isNil=function(e){return null==e}})(),e})()));
package/isNumber.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Check if a value is a number
3
+ * @param value
4
+ * @returns
5
+ * true if the value is a number
6
+ * false otherwise
7
+ * */
8
+ export declare const isNumber: (value: unknown) => value is number;
package/isNumber.js ADDED
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["json-storage-formatter"]=t():e["json-storage-formatter"]=t()}(this,(()=>(()=>{"use strict";var e={};return(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.isNumber=void 0,t.isNumber=function(e){return"number"==typeof e}})(),e})()));
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Check if a value is a primitive
3
+ * @param value
4
+ * @returns
5
+ * true if the value is a primitive
6
+ * false otherwise
7
+ * null, number, boolean, string, symbol
8
+ */
9
+ export declare const isPrimitive: (value: unknown) => value is string | number | boolean | symbol;
package/isPrimitive.js ADDED
@@ -0,0 +1 @@
1
+ !function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports["json-storage-formatter"]=o():e["json-storage-formatter"]=o()}(this,(()=>(()=>{"use strict";var e={112:(e,o)=>{Object.defineProperty(o,"__esModule",{value:!0}),o.isBoolean=void 0,o.isBoolean=function(e){return"boolean"==typeof e}},243:(e,o)=>{Object.defineProperty(o,"__esModule",{value:!0}),o.isNil=void 0,o.isNil=function(e){return null==e}},11:(e,o)=>{Object.defineProperty(o,"__esModule",{value:!0}),o.isNumber=void 0,o.isNumber=function(e){return"number"==typeof e}},671:(e,o)=>{Object.defineProperty(o,"__esModule",{value:!0}),o.isString=void 0,o.isString=function(e){return"string"==typeof e}}},o={};function t(r){var i=o[r];if(void 0!==i)return i.exports;var n=o[r]={exports:{}};return e[r](n,n.exports,t),n.exports}var r={};return(()=>{var e=r;function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.isPrimitive=void 0;var i=t(112),n=t(243),u=t(11),s=t(671);e.isPrimitive=function(e){return(0,n.isNil)(e)||(0,u.isNumber)(e)||(0,i.isBoolean)(e)||(0,s.isString)(e)||"symbol"===o(e)}})(),r})()));
package/isRegex.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Check if a value is a RegExp
3
+ * @param value The value to check
4
+ * @returns true if the value is a RegExp, false otherwise
5
+ * */
6
+ export declare const isRegex: (value: unknown) => value is RegExp;
package/isRegex.js ADDED
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["json-storage-formatter"]=t():e["json-storage-formatter"]=t()}(this,(()=>(()=>{"use strict";var e={};return(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.isRegex=void 0,t.isRegex=function(e){return e instanceof RegExp}})(),e})()));
package/isString.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Check if a value is a string
3
+ * @param value
4
+ * @returns
5
+ * true if the value is a string
6
+ * false otherwise
7
+ * */
8
+ export declare const isString: (value: unknown) => value is string;
package/isString.js ADDED
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["json-storage-formatter"]=t():e["json-storage-formatter"]=t()}(this,(()=>(()=>{"use strict";var e={};return(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.isString=void 0,t.isString=function(e){return"string"==typeof e}})(),e})()));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "json-storage-formatter",
3
- "version": "2.0.6",
3
+ "version": "2.0.8",
4
4
  "description": "Package for json stringify objects without losing data types",
5
5
  "main": "./bundle.js",
6
6
  "types": "./index.d.ts",
@@ -67,7 +67,7 @@
67
67
  "types": "./formatToStore.d.ts"
68
68
  }
69
69
  },
70
- "files": [
70
+ "files": [
71
71
  "./*.js",
72
72
  "./*.d.ts"
73
73
  ],
package/types.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ export type IValueWithMetaData = {
2
+ $t?: 'map' | 'set' | 'date' | 'regex' | 'error' | 'function';
3
+ $v?: unknown;
4
+ };
5
+ export type TPrimitives = 'string' | 'number' | 'bigint' | 'boolean' | 'symbol' | 'undefined' | 'function' | 'object';
package/types.js ADDED
@@ -0,0 +1 @@
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["json-storage-formatter"]=t():e["json-storage-formatter"]=t()}(this,(()=>(()=>{"use strict";var e={};return(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0})})(),e})()));
@@ -0,0 +1,66 @@
1
+ const path = require('path');
2
+
3
+ module.exports = {
4
+ mode: 'production',
5
+ entry: {
6
+ bundle: "./src/index.ts",
7
+ clone: "./src/clone.ts",
8
+ isNil: "./src/isNil.ts",
9
+ isNumber: "./src/isNumber.ts",
10
+ isBoolean: "./src/isBoolean.ts",
11
+ isString: "./src/isString.ts",
12
+ isDate: "./src/isDate.ts",
13
+ isRegex: "./src/isRegex.ts",
14
+ isFunction: "./src/isFunction.ts",
15
+ isPrimitive: "./src/isPrimitive.ts",
16
+ types: "./src/types.ts",
17
+ formatFromStore: "./src/formatFromStore.ts",
18
+ formatToStore: "./src/formatToStore.ts",
19
+ },
20
+ output: {
21
+ path: path.resolve(__dirname),//'lib'
22
+ filename: ({ chunk: { name } }) => {
23
+ if (name.includes('worker')) {
24
+ return `${name}.worker.js`;
25
+ }
26
+
27
+ return `${name}.js`;
28
+ },
29
+ libraryTarget: 'umd',
30
+ library: 'json-storage-formatter',
31
+ globalObject: 'this',
32
+ },
33
+ resolve: {
34
+ extensions: ['.ts', '.js'],
35
+ alias: {
36
+ 'json-storage-formatter': path.resolve(
37
+ __dirname,
38
+ 'node_modules/json-storage-formatter/package.json'
39
+ ),
40
+ },
41
+ },
42
+ module: {
43
+ rules: [
44
+ {
45
+ test: /\.ts$/,
46
+ use: [
47
+ {
48
+ loader: 'babel-loader',
49
+ options: {
50
+ presets: ['@babel/preset-env', '@babel/preset-typescript'],
51
+ plugins: [
52
+ '@babel/plugin-transform-modules-commonjs',
53
+ '@babel/plugin-proposal-class-properties',
54
+ '@babel/plugin-proposal-export-namespace-from',
55
+ ],
56
+ },
57
+ },
58
+ {
59
+ loader: 'ts-loader',
60
+ },
61
+ ],
62
+ exclude: /node_modules/,
63
+ },
64
+ ],
65
+ },
66
+ };