json-storage-formatter 1.0.3 → 1.0.5
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type IValueWithMedaData = {
|
|
2
|
-
$t?: 'map' | 'set' | 'date';
|
|
2
|
+
$t?: 'map' | 'set' | 'date' | 'regex' | 'error';
|
|
3
3
|
$v?: unknown;
|
|
4
4
|
};
|
|
5
5
|
/**
|
|
@@ -48,6 +48,12 @@ export declare const isString: (value: unknown) => boolean;
|
|
|
48
48
|
* false otherwise
|
|
49
49
|
*/
|
|
50
50
|
export declare const isDate: (value: unknown) => boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Check if a value is a RegExp
|
|
53
|
+
* @param value The value to check
|
|
54
|
+
* @returns true if the value is a RegExp, false otherwise
|
|
55
|
+
* */
|
|
56
|
+
export declare const isRegex: (value: unknown) => boolean;
|
|
51
57
|
/**
|
|
52
58
|
* Check if a value is a primitive
|
|
53
59
|
* @param value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-storage-formatter.d.ts","sourceRoot":"","sources":["../src/json-storage-formatter.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"json-storage-formatter.d.ts","sourceRoot":"","sources":["../src/json-storage-formatter.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAChD,EAAE,CAAC,EAAE,OAAO,CAAC;CACd,CAAC;AAEF;;;;;KAKK;AACL,eAAO,MAAM,KAAK,kBAiDjB,CAAC;AAEF;;;;;;KAMK;AACL,eAAO,MAAM,KAAK,UAAW,OAAO,YAA0C,CAAC;AAE/E;;;;;;MAMM;AACN,eAAO,MAAM,QAAQ,UAAW,OAAO,YAA8B,CAAC;AAEtE;;;;;;KAMK;AACL,eAAO,MAAM,SAAS,UAAW,OAAO,YAA+B,CAAC;AAExE;;;;;;KAMK;AACL,eAAO,MAAM,QAAQ,UAAW,OAAO,YAA8B,CAAC;AAEtE;;;;;GAKG;AACH,eAAO,MAAM,MAAM,UAAW,OAAO,YAA0B,CAAC;AAEhE;;;;KAIK;AACL,eAAO,MAAM,OAAO,UAAW,OAAO,YAA4B,CAAC;AAEnE;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,UAAW,OAAO,YAKf,CAAC;AAE5B;;;;;GAKG;AACH,eAAO,MAAM,eAAe,uBAAwB,OAAO,MAgE1D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa;;gDA2FzB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatToStore = exports.formatFromStore = exports.isPrimitive = exports.isDate = exports.isString = exports.isBoolean = exports.isNumber = exports.isNil = exports.clone = void 0;
|
|
3
|
+
exports.formatToStore = exports.formatFromStore = exports.isPrimitive = exports.isRegex = exports.isDate = exports.isString = exports.isBoolean = exports.isNumber = exports.isNil = exports.clone = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Deep clone an object, it also suppors Map, Set, Arrays
|
|
6
6
|
* @param obj
|
|
@@ -25,6 +25,14 @@ const clone = (obj) => {
|
|
|
25
25
|
const values = Array.from(obj.values());
|
|
26
26
|
return new Set(values.map((value) => (0, exports.clone)(value)));
|
|
27
27
|
}
|
|
28
|
+
const isReg = obj instanceof RegExp;
|
|
29
|
+
if (isReg) {
|
|
30
|
+
return new RegExp(obj.toString());
|
|
31
|
+
}
|
|
32
|
+
const isError = obj instanceof Error;
|
|
33
|
+
if (isError) {
|
|
34
|
+
return new Error(obj.message);
|
|
35
|
+
}
|
|
28
36
|
const keys = Object.keys(obj);
|
|
29
37
|
return keys.reduce((acumulator, key) => {
|
|
30
38
|
const value = obj[key];
|
|
@@ -76,6 +84,13 @@ exports.isString = isString;
|
|
|
76
84
|
*/
|
|
77
85
|
const isDate = (value) => value instanceof Date;
|
|
78
86
|
exports.isDate = isDate;
|
|
87
|
+
/**
|
|
88
|
+
* Check if a value is a RegExp
|
|
89
|
+
* @param value The value to check
|
|
90
|
+
* @returns true if the value is a RegExp, false otherwise
|
|
91
|
+
* */
|
|
92
|
+
const isRegex = (value) => value instanceof RegExp;
|
|
93
|
+
exports.isRegex = isRegex;
|
|
79
94
|
/**
|
|
80
95
|
* Check if a value is a primitive
|
|
81
96
|
* @param value
|
|
@@ -116,6 +131,14 @@ const formatFromStore = (value) => {
|
|
|
116
131
|
const setData = (_b = obj.$v) !== null && _b !== void 0 ? _b : [].map((item) => (0, exports.formatFromStore)(item));
|
|
117
132
|
return new Set(setData);
|
|
118
133
|
}
|
|
134
|
+
const isMetaReg = (obj === null || obj === void 0 ? void 0 : obj.$t) === 'regex';
|
|
135
|
+
if (isMetaReg) {
|
|
136
|
+
return new RegExp(obj.$v);
|
|
137
|
+
}
|
|
138
|
+
const isMetaError = (obj === null || obj === void 0 ? void 0 : obj.$t) === 'error';
|
|
139
|
+
if (isMetaError) {
|
|
140
|
+
return new Error(obj.$v);
|
|
141
|
+
}
|
|
119
142
|
const isArray = Array.isArray(obj);
|
|
120
143
|
if (isArray) {
|
|
121
144
|
return obj.map((item) => (0, exports.formatFromStore)(item));
|
|
@@ -171,6 +194,21 @@ const formatToStore = (value, { stringify } = { stringify: false }) => {
|
|
|
171
194
|
};
|
|
172
195
|
return value;
|
|
173
196
|
}
|
|
197
|
+
if ((0, exports.isRegex)(obj)) {
|
|
198
|
+
const value = {
|
|
199
|
+
$t: 'regex',
|
|
200
|
+
$v: obj.toString(),
|
|
201
|
+
};
|
|
202
|
+
return value;
|
|
203
|
+
}
|
|
204
|
+
const isError = obj instanceof Error;
|
|
205
|
+
if (isError) {
|
|
206
|
+
const value = {
|
|
207
|
+
$t: 'error',
|
|
208
|
+
$v: obj.message,
|
|
209
|
+
};
|
|
210
|
+
return value;
|
|
211
|
+
}
|
|
174
212
|
const keys = Object.keys(obj);
|
|
175
213
|
return keys.reduce((acumulator, key) => {
|
|
176
214
|
const prop = obj[key];
|