extract emitDouble from parsers modules to shared parsers-primitives (#34913)

Summary:
Part of https://github.com/facebook/react-native/issues/34872

This PR extracts the content of the case 'Double' ([Flow](https://github.com/facebook/react-native/blob/b444f0e44e0d8670139acea5f14c2de32c5e2ddc/packages/react-native-codegen/src/parsers/flow/modules/index.js#L202-L204), [TypeScript](https://github.com/facebook/react-native/blob/00b795642a6562fb52d6df12e367b84674994623/packages/react-native-codegen/src/parsers/typescript/modules/index.js#L1235-L237)) into a single emitDouble function in the parsers-primitives.js file. Use the new function in the parsers.

## Changelog

<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->

[Internal] [Changed] - Extract contents of the case 'Double' into a single emitDouble function inside parsers-primitives

Pull Request resolved: https://github.com/facebook/react-native/pull/34913

Test Plan: I tested using jest and flow commands.

Reviewed By: cipolleschi

Differential Revision: D40216018

Pulled By: cipolleschi

fbshipit-source-id: bc2aaa7636fbd2f6c861e4d87e394d0e4875a4a5
This commit is contained in:
Antoine Doubovetzky
2022-10-10 04:23:30 -07:00
committed by Facebook GitHub Bot
parent 5f05b07d02
commit 3ab7ef24a7
4 changed files with 40 additions and 7 deletions
@@ -13,10 +13,11 @@
const {
emitBoolean,
emitDouble,
emitNumber,
emitInt32,
emitRootTag,
} = require('../parsers-primitives');
} = require('../parsers-primitives.js');
describe('emitBoolean', () => {
describe('when nullable is true', () => {
@@ -121,3 +122,29 @@ describe('emitRootTag', () => {
});
});
});
describe('emitDouble', () => {
describe('when nullable is true', () => {
it('returns nullable type annotation', () => {
const result = emitDouble(true);
const expected = {
type: 'NullableTypeAnnotation',
typeAnnotation: {
type: 'DoubleTypeAnnotation',
},
};
expect(result).toEqual(expected);
});
});
describe('when nullable is false', () => {
it('returns non nullable type annotation', () => {
const result = emitDouble(false);
const expected = {
type: 'DoubleTypeAnnotation',
};
expect(result).toEqual(expected);
});
});
});
@@ -35,6 +35,7 @@ const {
const {unwrapNullable, wrapNullable} = require('../../parsers-commons');
const {
emitBoolean,
emitDouble,
emitNumber,
emitInt32,
emitRootTag,
@@ -204,9 +205,7 @@ function translateTypeAnnotation(
return emitInt32(nullable);
}
case 'Double': {
return wrapNullable(nullable, {
type: 'DoubleTypeAnnotation',
});
return emitDouble(nullable);
}
case 'Float': {
return wrapNullable(nullable, {
@@ -12,6 +12,7 @@
import type {
BooleanTypeAnnotation,
DoubleTypeAnnotation,
Int32TypeAnnotation,
NativeModuleNumberTypeAnnotation,
Nullable,
@@ -47,8 +48,15 @@ function emitRootTag(nullable: boolean): Nullable<ReservedTypeAnnotation> {
});
}
function emitDouble(nullable: boolean): Nullable<DoubleTypeAnnotation> {
return wrapNullable(nullable, {
type: 'DoubleTypeAnnotation',
});
}
module.exports = {
emitBoolean,
emitDouble,
emitInt32,
emitNumber,
emitRootTag,
@@ -35,6 +35,7 @@ const {
const {unwrapNullable, wrapNullable} = require('../../parsers-commons');
const {
emitBoolean,
emitDouble,
emitNumber,
emitInt32,
emitRootTag,
@@ -238,9 +239,7 @@ function translateTypeAnnotation(
return emitInt32(nullable);
}
case 'Double': {
return wrapNullable(nullable, {
type: 'DoubleTypeAnnotation',
});
return emitDouble(nullable);
}
case 'Float': {
return wrapNullable(nullable, {