File tree Expand file tree Collapse file tree 1 file changed +17
-6
lines changed Expand file tree Collapse file tree 1 file changed +17
-6
lines changed Original file line number Diff line number Diff line change @@ -23,17 +23,28 @@ module.exports = class Serializer {
23
23
}
24
24
25
25
asInteger ( i ) {
26
- if ( typeof i === 'bigint' ) {
26
+ if ( typeof i === 'number' ) {
27
+ if ( i === Infinity || i === - Infinity ) {
28
+ throw new Error ( `The value "${ i } " cannot be converted to an integer.` )
29
+ }
30
+ if ( ( i | 0 ) === i ) {
31
+ return '' + i
32
+ }
33
+ if ( Number . isNaN ( i ) ) {
34
+ throw new Error ( `The value "${ i } " cannot be converted to an integer.` )
35
+ }
36
+ return this . parseInteger ( i )
37
+ } else if ( i === null ) {
38
+ return '0'
39
+ } else if ( typeof i === 'bigint' ) {
27
40
return i . toString ( )
28
- } else if ( Number . isInteger ( i ) ) {
29
- return '' + i
30
41
} else {
31
42
/* eslint no-undef: "off" */
32
43
const integer = this . parseInteger ( i )
33
- if ( Number . isNaN ( integer ) || ! Number . isFinite ( integer ) ) {
34
- throw new Error ( `The value "${ i } " cannot be converted to an integer.` )
35
- } else {
44
+ if ( Number . isFinite ( integer ) ) {
36
45
return '' + integer
46
+ } else {
47
+ throw new Error ( `The value "${ i } " cannot be converted to an integer.` )
37
48
}
38
49
}
39
50
}
You can’t perform that action at this time.
0 commit comments