@dmail/uneval
Advanced tools
Comparing version 4.5.0 to 4.6.0
@@ -1,2 +0,2 @@ | ||
System.register([], function (n, e) { | ||
System.register([], function (e, n) { | ||
"use strict"; | ||
@@ -6,12 +6,12 @@ | ||
execute: function () { | ||
function e(n) { | ||
return (e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (n) { | ||
return typeof n; | ||
} : function (n) { | ||
return n && "function" == typeof Symbol && n.constructor === Symbol && n !== Symbol.prototype ? "symbol" : typeof n; | ||
})(n); | ||
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; | ||
})(e); | ||
} | ||
function t(n, e, t) { | ||
return e in n ? Object.defineProperty(n, e, { | ||
function t(e, n, t) { | ||
return n in e ? Object.defineProperty(e, n, { | ||
value: t, | ||
@@ -21,26 +21,26 @@ enumerable: !0, | ||
writable: !0 | ||
}) : n[e] = t, n; | ||
}) : e[n] = t, e; | ||
} | ||
function r(n) { | ||
for (var e = 1; e < arguments.length; e++) { | ||
var r = null != arguments[e] ? arguments[e] : {}, | ||
function r(e) { | ||
for (var n = 1; n < arguments.length; n++) { | ||
var r = null != arguments[n] ? arguments[n] : {}, | ||
o = Object.keys(r); | ||
"function" == typeof Object.getOwnPropertySymbols && (o = o.concat(Object.getOwnPropertySymbols(r).filter(function (n) { | ||
return Object.getOwnPropertyDescriptor(r, n).enumerable; | ||
}))), o.forEach(function (e) { | ||
t(n, e, r[e]); | ||
"function" == typeof Object.getOwnPropertySymbols && (o = o.concat(Object.getOwnPropertySymbols(r).filter(function (e) { | ||
return Object.getOwnPropertyDescriptor(r, e).enumerable; | ||
}))), o.forEach(function (n) { | ||
t(e, n, r[n]); | ||
}); | ||
} | ||
return n; | ||
return e; | ||
} | ||
var o = Object.prototype.toString, | ||
i = function (n) { | ||
if ("object" === e(n) && null === Object.getPrototypeOf(n)) return "Object"; | ||
var t = o.call(n).slice("[object ".length, -1); | ||
c = function (e) { | ||
if ("object" === n(e) && null === Object.getPrototypeOf(e)) return "Object"; | ||
var t = o.call(e).slice("[object ".length, -1); | ||
if ("Object" === t) { | ||
var r = n.constructor.name; | ||
var r = e.constructor.name; | ||
if ("Object" !== r) return r; | ||
@@ -51,9 +51,9 @@ } | ||
}, | ||
c = function (n) { | ||
return null === n ? "null" : void 0 === n ? "undefined" : e(n); | ||
i = function (e) { | ||
return null === e ? "null" : void 0 === e ? "undefined" : n(e); | ||
}, | ||
a = function (n, e) { | ||
var t = e.depth, | ||
r = e.indentUsingTab, | ||
o = e.indentSize; | ||
a = function (e, n) { | ||
var t = n.depth, | ||
r = n.indentUsingTab, | ||
o = n.indentSize; | ||
return "".concat(u({ | ||
@@ -63,24 +63,24 @@ count: t + 1, | ||
size: o | ||
})).concat(n); | ||
})).concat(e); | ||
}, | ||
u = function (n) { | ||
var e = n.count, | ||
t = n.useTabs, | ||
r = n.size; | ||
return t ? "\n" + "\t".repeat(e) : "\n" + " ".repeat(e * r); | ||
u = function (e) { | ||
var n = e.count, | ||
t = e.useTabs, | ||
r = e.size; | ||
return t ? "\n" + "\t".repeat(n) : "\n" + " ".repeat(n * r); | ||
}, | ||
s = function (n, e) { | ||
var t = e.depth, | ||
r = e.indentUsingTab, | ||
o = e.indentSize; | ||
return "".concat(a(n, { | ||
s = function (e, n) { | ||
var t = n.depth, | ||
r = n.indentUsingTab, | ||
o = n.indentSize; | ||
return "".concat(a(e, { | ||
depth: t, | ||
indentUsingTab: r, | ||
indentSize: o | ||
})).concat(function (n) { | ||
var e = n.depth, | ||
t = n.indentUsingTab, | ||
r = n.indentSize; | ||
})).concat(function (e) { | ||
var n = e.depth, | ||
t = e.indentUsingTab, | ||
r = e.indentSize; | ||
return u({ | ||
count: e, | ||
count: n, | ||
useTabs: t, | ||
@@ -96,4 +96,4 @@ size: r | ||
d = { | ||
boolean: function (n) { | ||
return n.toString(); | ||
boolean: function (e) { | ||
return e.toString(); | ||
}, | ||
@@ -103,25 +103,25 @@ null: function () { | ||
}, | ||
number: function (n) { | ||
return Object.is(n, -0) ? "-0" : n.toString(); | ||
number: function (e) { | ||
return Object.is(e, -0) ? "-0" : e.toString(); | ||
}, | ||
string: function (n, e) { | ||
var t = e.singleQuote, | ||
r = function (n) { | ||
for (var e = String(n), t = 0, r = e.length, o = ""; t < r;) { | ||
var i = e[t]; | ||
o += '"' === i || "'" === i || "\\" === i ? "\\".concat(i) : "\n" === i ? "\\n" : "\r" === i ? "\\r" : "\u2028" === i ? "\\u2028" : "\u2029" === i ? "\\u2029" : i, t++; | ||
string: function (e, n) { | ||
var t = n.singleQuote, | ||
r = function (e) { | ||
for (var n = String(e), t = 0, r = n.length, o = ""; t < r;) { | ||
var c = n[t]; | ||
o += '"' === c || "'" === c || "\\" === c ? "\\".concat(c) : "\n" === c ? "\\n" : "\r" === c ? "\\r" : "\u2028" === c ? "\\u2028" : "\u2029" === c ? "\\u2029" : c, t++; | ||
} | ||
return o; | ||
}(n); | ||
}(e); | ||
return t ? "'".concat(r, "'") : '"'.concat(r, '"'); | ||
}, | ||
symbol: function (n, e) { | ||
var t = e.nestedUneval, | ||
r = e.parenthesis, | ||
o = n.toString(), | ||
i = o.indexOf("("), | ||
c = o.indexOf(")"), | ||
a = o.slice(i + 1, c), | ||
symbol: function (e, n) { | ||
var t = n.nestedUneval, | ||
r = n.parenthesis, | ||
o = e.toString(), | ||
c = o.indexOf("("), | ||
i = o.indexOf(")"), | ||
a = o.slice(c + 1, i), | ||
u = a ? t(a) : "", | ||
@@ -135,31 +135,31 @@ s = "Symbol(".concat(u, ")"); | ||
}, | ||
f = function (n, e) { | ||
var t = e.parenthesis, | ||
r = e.useNew, | ||
o = n; | ||
return t && (o = "(".concat(n, ")")), r && (o = "new ".concat(o)), o; | ||
p = function (e, n) { | ||
var t = n.parenthesis, | ||
r = n.useNew, | ||
o = e; | ||
return t && (o = "(".concat(e, ")")), r && (o = "new ".concat(o)), o; | ||
}, | ||
p = function (n, e) { | ||
var t = e.nestedUneval, | ||
r = e.seen, | ||
f = function (e, n) { | ||
var t = n.nestedUneval, | ||
r = n.seen, | ||
o = void 0 === r ? [] : r, | ||
i = e.compact, | ||
c = e.depth, | ||
u = e.indentUsingTab, | ||
d = e.indentSize, | ||
p = e.objectConstructor, | ||
l = e.parenthesis, | ||
v = e.useNew; | ||
if (o.indexOf(n) > -1) return "Symbol.for('circular')"; | ||
o.push(n); | ||
c = n.compact, | ||
i = n.depth, | ||
u = n.indentUsingTab, | ||
d = n.indentSize, | ||
f = n.objectConstructor, | ||
l = n.parenthesis, | ||
v = n.useNew; | ||
if (o.indexOf(e) > -1) return "Symbol.for('circular')"; | ||
o.push(e); | ||
for (var b, h = "", g = Object.getOwnPropertyNames(n), y = 0, m = g.length; y < m;) { | ||
for (var b, h = "", g = Object.getOwnPropertyNames(e), y = 0, m = g.length; y < m;) { | ||
var S = g[y], | ||
O = parseInt(S, 10), | ||
w = t(Number.isInteger(O) ? O : S), | ||
U = t(n[S], { | ||
j = t(e[S], { | ||
seen: o | ||
}); | ||
h += i ? 0 === y ? "".concat(w, ": ").concat(U) : ", ".concat(w, ": ").concat(U) : 0 === y ? "".concat(w, ": ").concat(U) : ",".concat(a("".concat(w, ": ").concat(U), { | ||
depth: c, | ||
h += c ? 0 === y ? "".concat(w, ": ").concat(j) : ", ".concat(w, ": ").concat(j) : 0 === y ? "".concat(w, ": ").concat(j) : ",".concat(a("".concat(w, ": ").concat(j), { | ||
depth: i, | ||
indentUsingTab: u, | ||
@@ -170,7 +170,7 @@ indentSize: d | ||
return b = h.length ? "".concat(i ? h : s(h, { | ||
depth: c, | ||
return b = h.length ? "".concat(c ? h : s(h, { | ||
depth: i, | ||
indentUsingTab: u, | ||
indentSize: d | ||
})) : "", b = p ? "Object({".concat(b, "})") : "{".concat(b, "}"), f(b, { | ||
})) : "", b = f ? "Object({".concat(b, "})") : "{".concat(b, "}"), p(b, { | ||
parenthesis: l, | ||
@@ -180,22 +180,34 @@ useNew: v | ||
}, | ||
l = { | ||
Array: function (n, e) { | ||
var t = e.seen, | ||
l = function (e) { | ||
var n = e.error, | ||
t = e.errorSource, | ||
r = e.nestedUneval, | ||
o = Object.getOwnPropertyNames(n).filter(function (e) { | ||
return "message" !== e && "stack" !== e; | ||
}).map(function (e) { | ||
var t = Object.getOwnPropertyDescriptor(n, e); | ||
return "Object.defineProperty(error, ".concat(r(e), ", ").concat(r(t), ")"); | ||
}); | ||
return "(function (error) {\n ".concat(o.join("\n "), "\n return error\n})(").concat(t, ")"); | ||
}, | ||
v = { | ||
Array: function (e, n) { | ||
var t = n.seen, | ||
r = void 0 === t ? [] : t, | ||
o = e.nestedUneval, | ||
i = e.compact, | ||
c = e.depth, | ||
u = e.indentUsingTab, | ||
d = e.indentSize, | ||
p = e.parenthesis, | ||
l = e.useNew; | ||
if (r.indexOf(n) > -1) return "Symbol.for('circular')"; | ||
r.push(n); | ||
o = n.nestedUneval, | ||
c = n.compact, | ||
i = n.depth, | ||
u = n.indentUsingTab, | ||
d = n.indentSize, | ||
f = n.parenthesis, | ||
l = n.useNew; | ||
if (r.indexOf(e) > -1) return "Symbol.for('circular')"; | ||
r.push(e); | ||
for (var v, b = "", h = 0, g = n.length; h < g;) { | ||
var y = n.hasOwnProperty(h) ? o(n[h], { | ||
for (var v, b = "", h = 0, g = e.length; h < g;) { | ||
var y = e.hasOwnProperty(h) ? o(e[h], { | ||
seen: r | ||
}) : ""; | ||
b += i ? 0 === h ? y : y ? ", ".concat(y) : "," : 0 === h ? y : ",".concat(a(y, { | ||
depth: c, | ||
b += c ? 0 === h ? y : y ? ", ".concat(y) : "," : 0 === h ? y : ",".concat(a(y, { | ||
depth: i, | ||
indentUsingTab: u, | ||
@@ -206,17 +218,17 @@ indentSize: d | ||
return v = b.length ? i ? "".concat(b) : s(b, { | ||
depth: c, | ||
return v = b.length ? c ? "".concat(b) : s(b, { | ||
depth: i, | ||
indentUsingTab: u, | ||
indentSize: d | ||
}) : "", v = "[".concat(v, "]"), f(v, { | ||
parenthesis: p, | ||
}) : "", v = "[".concat(v, "]"), p(v, { | ||
parenthesis: f, | ||
useNew: l | ||
}); | ||
}, | ||
Boolean: function (n, e) { | ||
var t = e.nestedUneval, | ||
r = e.useNew, | ||
o = e.parenthesis, | ||
i = t(n.valueOf()); | ||
return f("Boolean(".concat(i, ")"), { | ||
Boolean: function (e, n) { | ||
var t = n.nestedUneval, | ||
r = n.useNew, | ||
o = n.parenthesis, | ||
c = t(e.valueOf()); | ||
return p("Boolean(".concat(c, ")"), { | ||
useNew: r, | ||
@@ -226,18 +238,24 @@ parenthesis: o | ||
}, | ||
Error: function (n, e) { | ||
var t = e.nestedUneval, | ||
r = e.useNew, | ||
o = e.parenthesis, | ||
i = t(n.message); | ||
return f("".concat(n.name, "(").concat(i, ")"), { | ||
Error: function (e, n) { | ||
var t = n.nestedUneval, | ||
r = n.useNew, | ||
o = n.parenthesis, | ||
c = n.accurateErrorProperties, | ||
i = t(e.message), | ||
a = p("".concat(e.name, "(").concat(i, ")"), { | ||
useNew: r, | ||
parenthesis: o | ||
}); | ||
return c ? l({ | ||
error: e, | ||
errorSource: a, | ||
nestedUneval: t | ||
}) : a; | ||
}, | ||
Date: function (n, e) { | ||
var t = e.nestedUneval, | ||
r = e.useNew, | ||
o = e.parenthesis, | ||
i = t(n.valueOf()); | ||
return f("Date(".concat(i, ")"), { | ||
Date: function (e, n) { | ||
var t = n.nestedUneval, | ||
r = n.useNew, | ||
o = n.parenthesis, | ||
c = t(e.valueOf()); | ||
return p("Date(".concat(c, ")"), { | ||
useNew: r, | ||
@@ -247,19 +265,19 @@ parenthesis: o | ||
}, | ||
Function: function (n, e) { | ||
Function: function (e, n) { | ||
var t, | ||
r = e.showFunctionBody, | ||
o = e.parenthesis, | ||
i = e.depth; | ||
if (r) t = n.toString();else { | ||
var c = void 0 === n.prototype ? "() =>" : "function ".concat(0 === i ? n.name : "", "()"); | ||
t = "".concat(c, " {/* hidden */}"); | ||
r = n.showFunctionBody, | ||
o = n.parenthesis, | ||
c = n.depth; | ||
if (r) t = e.toString();else { | ||
var i = void 0 === e.prototype ? "() =>" : "function ".concat(0 === c ? e.name : "", "()"); | ||
t = "".concat(i, " {/* hidden */}"); | ||
} | ||
return o ? "(".concat(t, ")") : t; | ||
}, | ||
Number: function (n, e) { | ||
var t = e.nestedUneval, | ||
r = e.useNew, | ||
o = e.parenthesis, | ||
i = t(n.valueOf()); | ||
return f("Number(".concat(i, ")"), { | ||
Number: function (e, n) { | ||
var t = n.nestedUneval, | ||
r = n.useNew, | ||
o = n.parenthesis, | ||
c = t(e.valueOf()); | ||
return p("Number(".concat(c, ")"), { | ||
useNew: r, | ||
@@ -269,12 +287,12 @@ parenthesis: o | ||
}, | ||
Object: p, | ||
RegExp: function (n) { | ||
return n.toString(); | ||
Object: f, | ||
RegExp: function (e) { | ||
return e.toString(); | ||
}, | ||
String: function (n, e) { | ||
var t = e.nestedUneval, | ||
r = e.useNew, | ||
o = e.parenthesis, | ||
i = t(n.valueOf()); | ||
return f("String(".concat(i, ")"), { | ||
String: function (e, n) { | ||
var t = n.nestedUneval, | ||
r = n.useNew, | ||
o = n.parenthesis, | ||
c = t(e.valueOf()); | ||
return p("String(".concat(c, ")"), { | ||
useNew: r, | ||
@@ -286,36 +304,38 @@ parenthesis: o | ||
n("uneval", function (n) { | ||
var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, | ||
t = e.parenthesis, | ||
e("uneval", function (e) { | ||
var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, | ||
t = n.parenthesis, | ||
o = void 0 !== t && t, | ||
a = e.singleQuote, | ||
a = n.singleQuote, | ||
u = void 0 !== a && a, | ||
s = e.useNew, | ||
v = void 0 !== s && s, | ||
b = e.objectConstructor, | ||
s = n.useNew, | ||
l = void 0 !== s && s, | ||
b = n.objectConstructor, | ||
h = void 0 !== b && b, | ||
g = e.compact, | ||
g = n.compact, | ||
y = void 0 !== g && g, | ||
m = e.showFunctionBody, | ||
m = n.showFunctionBody, | ||
S = void 0 !== m && m, | ||
O = e.indentUsingTab, | ||
O = n.indentUsingTab, | ||
w = void 0 !== O && O, | ||
U = e.indentSize; | ||
return function n(e, t) { | ||
var o = function (n) { | ||
var e = c(n); | ||
return "function" === e ? { | ||
j = n.indentSize, | ||
U = void 0 === j ? 2 : j, | ||
N = n.accurateErrorProperties; | ||
return function e(n, t) { | ||
var o = function (e) { | ||
var n = i(e); | ||
return "function" === n ? { | ||
compositeType: "Function" | ||
} : "object" === e ? { | ||
compositeType: i(n) | ||
} : "object" === n ? { | ||
compositeType: c(e) | ||
} : { | ||
primitiveType: e | ||
primitiveType: n | ||
}; | ||
}(e), | ||
}(n), | ||
a = o.primitiveType, | ||
u = o.compositeType, | ||
s = r({}, t, { | ||
nestedUneval: function (e) { | ||
nestedUneval: function (n) { | ||
var o = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; | ||
return n(e, r({}, t, { | ||
return e(n, r({}, t, { | ||
depth: t.depth + 1 | ||
@@ -326,9 +346,9 @@ }, o)); | ||
return a ? d[a](e, s) : u in l ? l[u](e, s) : f("".concat(u, "(").concat(p(e, s), ")"), r({}, s, { | ||
return a ? d[a](n, s) : u in v ? v[u](n, s) : p("".concat(u, "(").concat(f(n, s), ")"), r({}, s, { | ||
parenthesis: !1 | ||
})); | ||
}(n, { | ||
}(e, { | ||
parenthesis: o, | ||
singleQuote: u, | ||
useNew: v, | ||
useNew: l, | ||
objectConstructor: h, | ||
@@ -338,3 +358,4 @@ compact: y, | ||
indentUsingTab: w, | ||
indentSize: void 0 === U ? 2 : U, | ||
indentSize: U, | ||
accurateErrorProperties: void 0 !== N && N, | ||
depth: 0 | ||
@@ -341,0 +362,0 @@ }); |
@@ -430,11 +430,42 @@ 'use strict'; | ||
useNew, | ||
parenthesis | ||
parenthesis, | ||
accurateErrorProperties | ||
}) => { | ||
const messageSource = nestedUneval(value.message); | ||
return unevalConstructor(`${value.name}(${messageSource})`, { | ||
const errorSource = unevalConstructor(`${value.name}(${messageSource})`, { | ||
useNew, | ||
parenthesis | ||
}); | ||
if (accurateErrorProperties) { | ||
return makeErrorSourceAccurate({ | ||
error: value, | ||
errorSource, | ||
nestedUneval | ||
}); | ||
} | ||
return errorSource; | ||
}; | ||
const makeErrorSourceAccurate = ({ | ||
error, | ||
errorSource, | ||
nestedUneval | ||
}) => { | ||
const ownPropertyNames = Object.getOwnPropertyNames(error).filter(name => { | ||
return name !== "message" && name !== "stack"; | ||
}); | ||
const definePropertiesSource = ownPropertyNames.map(name => { | ||
const descriptor = Object.getOwnPropertyDescriptor(error, name); | ||
return `Object.defineProperty(error, ${nestedUneval(name)}, ${nestedUneval(descriptor)})`; | ||
}); // TODO: make indentation dependent of current depth | ||
return `(function (error) { | ||
${definePropertiesSource.join(` | ||
`)} | ||
return error | ||
})(${errorSource})`; | ||
}; | ||
const unevalRegExp = value => { | ||
@@ -465,3 +496,4 @@ return value.toString(); | ||
indentUsingTab = false, | ||
indentSize = 2 | ||
indentSize = 2, | ||
accurateErrorProperties = false | ||
} = {}) => { | ||
@@ -497,2 +529,3 @@ const scopedUneval = (scopedValue, scopedOptions) => { | ||
indentSize, | ||
accurateErrorProperties, | ||
depth: 0 | ||
@@ -499,0 +532,0 @@ }); |
@@ -473,10 +473,36 @@ 'use strict'; | ||
useNew = _ref.useNew, | ||
parenthesis = _ref.parenthesis; | ||
parenthesis = _ref.parenthesis, | ||
accurateErrorProperties = _ref.accurateErrorProperties; | ||
var messageSource = nestedUneval(value.message); | ||
return unevalConstructor("".concat(value.name, "(").concat(messageSource, ")"), { | ||
var errorSource = unevalConstructor("".concat(value.name, "(").concat(messageSource, ")"), { | ||
useNew: useNew, | ||
parenthesis: parenthesis | ||
}); | ||
if (accurateErrorProperties) { | ||
return makeErrorSourceAccurate({ | ||
error: value, | ||
errorSource: errorSource, | ||
nestedUneval: nestedUneval | ||
}); | ||
} | ||
return errorSource; | ||
}; | ||
var makeErrorSourceAccurate = function makeErrorSourceAccurate(_ref2) { | ||
var error = _ref2.error, | ||
errorSource = _ref2.errorSource, | ||
nestedUneval = _ref2.nestedUneval; | ||
var ownPropertyNames = Object.getOwnPropertyNames(error).filter(function (name) { | ||
return name !== "message" && name !== "stack"; | ||
}); | ||
var definePropertiesSource = ownPropertyNames.map(function (name) { | ||
var descriptor = Object.getOwnPropertyDescriptor(error, name); | ||
return "Object.defineProperty(error, ".concat(nestedUneval(name), ", ").concat(nestedUneval(descriptor), ")"); | ||
}); // TODO: make indentation dependent of current depth | ||
return "(function (error) {\n ".concat(definePropertiesSource.join("\n "), "\n return error\n})(").concat(errorSource, ")"); | ||
}; | ||
var unevalRegExp = function unevalRegExp(value) { | ||
@@ -515,3 +541,5 @@ return value.toString(); | ||
_ref$indentSize = _ref.indentSize, | ||
indentSize = _ref$indentSize === void 0 ? 2 : _ref$indentSize; | ||
indentSize = _ref$indentSize === void 0 ? 2 : _ref$indentSize, | ||
_ref$accurateErrorPro = _ref.accurateErrorProperties, | ||
accurateErrorProperties = _ref$accurateErrorPro === void 0 ? false : _ref$accurateErrorPro; | ||
@@ -548,2 +576,3 @@ var scopedUneval = function scopedUneval(scopedValue, scopedOptions) { | ||
indentSize: indentSize, | ||
accurateErrorProperties: accurateErrorProperties, | ||
depth: 0 | ||
@@ -550,0 +579,0 @@ }); |
{ | ||
"name": "@dmail/uneval", | ||
"version": "4.5.0", | ||
"version": "4.6.0", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "repository": { |
import { unevalConstructor } from "../unevalConstructor.js" | ||
export const unevalError = (value, { nestedUneval, useNew, parenthesis }) => { | ||
export const unevalError = ( | ||
value, | ||
{ nestedUneval, useNew, parenthesis, accurateErrorProperties }, | ||
) => { | ||
const messageSource = nestedUneval(value.message) | ||
return unevalConstructor(`${value.name}(${messageSource})`, { useNew, parenthesis }) | ||
const errorSource = unevalConstructor(`${value.name}(${messageSource})`, { useNew, parenthesis }) | ||
if (accurateErrorProperties) { | ||
return makeErrorSourceAccurate({ error: value, errorSource, nestedUneval }) | ||
} | ||
return errorSource | ||
} | ||
const makeErrorSourceAccurate = ({ error, errorSource, nestedUneval }) => { | ||
const ownPropertyNames = Object.getOwnPropertyNames(error).filter((name) => { | ||
return name !== "message" && name !== "stack" | ||
}) | ||
const definePropertiesSource = ownPropertyNames.map((name) => { | ||
const descriptor = Object.getOwnPropertyDescriptor(error, name) | ||
return `Object.defineProperty(error, ${nestedUneval(name)}, ${nestedUneval(descriptor)})` | ||
}) | ||
// TODO: make indentation dependent of current depth | ||
return `(function (error) { | ||
${definePropertiesSource.join(` | ||
`)} | ||
return error | ||
})(${errorSource})` | ||
} |
@@ -19,2 +19,3 @@ /* eslint-disable import/max-dependencies */ | ||
indentSize = 2, | ||
accurateErrorProperties = false, | ||
} = {}, | ||
@@ -52,4 +53,5 @@ ) => { | ||
indentSize, | ||
accurateErrorProperties, | ||
depth: 0, | ||
}) | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
154646
33
1815
0