UNPKG

@react-native/codegen

Version:
47 lines (43 loc) 1.24 kB
/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * * @format */ 'use strict'; const { findComponentConfig, getCommandProperties, getOptions, } = require('../../parsers-commons'); const {getCommands} = require('./commands'); const {getEvents} = require('./events'); // $FlowFixMe[signature-verification-failure] there's no flowtype for AST function buildComponentSchema(ast, parser) { const {componentName, propsTypeName, optionsExpression} = findComponentConfig( ast, parser, ); const types = parser.getTypes(ast); const propProperties = parser.getProperties(propsTypeName, types); const commandProperties = getCommandProperties(ast, parser); const {extendsProps, props} = parser.getProps(propProperties, types); const options = getOptions(optionsExpression); const events = getEvents(propProperties, types, parser); const commands = getCommands(commandProperties, types, parser); return { filename: componentName, componentName, options, extendsProps, events, props, commands, }; } module.exports = { buildComponentSchema, };