@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.
- package/BUG-HISTORY.md +2 -3
- package/README.md +56 -54
- package/index.d.ts +3 -0
- package/index.js +1 -75
- package/lib/core.js +83 -0
- package/lib/coremeta2.js +14 -0
- package/lib/index.js +1 -0
- package/lib/meta2.js +3 -0
- package/{meta2.js → lib/meta2IdentityFunctions.js} +3 -14
- package/lib/meta2IdentityFunctionsUnstable.js +11 -0
- package/lib/meta2Unstable.js +3 -0
- package/lib/numberIdentity.js +265 -0
- package/{primitive.js → lib/primitive.js} +1 -1
- package/lib/primitiveCore.js +158 -0
- package/lib/stringIdentity.js +972 -0
- package/lib/syncResolveBluebird.js +8 -0
- package/lib/syncResolveCoreJS.js +8 -0
- package/lib/syncResolveES6Promise.js +8 -0
- package/lib/syncResolveES6PromisePolyfill.js +8 -0
- package/lib/syncResolveIsAPromise.js +8 -0
- package/lib/syncResolvePinkiePromise.js +8 -0
- package/lib/syncResolvePromisePolyfill.js +8 -0
- package/lib/syncResolveSchrodingerPlus.js +8 -0
- package/lib/syncResolveThenPromise.js +8 -0
- package/lib/unstable.js +1 -0
- package/package.json +585 -66
- package/test/enterprise.js +73 -0
- package/test/mocha.js +2271 -0
- package/unstable.d.ts +3 -0
- package/unstable.js +1 -0
- package/test/index.js +0 -147
|
@@ -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
|