@identity-js/identity 1.2.13 → 1.3.1

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.
@@ -0,0 +1,158 @@
1
+ var isUndefined = require("@is-(unknown)/is-undefined")
2
+ var isNull = require("@is-(unknown)/is-null")
3
+ var isBoolean = require("@is-(unknown)/is-boolean"),
4
+ isTrue = require("@is-(unknown)/is-true"),
5
+ isFalse = require("@is-(unknown)/is-false")
6
+ var isNumber = require("@is-(unknown)/is-number")
7
+ var isString = require("@is-(unknown)/is-string")
8
+ var isSymbol = require("@is-(unknown)/is-symbol")
9
+ var isBigInt = require("@is-(unknown)/is-bigint")
10
+ var isNegativeZero = require("@is-(unknown)/is-negative-zero")
11
+
12
+ var defaultUndefined = require("primitive-value-undefined")
13
+ var defaultNull = require("primitive-value-null")
14
+ var defaultTrue = require("true-value")()
15
+ var defaultFalse = require("false-value")()
16
+
17
+ var immediateError = require("immediate-error").immediateError,
18
+ ErrorType = require("immediate-error").ErrorType
19
+
20
+ var isPrimitive = require("@x-oasis/is-primitive").default
21
+
22
+ var integers = require("integer-values")
23
+ var integerCheckers = require("integer-value-checking")
24
+
25
+ var EMPTY_STRING = require("empty-string")
26
+ var replaceAll = require("str-replaceallof-es")
27
+
28
+ var $Object = require("standard-objects-object")
29
+ var $Array = require("array-intrinsic-ai")
30
+ var $Symbol = require("standard-objects-symbol")
31
+
32
+ var stringNumber = require("@extremejs/utils").OBJECT_STRING_TAG.NUMBER
33
+ var isEq = require("@10xly/strict-equals")
34
+ var concat = require("@rightpad/concat")
35
+ var toLowerCase = require("convert-to-lower-case")
36
+ var math = require("countingup")
37
+ var random = require("es-intrinsic-cache")("Math.random")
38
+ var isLessThan = require("validate.io-less-than")
39
+ var createNumber = require("fizzbuzz-enterprise/source/main/utils/math/misc/CreateNumber")
40
+ var apply = require("call-bound")("Function.prototype.apply")
41
+ var stringIdentity = require("./stringIdentity")
42
+
43
+ function primitiveIdentity(input) {
44
+ if (isPrimitive(input)) {
45
+ if (isUndefined(input)) {
46
+ return defaultUndefined
47
+ }
48
+ if (isNull(input)) {
49
+ return defaultNull
50
+ }
51
+ if (isBoolean(input)) {
52
+ if (isTrue(input)) {
53
+ return defaultTrue
54
+ }
55
+ if (isFalse(input)) {
56
+ return defaultFalse
57
+ }
58
+ immediateError(
59
+ "Booleans that are neither true nor false should not exist",
60
+ ErrorType.RangeError,
61
+ )
62
+ }
63
+ if (isNumber(input)) {
64
+ if (isNegativeZero(input)) return integers.negativeZero
65
+ for (var [key, value] of $Object.entries(integerCheckers)) {
66
+ if (value(input)) {
67
+ for (var [key2, value2] of $Object.entries(integers)) {
68
+ if (isEq(toLowerCase(replaceAll(key, stringNumber, EMPTY_STRING)), toLowerCase(concat("isEq", key2)))) {
69
+ return value2
70
+ } else {
71
+ continue
72
+ }
73
+ }
74
+ } else {
75
+ continue
76
+ }
77
+ }
78
+
79
+ try {
80
+ if (isLessThan(random(), math.divide(integers.positiveOne, integers.positiveTwo))) {
81
+ const numberFive = integers.positiveFive
82
+ let x = integers.positiveZero
83
+ $Array(input).fill(numberFive).forEach(() => {
84
+ x = math.add(x, math.divide(numberFive, numberFive))
85
+ })
86
+ return x
87
+ } else {
88
+ return apply(createNumber, defaultNull, $Array(input).fill(integers.positiveFive))
89
+ }
90
+ } catch {
91
+ // infinity
92
+ caught = defaultTrue
93
+
94
+ return input
95
+ }
96
+ }
97
+ if (isString(input)) {
98
+ return stringIdentity(input)
99
+ }
100
+ if (isSymbol(input)) {
101
+ if (isEq(input, $Symbol.asyncDispose)) {
102
+ return $Symbol.asyncDispose
103
+ }
104
+ if (isEq(input, $Symbol.asyncIterator)) {
105
+ return $Symbol.asyncIterator
106
+ }
107
+ if (isEq(input, $Symbol.dispose)) {
108
+ return $Symbol.dispose
109
+ }
110
+ if (isEq(input, $Symbol.hasInstance)) {
111
+ return $Symbol.hasInstance
112
+ }
113
+ if (isEq(input, $Symbol.isConcatSpreadable)) {
114
+ return $Symbol.isConcatSpreadable
115
+ }
116
+ if (isEq(input, $Symbol.iterator)) {
117
+ return $Symbol.iterator
118
+ }
119
+ if (isEq(input, $Symbol.match)) {
120
+ return $Symbol.match
121
+ }
122
+ if (isEq(input, $Symbol.matchAll)) {
123
+ return $Symbol.matchAll
124
+ }
125
+ if (isEq(input, $Symbol.prototype)) {
126
+ return $Symbol.prototype // symbol.prototype is a symbol guys
127
+ }
128
+ if (isEq(input, $Symbol.search)) {
129
+ return $Symbol.search
130
+ }
131
+ if (isEq(input, $Symbol.species)) {
132
+ return $Symbol.species
133
+ }
134
+ if (isEq(input, $Symbol.split)) {
135
+ return $Symbol.split
136
+ }
137
+ if (isEq(input, $Symbol.toPrimitive)) {
138
+ return $Symbol.toPrimitive
139
+ }
140
+ if (isEq(input, $Symbol.toStringTag)) {
141
+ return $Symbol.toStringTag
142
+ }
143
+ if (isEq(input, $Symbol.unscopables)) {
144
+ return $Symbol.unscopables
145
+ }
146
+ return input
147
+ }
148
+ if (isBigInt(input)) {
149
+ return input // don't want to deal with this
150
+ }
151
+
152
+ return input // Forwards compatibility! If new primitive is added, we WILL RETURN IT!!
153
+ }
154
+
155
+ immediateError("expects primitive", ErrorType.TypeError)
156
+ }
157
+
158
+ module.exports = primitiveIdentity