rdfjs-resource 2.0.3 → 2.0.4
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/dist/LiteralDecoder.js +7 -7
- package/package.json +1 -1
package/dist/LiteralDecoder.js
CHANGED
|
@@ -9,14 +9,14 @@ export var LiteralDecoder;
|
|
|
9
9
|
(function (LiteralDecoder) {
|
|
10
10
|
const BIGINT_NUMBER_MAX_SAFE_INTEGER = BigInt(Number.MAX_SAFE_INTEGER);
|
|
11
11
|
const BIGINT_NUMBER_MIN_SAFE_INTEGER = BigInt(Number.MIN_SAFE_INTEGER);
|
|
12
|
-
function
|
|
12
|
+
function convertBigIntToNumber(literal, value) {
|
|
13
13
|
if (value >= BIGINT_NUMBER_MIN_SAFE_INTEGER &&
|
|
14
14
|
value <= BIGINT_NUMBER_MAX_SAFE_INTEGER) {
|
|
15
15
|
return Either.of(Number(value));
|
|
16
16
|
}
|
|
17
17
|
return Left(new LiteralValueError(literal, `bigint ${value} is outside number's safe integer range [${Number.MIN_SAFE_INTEGER}, ${Number.MAX_SAFE_INTEGER}]`));
|
|
18
18
|
}
|
|
19
|
-
function
|
|
19
|
+
function convertNumberToBigInt(literal, value) {
|
|
20
20
|
if (Number.isInteger(value)) {
|
|
21
21
|
return Either.of(BigInt(value));
|
|
22
22
|
}
|
|
@@ -31,9 +31,9 @@ export var LiteralDecoder;
|
|
|
31
31
|
case "bigint":
|
|
32
32
|
return decodeBigIntLiteralValue(literal);
|
|
33
33
|
case "float":
|
|
34
|
-
return decodeFloatLiteralValue(literal).chain((value) =>
|
|
34
|
+
return decodeFloatLiteralValue(literal).chain((value) => convertNumberToBigInt(literal, value));
|
|
35
35
|
case "int":
|
|
36
|
-
return decodeIntLiteralValue(literal).chain((value) =>
|
|
36
|
+
return decodeIntLiteralValue(literal).chain((value) => convertNumberToBigInt(literal, value));
|
|
37
37
|
default:
|
|
38
38
|
return Left(new LiteralDatatypeError(literal));
|
|
39
39
|
}
|
|
@@ -94,7 +94,7 @@ export var LiteralDecoder;
|
|
|
94
94
|
}
|
|
95
95
|
switch (literalDatatypeDefinition.kind) {
|
|
96
96
|
case "bigint":
|
|
97
|
-
return decodeBigIntLiteral(literal).chain((value) =>
|
|
97
|
+
return decodeBigIntLiteral(literal).chain((value) => convertBigIntToNumber(literal, value));
|
|
98
98
|
case "float":
|
|
99
99
|
case "int":
|
|
100
100
|
return decodeFloatLiteralValue(literal);
|
|
@@ -128,7 +128,7 @@ export var LiteralDecoder;
|
|
|
128
128
|
}
|
|
129
129
|
switch (literalDatatypeDefinition.kind) {
|
|
130
130
|
case "bigint":
|
|
131
|
-
return decodeBigIntLiteral(literal).chain((value) =>
|
|
131
|
+
return decodeBigIntLiteral(literal).chain((value) => convertBigIntToNumber(literal, value));
|
|
132
132
|
case "float":
|
|
133
133
|
case "int":
|
|
134
134
|
return decodeIntLiteralValue(literal);
|
|
@@ -152,7 +152,7 @@ export var LiteralDecoder;
|
|
|
152
152
|
}
|
|
153
153
|
switch (literalDatatypeDefinition.kind) {
|
|
154
154
|
case "bigint":
|
|
155
|
-
return decodeBigIntLiteralValue(literal).chain((value) =>
|
|
155
|
+
return decodeBigIntLiteralValue(literal).chain((value) => convertBigIntToNumber(literal, value));
|
|
156
156
|
case "float":
|
|
157
157
|
return decodeFloatLiteralValue(literal);
|
|
158
158
|
case "int":
|
package/package.json
CHANGED