/** * 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 * @flow strict */ 'use strict'; import type { EventTypeShape, NamedShape, CommandTypeAnnotation, PropTypeAnnotation, ExtendsPropsShape, SchemaType, OptionsShape, } from '../CodegenSchema.js'; export type ComponentSchemaBuilderConfig = $ReadOnly<{ filename: string, componentName: string, extendsProps: $ReadOnlyArray, events: $ReadOnlyArray, props: $ReadOnlyArray>, commands: $ReadOnlyArray>, options?: ?OptionsShape, }>; function wrapComponentSchema({ filename, componentName, extendsProps, events, props, options, commands, }: ComponentSchemaBuilderConfig): SchemaType { return { modules: { [filename]: { type: 'Component', components: { [componentName]: { ...(options || {}), extendsProps, events, props, commands, }, }, }, }, }; } module.exports = { wrapComponentSchema, };