mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Chore/extract codegen parser more than one module exception (#34920)
Summary: This PR is part of https://github.com/facebook/react-native/issues/34872 This PR extracts MoreThanOneModuleInterfaceParserError exception to a separate function inside an error-utils.js file ## Changelog [Internal] [Changed] - Extract MoreThanOneModuleInterfaceParserError to a seperate function inside error-utils.js Pull Request resolved: https://github.com/facebook/react-native/pull/34920 Test Plan: <img width="297" alt="image" src="https://user-images.githubusercontent.com/18408823/194859284-7d3ff330-c644-472e-9ae0-3b9444bc12e8.png"> Reviewed By: cortinico Differential Revision: D40226575 Pulled By: cipolleschi fbshipit-source-id: 01e581abfae1ffe40e92bed8c9bedd6fe09e1aab
This commit is contained in:
committed by
Facebook GitHub Bot
parent
27cb501481
commit
f628edc502
@@ -19,8 +19,12 @@ const {
|
||||
throwIfWrongNumberOfCallExpressionArgs,
|
||||
throwIfIncorrectModuleRegistryCallTypeParameterParserError,
|
||||
throwIfUnsupportedFunctionReturnTypeAnnotationParserError,
|
||||
throwIfMoreThanOneModuleInterfaceParserError,
|
||||
throwIfModuleTypeIsUnsupported,
|
||||
throwIfUntypedModule,
|
||||
} = require('../error-utils');
|
||||
const {
|
||||
UnsupportedModulePropertyParserError,
|
||||
ModuleInterfaceNotFoundParserError,
|
||||
MoreThanOneModuleRegistryCallsParserError,
|
||||
MisnamedModuleInterfaceParserError,
|
||||
@@ -28,6 +32,8 @@ const {
|
||||
IncorrectModuleRegistryCallArityParserError,
|
||||
IncorrectModuleRegistryCallTypeParameterParserError,
|
||||
UnsupportedFunctionReturnTypeAnnotationParserError,
|
||||
UntypedModuleRegistryCallParserError,
|
||||
MoreThanOneModuleInterfaceParserError,
|
||||
} = require('../errors');
|
||||
|
||||
describe('throwIfModuleInterfaceIsMisnamed', () => {
|
||||
@@ -484,8 +490,6 @@ describe('throwIfIncorrectModuleRegistryCallTypeParameterParserError', () => {
|
||||
});
|
||||
|
||||
describe('throwIfUntypedModule', () => {
|
||||
const {throwIfUntypedModule} = require('../error-utils');
|
||||
const {UntypedModuleRegistryCallParserError} = require('../errors');
|
||||
const hasteModuleName = 'moduleName';
|
||||
const methodName = 'methodName';
|
||||
const moduleName = 'moduleName';
|
||||
@@ -527,8 +531,6 @@ describe('throwIfUntypedModule', () => {
|
||||
});
|
||||
|
||||
describe('throwIfModuleTypeIsUnsupported', () => {
|
||||
const {throwIfModuleTypeIsUnsupported} = require('../error-utils.js');
|
||||
const {UnsupportedModulePropertyParserError} = require('../errors.js');
|
||||
const hasteModuleName = 'moduleName';
|
||||
const property = {value: 'value', key: {name: 'name'}};
|
||||
it("don't throw error if module type is FunctionTypeAnnotation in Flow", () => {
|
||||
@@ -602,3 +604,32 @@ describe('throwIfModuleTypeIsUnsupported', () => {
|
||||
}).toThrow(UnsupportedModulePropertyParserError);
|
||||
});
|
||||
});
|
||||
|
||||
describe('throwIfMoreThanOneModuleInterfaceParserError', () => {
|
||||
it("don't throw error if module specs length is <= 1", () => {
|
||||
const nativeModuleName = 'moduleName';
|
||||
const moduleSpecs = [];
|
||||
const parserType = 'Flow';
|
||||
|
||||
expect(() => {
|
||||
throwIfMoreThanOneModuleInterfaceParserError(
|
||||
nativeModuleName,
|
||||
moduleSpecs,
|
||||
parserType,
|
||||
);
|
||||
}).not.toThrow(MoreThanOneModuleInterfaceParserError);
|
||||
});
|
||||
it('throw error if module specs is > 1 ', () => {
|
||||
const nativeModuleName = 'moduleName';
|
||||
const moduleSpecs = [{id: {name: 'Name-1'}}, {id: {name: 'Name-2'}}];
|
||||
const parserType = 'TypeScript';
|
||||
|
||||
expect(() => {
|
||||
throwIfMoreThanOneModuleInterfaceParserError(
|
||||
nativeModuleName,
|
||||
moduleSpecs,
|
||||
parserType,
|
||||
);
|
||||
}).toThrow(MoreThanOneModuleInterfaceParserError);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -23,6 +23,7 @@ const {
|
||||
UnsupportedObjectPropertyValueTypeAnnotationParserError,
|
||||
UntypedModuleRegistryCallParserError,
|
||||
UnsupportedModulePropertyParserError,
|
||||
MoreThanOneModuleInterfaceParserError,
|
||||
} = require('./errors.js');
|
||||
|
||||
function throwIfModuleInterfaceIsMisnamed(
|
||||
@@ -233,6 +234,21 @@ function throwIfPropertyValueTypeIsUnsupported(
|
||||
);
|
||||
}
|
||||
|
||||
function throwIfMoreThanOneModuleInterfaceParserError(
|
||||
nativeModuleName: string,
|
||||
moduleSpecs: $ReadOnlyArray<$FlowFixMe>,
|
||||
parserType: ParserType,
|
||||
) {
|
||||
if (moduleSpecs.length > 1) {
|
||||
throw new MoreThanOneModuleInterfaceParserError(
|
||||
nativeModuleName,
|
||||
moduleSpecs,
|
||||
moduleSpecs.map(node => node.id.name),
|
||||
parserType,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
throwIfModuleInterfaceIsMisnamed,
|
||||
throwIfUnsupportedFunctionReturnTypeAnnotationParserError,
|
||||
@@ -244,4 +260,5 @@ module.exports = {
|
||||
throwIfIncorrectModuleRegistryCallTypeParameterParserError,
|
||||
throwIfUntypedModule,
|
||||
throwIfModuleTypeIsUnsupported,
|
||||
throwIfMoreThanOneModuleInterfaceParserError,
|
||||
};
|
||||
|
||||
@@ -53,8 +53,8 @@ const {
|
||||
emitStringish,
|
||||
typeAliasResolution,
|
||||
} = require('../../parsers-primitives');
|
||||
|
||||
const {
|
||||
MoreThanOneModuleInterfaceParserError,
|
||||
UnnamedFunctionParamParserError,
|
||||
UnsupportedArrayElementTypeAnnotationParserError,
|
||||
UnsupportedGenericParserError,
|
||||
@@ -65,6 +65,7 @@ const {
|
||||
UnsupportedObjectPropertyTypeAnnotationParserError,
|
||||
IncorrectModuleRegistryCallArgumentTypeParserError,
|
||||
} = require('../../errors.js');
|
||||
|
||||
const {verifyPlatforms} = require('../../utils');
|
||||
|
||||
const {
|
||||
@@ -77,6 +78,7 @@ const {
|
||||
throwIfIncorrectModuleRegistryCallTypeParameterParserError,
|
||||
throwIfUntypedModule,
|
||||
throwIfModuleTypeIsUnsupported,
|
||||
throwIfMoreThanOneModuleInterfaceParserError,
|
||||
} = require('../../error-utils');
|
||||
|
||||
const language = 'Flow';
|
||||
@@ -586,14 +588,11 @@ function buildModuleSchema(
|
||||
language,
|
||||
);
|
||||
|
||||
if (moduleSpecs.length > 1) {
|
||||
throw new MoreThanOneModuleInterfaceParserError(
|
||||
hasteModuleName,
|
||||
moduleSpecs,
|
||||
moduleSpecs.map(node => node.id.name),
|
||||
language,
|
||||
);
|
||||
}
|
||||
throwIfMoreThanOneModuleInterfaceParserError(
|
||||
hasteModuleName,
|
||||
moduleSpecs,
|
||||
language,
|
||||
);
|
||||
|
||||
const [moduleSpec] = moduleSpecs;
|
||||
|
||||
|
||||
@@ -54,7 +54,6 @@ const {
|
||||
typeAliasResolution,
|
||||
} = require('../../parsers-primitives');
|
||||
const {
|
||||
MoreThanOneModuleInterfaceParserError,
|
||||
UnnamedFunctionParamParserError,
|
||||
UnsupportedArrayElementTypeAnnotationParserError,
|
||||
UnsupportedGenericParserError,
|
||||
@@ -65,6 +64,7 @@ const {
|
||||
UnsupportedObjectPropertyTypeAnnotationParserError,
|
||||
IncorrectModuleRegistryCallArgumentTypeParserError,
|
||||
} = require('../../errors.js');
|
||||
|
||||
const {verifyPlatforms} = require('../../utils');
|
||||
|
||||
const {
|
||||
@@ -75,6 +75,7 @@ const {
|
||||
throwIfModuleInterfaceNotFound,
|
||||
throwIfModuleInterfaceIsMisnamed,
|
||||
throwIfWrongNumberOfCallExpressionArgs,
|
||||
throwIfMoreThanOneModuleInterfaceParserError,
|
||||
throwIfIncorrectModuleRegistryCallTypeParameterParserError,
|
||||
throwIfUnsupportedFunctionReturnTypeAnnotationParserError,
|
||||
} = require('../../error-utils');
|
||||
@@ -600,14 +601,11 @@ function buildModuleSchema(
|
||||
language,
|
||||
);
|
||||
|
||||
if (moduleSpecs.length > 1) {
|
||||
throw new MoreThanOneModuleInterfaceParserError(
|
||||
hasteModuleName,
|
||||
moduleSpecs,
|
||||
moduleSpecs.map(node => node.id.name),
|
||||
language,
|
||||
);
|
||||
}
|
||||
throwIfMoreThanOneModuleInterfaceParserError(
|
||||
hasteModuleName,
|
||||
moduleSpecs,
|
||||
language,
|
||||
);
|
||||
|
||||
const [moduleSpec] = moduleSpecs;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user