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.
Files changed (3) hide show
  1. package/index.js +50 -25
  2. package/index.test.js +0 -1
  3. 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 $Object = require("es-object-atoms")
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
- const noop = require("yanoop").noop
11
- const bail = require("bail")
12
- const { Switch } = require("switch-in-fp")
13
- const vm = require("node:vm")
14
- const construct = require("construct-new")
15
- const attempt = require("attempt-statement")
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 = "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 = $Object.freeze({
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
- exports.immediateError = function immediateError(message = default_error, errorType = ErrorType.BaseError) {
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 = construct({ target: $BaseError, args: [message] })
63
+ error = CreateError($BaseError, message)
46
64
  })
47
65
  .case(ErrorType.EvalError, function () {
48
- error = construct({ target: $EvalError, args: [message] })
66
+ error = CreateError($EvalError, message)
49
67
  })
50
68
  .case(ErrorType.RangeError, function () {
51
- error = construct({ target: $RangeError, args: [message] })
69
+ error = CreateError($RangeError, message)
52
70
  })
53
71
  .case(ErrorType.ReferenceError, function () {
54
- error = construct({ target: $ReferenceError, args: [message] })
72
+ error = CreateError($ReferenceError, message)
55
73
  })
56
74
  .case(ErrorType.SyntaxError, function () {
57
- error = construct({ target: $SyntaxError, args: [message] })
75
+ error = CreateError($SyntaxError, message)
58
76
  })
59
77
  .case(ErrorType.TypeError, function () {
60
- error = construct({ target: $TypeError, args: [message] })
78
+ error = CreateError($TypeError, message)
61
79
  })
62
80
  .case(ErrorType.URIError, function () {
63
- error = construct({ target: $URIError, args: [message] })
81
+ error = CreateError($URIError, message)
64
82
  })
65
83
  .else(function () {
66
84
  attempt(function () {
67
- error = construct({ target: errorType, args: [message] })
68
- }).rescue(function () {
69
- error = construct({ target: $BaseError, args: [message] })
70
- }).else(noop).ensure(noop).end()
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({ target: vm.Script, args: ["bail(error)", { filename: default_error }] })
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
@@ -1,5 +1,4 @@
1
1
  const { immediateError, ErrorType } = require('./index')
2
- const assert = require('node:assert')
3
2
 
4
3
  describe('immediateError utility', () => {
5
4
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "immediate-error",
3
- "version": "7.2.0",
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": "^4.0.0",
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
- "es-object-atoms": "^1.1.1",
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"