Skip to content

Commit

Permalink
Extracts modules/utils.js files from the flow and typescript folders …
Browse files Browse the repository at this point in the history
…in parsers-commons (#34898)

Summary:
This PR is a task from #34872
_Extract the modules/utils.js from the flow and typescript folders in a shared parsers-commons.js file. Then, have the two parsers use the same wrapModuleSchema function for modules._
(`wrapModuleSchema` is a copy-paste mistake, in this case it is `wrapNullable` and `unwrapNullable`)

## 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] - Extracts Codegen's modules/utils.js files from the flow and typescript folders in parsers-commons

Pull Request resolved: #34898

Test Plan:
I ran `yarn jest react-native-codegen`:
<img width="775" alt="Capture d’écran 2022-10-07 à 21 29 48" src="https://user-images.githubusercontent.com/17070498/194639515-a446c2cf-daf3-43a1-9833-cd546ca5865e.png">

Reviewed By: cipolleschi

Differential Revision: D40193740

Pulled By: cipolleschi

fbshipit-source-id: 02cbacc215fe5dd9bdd0839d8796587ab2821906
  • Loading branch information
AntoineDoubovetzky authored and facebook-github-bot committed Oct 8, 2022
1 parent 0d3596a commit 24efebf
Show file tree
Hide file tree
Showing 15 changed files with 44 additions and 103 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import type {

import type {AliasResolver} from './Utils';
const {createAliasResolver, getModules} = require('./Utils');
const {unwrapNullable} = require('../../parsers/flow/modules/utils');
const {unwrapNullable} = require('../../parsers/parsers-commons');

type FilesOutput = Map<string, string>;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import type {
import type {AliasResolver} from './Utils';
const {createAliasResolver, getModules} = require('./Utils');
const {indent} = require('../Utils');
const {unwrapNullable} = require('../../parsers/flow/modules/utils');
const {unwrapNullable} = require('../../parsers/parsers-commons');

type FilesOutput = Map<string, string>;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import type {

import type {AliasResolver} from './Utils';
const {createAliasResolver, getModules} = require('./Utils');
const {unwrapNullable} = require('../../parsers/flow/modules/utils');
const {unwrapNullable} = require('../../parsers/parsers-commons');

type FilesOutput = Map<string, string>;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import type {

import type {AliasResolver} from './Utils';
const {createAliasResolver, getModules} = require('./Utils');
const {unwrapNullable} = require('../../parsers/flow/modules/utils');
const {unwrapNullable} = require('../../parsers/parsers-commons');

type FilesOutput = Map<string, string>;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ const {capitalize} = require('../../Utils');
const {
unwrapNullable,
wrapNullable,
} = require('../../../parsers/flow/modules/utils');
} = require('../../../parsers/parsers-commons');

type StructContext = 'CONSTANTS' | 'REGULAR';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import type {Nullable} from '../../../../CodegenSchema';
import type {StructTypeAnnotation, ConstantsStruct} from '../StructCollector';
import type {StructSerilizationOutput} from './serializeStruct';

const {unwrapNullable} = require('../../../../parsers/flow/modules/utils');
const {unwrapNullable} = require('../../../../parsers/parsers-commons');

const StructTemplate = ({
hasteModuleName,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import type {Nullable} from '../../../../CodegenSchema';
import type {StructTypeAnnotation, RegularStruct} from '../StructCollector';
import type {StructSerilizationOutput} from './serializeStruct';

const {unwrapNullable} = require('../../../../parsers/flow/modules/utils');
const {unwrapNullable} = require('../../../../parsers/parsers-commons');

const StructTemplate = ({
hasteModuleName,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ const {capitalize} = require('../../Utils');
const {
wrapNullable,
unwrapNullable,
} = require('../../../parsers/flow/modules/utils');
} = require('../../../parsers/parsers-commons');

const ProtocolMethodTemplate = ({
returnObjCType,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import type {
} from '../../../../CodegenSchema';

const {parseString} = require('../../index.js');
const {unwrapNullable} = require('../utils');
const {unwrapNullable} = require('../../../parsers-commons');
const {
UnsupportedFlowGenericParserError,
UnsupportedFlowTypeAnnotationParserError,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ const {
visit,
isModuleRegistryCall,
} = require('../utils.js');
const {unwrapNullable, wrapNullable} = require('./utils');
const {unwrapNullable, wrapNullable} = require('../../parsers-commons');
const {
IncorrectlyParameterizedFlowGenericParserError,
MisnamedModuleFlowInterfaceParserError,
Expand Down
45 changes: 0 additions & 45 deletions packages/react-native-codegen/src/parsers/flow/modules/utils.js

This file was deleted.

33 changes: 32 additions & 1 deletion packages/react-native-codegen/src/parsers/parsers-commons.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,12 @@

'use strict';

import type {SchemaType, NativeModuleSchema} from '../CodegenSchema.js';
import type {
SchemaType,
NativeModuleSchema,
NativeModuleTypeAnnotation,
Nullable,
} from '../CodegenSchema.js';

function wrapModuleSchema(
nativeModuleSchema: NativeModuleSchema,
Expand All @@ -23,6 +28,32 @@ function wrapModuleSchema(
};
}

function unwrapNullable<+T: NativeModuleTypeAnnotation>(
x: Nullable<T>,
): [T, boolean] {
if (x.type === 'NullableTypeAnnotation') {
return [x.typeAnnotation, true];
}

return [x, false];
}

function wrapNullable<+T: NativeModuleTypeAnnotation>(
nullable: boolean,
typeAnnotation: T,
): Nullable<T> {
if (!nullable) {
return typeAnnotation;
}

return {
type: 'NullableTypeAnnotation',
typeAnnotation,
};
}

module.exports = {
wrapModuleSchema,
unwrapNullable,
wrapNullable,
};
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import type {
} from '../../../../CodegenSchema';

const {parseString} = require('../../index.js');
const {unwrapNullable} = require('../utils');
const {unwrapNullable} = require('../../../parsers-commons');
const {
UnsupportedTypeScriptGenericParserError,
UnsupportedTypeScriptTypeAnnotationParserError,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ const {
visit,
isModuleRegistryCall,
} = require('../utils.js');
const {unwrapNullable, wrapNullable} = require('./utils');
const {unwrapNullable, wrapNullable} = require('../../parsers-commons');
const {
IncorrectlyParameterizedTypeScriptGenericParserError,
MisnamedModuleTypeScriptInterfaceParserError,
Expand Down

This file was deleted.

0 comments on commit 24efebf

Please sign in to comment.