File tree Expand file tree Collapse file tree 4 files changed +53
-9
lines changed
packages/react-native-codegen/src/parsers Expand file tree Collapse file tree 4 files changed +53
-9
lines changed Original file line number Diff line number Diff line change 1111
1212'use-strict' ;
1313
14- const { emitBoolean, emitInt32} = require ( '../parsers-primitives.js' ) ;
14+ const {
15+ emitBoolean,
16+ emitNumber,
17+ emitInt32,
18+ } = require ( '../parsers-primitives.js' ) ;
1519
1620describe ( 'emitBoolean' , ( ) => {
1721 describe ( 'when nullable is true' , ( ) => {
@@ -64,3 +68,29 @@ describe('emitInt32', () => {
6468 } ) ;
6569 } ) ;
6670} ) ;
71+
72+ describe ( 'emitNumber' , ( ) => {
73+ describe ( 'when nullable is true' , ( ) => {
74+ it ( 'returns nullable type annotation' , ( ) => {
75+ const result = emitNumber ( true ) ;
76+ const expected = {
77+ type : 'NullableTypeAnnotation' ,
78+ typeAnnotation : {
79+ type : 'NumberTypeAnnotation' ,
80+ } ,
81+ } ;
82+
83+ expect ( result ) . toEqual ( expected ) ;
84+ } ) ;
85+ } ) ;
86+ describe ( 'when nullable is false' , ( ) => {
87+ it ( 'returns non nullable type annotation' , ( ) => {
88+ const result = emitNumber ( false ) ;
89+ const expected = {
90+ type : 'NumberTypeAnnotation' ,
91+ } ;
92+
93+ expect ( result ) . toEqual ( expected ) ;
94+ } ) ;
95+ } ) ;
96+ } ) ;
Original file line number Diff line number Diff line change @@ -33,7 +33,11 @@ const {
3333 isModuleRegistryCall,
3434} = require ( '../utils.js' ) ;
3535const { unwrapNullable, wrapNullable} = require ( '../../parsers-commons' ) ;
36- const { emitBoolean, emitInt32} = require ( '../../parsers-primitives' ) ;
36+ const {
37+ emitBoolean,
38+ emitNumber,
39+ emitInt32,
40+ } = require ( '../../parsers-primitives' ) ;
3741const {
3842 IncorrectlyParameterizedFlowGenericParserError,
3943 MisnamedModuleFlowInterfaceParserError,
@@ -364,9 +368,7 @@ function translateTypeAnnotation(
364368 return emitBoolean ( nullable ) ;
365369 }
366370 case 'NumberTypeAnnotation' : {
367- return wrapNullable ( nullable , {
368- type : 'NumberTypeAnnotation' ,
369- } ) ;
371+ return emitNumber ( nullable ) ;
370372 }
371373 case 'VoidTypeAnnotation' : {
372374 return wrapNullable ( nullable , {
Original file line number Diff line number Diff line change 1313import type {
1414 BooleanTypeAnnotation ,
1515 Int32TypeAnnotation ,
16+ NativeModuleNumberTypeAnnotation ,
1617 Nullable ,
1718} from '../CodegenSchema' ;
1819
@@ -30,7 +31,16 @@ function emitInt32(nullable: boolean): Nullable<Int32TypeAnnotation> {
3031 } ) ;
3132}
3233
34+ function emitNumber (
35+ nullable : boolean ,
36+ ) : Nullable < NativeModuleNumberTypeAnnotation > {
37+ return wrapNullable ( nullable , {
38+ type : 'NumberTypeAnnotation' ,
39+ } ) ;
40+ }
41+
3342module . exports = {
3443 emitBoolean,
3544 emitInt32,
45+ emitNumber,
3646} ;
Original file line number Diff line number Diff line change @@ -33,7 +33,11 @@ const {
3333 isModuleRegistryCall,
3434} = require ( '../utils.js' ) ;
3535const { unwrapNullable, wrapNullable} = require ( '../../parsers-commons' ) ;
36- const { emitBoolean, emitInt32} = require ( '../../parsers-primitives' ) ;
36+ const {
37+ emitBoolean,
38+ emitNumber,
39+ emitInt32,
40+ } = require ( '../../parsers-primitives' ) ;
3741const {
3842 IncorrectlyParameterizedTypeScriptGenericParserError,
3943 MisnamedModuleTypeScriptInterfaceParserError,
@@ -399,9 +403,7 @@ function translateTypeAnnotation(
399403 return emitBoolean ( nullable ) ;
400404 }
401405 case 'TSNumberKeyword ': {
402- return wrapNullable ( nullable , {
403- type : 'NumberTypeAnnotation' ,
404- } ) ;
406+ return emitNumber ( nullable ) ;
405407 }
406408 case 'TSVoidKeyword ': {
407409 return wrapNullable ( nullable , {
You can’t perform that action at this time.
0 commit comments