immediate-error 7.2.0 → 8.0.0
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/index.js +50 -25
- package/index.test.js +0 -1
- package/package.json +11 -5
package/index.js
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
|
+
"use struct" // struct mode!
|
|
2
|
+
|
|
1
3
|
const GetIntrinsic = require("es-intrinsic-cache")
|
|
2
|
-
const
|
|
4
|
+
const isdash = require("is-")
|
|
5
|
+
const noop = require("n0p3-es2015-cjs")
|
|
6
|
+
const bail = require("bail")
|
|
7
|
+
const { Switch } = require("switch-in-fp")
|
|
8
|
+
const vm = require("node:vm")
|
|
9
|
+
const construct = require("construct-new")
|
|
10
|
+
const attempt = require("attempt-statement")
|
|
11
|
+
const trueValue = require("true-value")
|
|
12
|
+
const asArray = require("as-array")
|
|
13
|
+
const deepFreeze = require("deep-freeze-node3") // 3rd iteration of deep-freeze-node.
|
|
14
|
+
|
|
3
15
|
const zero = require("@positive-numbers/zero")
|
|
4
16
|
const one = require("@positive-numbers/one")
|
|
5
17
|
const two = require("@positive-numbers/two")
|
|
@@ -7,13 +19,12 @@ const three = require("@positive-numbers/three")
|
|
|
7
19
|
const four = require("@positive-numbers/four")
|
|
8
20
|
const five = require("@positive-numbers/five")
|
|
9
21
|
const six = require("@positive-numbers/six")
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
const trueValue = require("true-value")
|
|
22
|
+
|
|
23
|
+
const E = require("@uppercase-letters/e")
|
|
24
|
+
const O = require("@uppercase-letters/o")
|
|
25
|
+
const R = require("@uppercase-letters/r")
|
|
26
|
+
|
|
27
|
+
const concat = require("@rightpad/concat")
|
|
17
28
|
|
|
18
29
|
const $BaseError = require("es-error-intrinsics/Error")
|
|
19
30
|
const $EvalError = require("es-error-intrinsics/EvalError")
|
|
@@ -25,9 +36,9 @@ const $URIError = require("es-error-intrinsics/URIError")
|
|
|
25
36
|
|
|
26
37
|
const captureStackTrace = GetIntrinsic("%Error.captureStackTrace%", trueValue())
|
|
27
38
|
|
|
28
|
-
const default_error = "
|
|
39
|
+
const default_error = concat(E, R, R, O, R, "!") // TODO: If an exclamation point package is created, use that here instead.
|
|
29
40
|
|
|
30
|
-
const ErrorType =
|
|
41
|
+
const ErrorType = deepFreeze({
|
|
31
42
|
BaseError: zero,
|
|
32
43
|
EvalError: one,
|
|
33
44
|
RangeError: two,
|
|
@@ -37,52 +48,66 @@ const ErrorType = $Object.freeze({
|
|
|
37
48
|
URIError: six,
|
|
38
49
|
})
|
|
39
50
|
|
|
40
|
-
|
|
51
|
+
function CreateError(error, message) {
|
|
52
|
+
return construct({ target: error, args: asArray(message) })
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
exports.immediateError = function immediateError(
|
|
56
|
+
message = default_error,
|
|
57
|
+
errorType = ErrorType.BaseError
|
|
58
|
+
) {
|
|
41
59
|
var error
|
|
42
60
|
|
|
43
61
|
Switch(errorType)
|
|
44
62
|
.case(ErrorType.BaseError, function () {
|
|
45
|
-
error =
|
|
63
|
+
error = CreateError($BaseError, message)
|
|
46
64
|
})
|
|
47
65
|
.case(ErrorType.EvalError, function () {
|
|
48
|
-
error =
|
|
66
|
+
error = CreateError($EvalError, message)
|
|
49
67
|
})
|
|
50
68
|
.case(ErrorType.RangeError, function () {
|
|
51
|
-
error =
|
|
69
|
+
error = CreateError($RangeError, message)
|
|
52
70
|
})
|
|
53
71
|
.case(ErrorType.ReferenceError, function () {
|
|
54
|
-
error =
|
|
72
|
+
error = CreateError($ReferenceError, message)
|
|
55
73
|
})
|
|
56
74
|
.case(ErrorType.SyntaxError, function () {
|
|
57
|
-
error =
|
|
75
|
+
error = CreateError($SyntaxError, message)
|
|
58
76
|
})
|
|
59
77
|
.case(ErrorType.TypeError, function () {
|
|
60
|
-
error =
|
|
78
|
+
error = CreateError($TypeError, message)
|
|
61
79
|
})
|
|
62
80
|
.case(ErrorType.URIError, function () {
|
|
63
|
-
error =
|
|
81
|
+
error = CreateError($URIError, message)
|
|
64
82
|
})
|
|
65
83
|
.else(function () {
|
|
66
84
|
attempt(function () {
|
|
67
|
-
error =
|
|
68
|
-
})
|
|
69
|
-
|
|
70
|
-
|
|
85
|
+
error = CreateError(errorType, message)
|
|
86
|
+
})
|
|
87
|
+
.rescue(function () {
|
|
88
|
+
error = CreateError($BaseError, message)
|
|
89
|
+
})
|
|
90
|
+
.else(noop)
|
|
91
|
+
.ensure(noop)
|
|
92
|
+
.end()
|
|
71
93
|
})
|
|
72
94
|
.execute()
|
|
73
95
|
|
|
74
|
-
if (captureStackTrace) {
|
|
96
|
+
if (isdash.is(captureStackTrace)) {
|
|
75
97
|
captureStackTrace(error, immediateError)
|
|
76
98
|
}
|
|
77
99
|
|
|
78
100
|
const context = {
|
|
79
101
|
error: error,
|
|
80
|
-
bail: bail
|
|
102
|
+
bail: bail,
|
|
81
103
|
}
|
|
82
104
|
|
|
83
105
|
vm.createContext(context)
|
|
84
106
|
|
|
85
|
-
const script = construct({
|
|
107
|
+
const script = construct({
|
|
108
|
+
target: vm.Script,
|
|
109
|
+
args: ["bail(error)", { filename: default_error }],
|
|
110
|
+
})
|
|
86
111
|
|
|
87
112
|
script.runInContext(context)
|
|
88
113
|
}
|
package/index.test.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "immediate-error",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"description": "throw errors in fp",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -55,17 +55,23 @@
|
|
|
55
55
|
"@positive-numbers/six": "^3.0.0",
|
|
56
56
|
"@positive-numbers/three": "^3.0.0",
|
|
57
57
|
"@positive-numbers/two": "^3.0.0",
|
|
58
|
-
"@positive-numbers/zero": "^
|
|
58
|
+
"@positive-numbers/zero": "^5.0.0",
|
|
59
|
+
"@rightpad/concat": "^1.0.0",
|
|
60
|
+
"@uppercase-letters/e": "^3.0.0",
|
|
61
|
+
"@uppercase-letters/o": "^3.0.0",
|
|
62
|
+
"@uppercase-letters/r": "^3.0.0",
|
|
63
|
+
"as-array": "^2.0.0",
|
|
59
64
|
"attempt-statement": "^1.2.0",
|
|
60
65
|
"bail": "^1.0.5",
|
|
61
66
|
"construct-new": "^2.0.3",
|
|
67
|
+
"deep-freeze-node3": "^1.1.0",
|
|
62
68
|
"es-error-intrinsics": "^1.0.1",
|
|
63
69
|
"es-intrinsic-cache": "^1.0.1",
|
|
64
|
-
"
|
|
70
|
+
"is-": "^1.0.0",
|
|
71
|
+
"n0p3-es2015-cjs": "^1.0.1",
|
|
65
72
|
"number-zero": "^1.0.3",
|
|
66
73
|
"switch-in-fp": "^3.0.0",
|
|
67
|
-
"true-value": "^2.0.5"
|
|
68
|
-
"yanoop": "^1.0.0"
|
|
74
|
+
"true-value": "^2.0.5"
|
|
69
75
|
},
|
|
70
76
|
"devDependencies": {
|
|
71
77
|
"jest": "^30.2.0"
|