mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: This diff allows for parsing more flexible AST format. Reusing logic used for methods, I add similar support for props and commands in components. Now it's possible to define separated type for props and commands in another part of the file. Also, extracted this method to another file for reusing purposes. Added tests. Reviewed By: rickhanlonii Differential Revision: D16221445 fbshipit-source-id: 21553bf5ade66588dd7dc0320d25333260b0ada9
29 lines
693 B
JavaScript
29 lines
693 B
JavaScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @flow strict-local
|
|
* @format
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
// $FlowFixMe there's no flowtype for ASTs
|
|
export type TypeMap = $ReadOnly<{|[name: string]: Object|}>;
|
|
|
|
// $FlowFixMe there's no flowtype for ASTs
|
|
export type ASTNode = Object;
|
|
|
|
function getValueFromTypes(value: ASTNode, types: TypeMap): ASTNode {
|
|
if (value.type === 'GenericTypeAnnotation' && types[value.id.name]) {
|
|
return getValueFromTypes(types[value.id.name].right, types);
|
|
}
|
|
return value;
|
|
}
|
|
|
|
module.exports = {
|
|
getValueFromTypes,
|
|
};
|