Skip to content

Commit 5b8d25e

Browse files
committed
Don't use parseFloat to correctly parse numbers
1 parent fc07378 commit 5b8d25e

File tree

4 files changed

+45
-19
lines changed

4 files changed

+45
-19
lines changed

src/compileValueSchema.ts

+1-7
Original file line numberDiff line numberDiff line change
@@ -629,13 +629,7 @@ function compileNumberSchema(
629629
builders.assignmentExpression(
630630
'=',
631631
value,
632-
builders.callExpression(
633-
builders.memberExpression(
634-
builders.identifier('Number'),
635-
builders.identifier('parseFloat'),
636-
),
637-
[value],
638-
),
632+
builders.callExpression(builders.identifier('Number'), [value]),
639633
),
640634
),
641635
]),

src/tests/__snapshots__/compileValueSchema.test.ts.snap

+10-10
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export class ValidationError extends RequestError {
3030
}
3131
function obj0(path, value, context) {
3232
if (typeof value === 'string') {
33-
value = Number.parseFloat(value);
33+
value = Number(value);
3434
}
3535
if (typeof value !== 'number' || Number.isNaN(value)) {
3636
return new ValidationError(path, 'expected a number');
@@ -69,7 +69,7 @@ export class ValidationError extends RequestError {
6969
}
7070
function obj0(path, value, context) {
7171
if (typeof value === 'string') {
72-
value = Number.parseFloat(value);
72+
value = Number(value);
7373
}
7474
if (typeof value !== 'number' || Number.isNaN(value)) {
7575
return new ValidationError(path, 'expected a number');
@@ -111,7 +111,7 @@ function obj0(path, value, context) {
111111
return value;
112112
}
113113
if (typeof value === 'string') {
114-
value = Number.parseFloat(value);
114+
value = Number(value);
115115
}
116116
if (typeof value !== 'number' || Number.isNaN(value)) {
117117
return new ValidationError(path, 'expected a number');
@@ -266,7 +266,7 @@ export class ValidationError extends RequestError {
266266
}
267267
function obj1(path, value, context) {
268268
if (typeof value === 'string') {
269-
value = Number.parseFloat(value);
269+
value = Number(value);
270270
}
271271
if (typeof value !== 'number' || Number.isNaN(value)) {
272272
return new ValidationError(path, 'expected a number');
@@ -344,7 +344,7 @@ export class ValidationError extends RequestError {
344344
}
345345
function obj1(path, value, context) {
346346
if (typeof value === 'string') {
347-
value = Number.parseFloat(value);
347+
value = Number(value);
348348
}
349349
if (typeof value !== 'number' || Number.isNaN(value)) {
350350
return new ValidationError(path, 'expected a number');
@@ -441,7 +441,7 @@ export class ValidationError extends RequestError {
441441
}
442442
function obj1(path, value, context) {
443443
if (typeof value === 'string') {
444-
value = Number.parseFloat(value);
444+
value = Number(value);
445445
}
446446
if (typeof value !== 'number' || Number.isNaN(value)) {
447447
return new ValidationError(path, 'expected a number');
@@ -501,7 +501,7 @@ export class ValidationError extends RequestError {
501501
}
502502
function obj1(path, value, context) {
503503
if (typeof value === 'string') {
504-
value = Number.parseFloat(value);
504+
value = Number(value);
505505
}
506506
if (typeof value !== 'number' || Number.isNaN(value)) {
507507
return new ValidationError(path, 'expected a number');
@@ -735,7 +735,7 @@ export class ValidationError extends RequestError {
735735
}
736736
function obj1(path, value, context) {
737737
if (typeof value === 'string') {
738-
value = Number.parseFloat(value);
738+
value = Number(value);
739739
}
740740
if (typeof value !== 'number' || Number.isNaN(value)) {
741741
return new ValidationError(path, 'expected a number');
@@ -791,7 +791,7 @@ export class ValidationError extends RequestError {
791791
}
792792
function obj1(path, value, context) {
793793
if (typeof value === 'string') {
794-
value = Number.parseFloat(value);
794+
value = Number(value);
795795
}
796796
if (typeof value !== 'number' || Number.isNaN(value)) {
797797
return new ValidationError(path, 'expected a number');
@@ -854,7 +854,7 @@ export class ValidationError extends RequestError {
854854
}
855855
function obj2(path, value, context) {
856856
if (typeof value === 'string') {
857-
value = Number.parseFloat(value);
857+
value = Number(value);
858858
}
859859
if (typeof value !== 'number' || Number.isNaN(value)) {
860860
return new ValidationError(path, 'expected a number');

src/tests/__snapshots__/compiler.test.ts.snap

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export class ValidationError extends RequestError {
3030
}
3131
function obj0(path, value, context) {
3232
if (typeof value === 'string') {
33-
value = Number.parseFloat(value);
33+
value = Number(value);
3434
}
3535
if (typeof value !== 'number' || Number.isNaN(value)) {
3636
return new ValidationError(path, 'expected a number');
@@ -106,7 +106,7 @@ export class ValidationError extends RequestError {
106106
}
107107
function obj0(path, value, context) {
108108
if (typeof value === 'string') {
109-
value = Number.parseFloat(value);
109+
value = Number(value);
110110
}
111111
if (typeof value !== 'number' || Number.isNaN(value)) {
112112
return new ValidationError(path, 'expected a number');

tests/gitbook.test.ts

+32
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,38 @@ test('PUT orgs/apple/schemas/newType', () => {
146146
});
147147
});
148148

149+
test('PUT orgs/apple/schemas/newType/entities', () => {
150+
const result = validateRequest({
151+
path: '/orgs/apple/schemas/newType/entities',
152+
method: 'put',
153+
headers: {
154+
'content-type': 'application/json',
155+
},
156+
query: {},
157+
body: {
158+
entities: [
159+
{
160+
entityId: 'something',
161+
properties: {
162+
title: 'Updated lambda',
163+
description: 'the description',
164+
url: 'https://example.com',
165+
public_traffic: false,
166+
created_on: '2020-01-01T00:00:00.000Z',
167+
},
168+
},
169+
],
170+
},
171+
});
172+
expect(result).toMatchObject({
173+
operationId: 'upsertSchemaEntities',
174+
params: {
175+
organizationId: 'apple',
176+
entityType: 'newType',
177+
},
178+
});
179+
});
180+
149181
test('POST orgs/apple/members/jony (invalid)', () => {
150182
const result = validateRequest({
151183
path: '/orgs/apple/members/jony',

0 commit comments

Comments
 (0)