mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Add minimum necessary .d.ts files to react-native-codegen (2) (#36397)
Summary: - Add .d.ts files for generators - export each generators because `react-native-windows` need its own selection of generators. ## Changelog [GENERAL] [CHANGED] - Add minimum necessary .d.ts files to react-native-codegen (2) Pull Request resolved: https://github.com/facebook/react-native/pull/36397 Test Plan: `npm run build` in `packages/react-native-codegen` and see all .d.ts files appear in `lib`. Checked .d.ts file in typescript playground. Reviewed By: rshest Differential Revision: D43941811 Pulled By: cipolleschi fbshipit-source-id: 28f5bd56f27531ecf25223620a580358018b779d
This commit is contained in:
committed by
Facebook GitHub Bot
parent
0a3c55562b
commit
ac5aec3f5c
@@ -0,0 +1,98 @@
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
|
||||
import type { SchemaType } from '../CodegenSchema';
|
||||
|
||||
export type FilesOutput = Map<string, string>;
|
||||
export type LibraryGeneratorFunction = (libraryName: string, schema: SchemaType, packageName: string | undefined, assumeNonnull: boolean) => FilesOutput;
|
||||
export type SchemaGeneratorFunction = (schemas: { [key: string]: SchemaType }) => FilesOutput;
|
||||
export type ViewGeneratorFunction = (libraryName: string, schema: SchemaType) => FilesOutput;
|
||||
|
||||
type LibraryGeneratorNames =
|
||||
| 'generateComponentDescriptorH'
|
||||
| 'generateComponentHObjCpp'
|
||||
| 'generateEventEmitterCpp'
|
||||
| 'generateEventEmitterH'
|
||||
| 'generatePropsCpp'
|
||||
| 'generatePropsH'
|
||||
| 'generateStateCpp'
|
||||
| 'generateStateH'
|
||||
| 'generateModuleH'
|
||||
| 'generateModuleCpp'
|
||||
| 'generateModuleObjCpp'
|
||||
| 'generateModuleJavaSpec'
|
||||
| 'generateModuleJniCpp'
|
||||
| 'generateModuleJniH'
|
||||
| 'generatePropsJavaInterface'
|
||||
| 'generatePropsJavaDelegate'
|
||||
| 'generateTests'
|
||||
| 'generateShadowNodeCpp'
|
||||
| 'generateShadowNodeH'
|
||||
;
|
||||
|
||||
type SchemaGeneratorNames =
|
||||
| 'generateThirdPartyFabricComponentsProviderObjCpp'
|
||||
| 'generateThirdPartyFabricComponentsProviderH'
|
||||
;
|
||||
|
||||
type ViewGeneratorNames =
|
||||
| 'generateViewConfigJs'
|
||||
;
|
||||
|
||||
export type AllGenerators =
|
||||
& { readonly [key in LibraryGeneratorNames]: LibraryGeneratorFunction; }
|
||||
& { readonly [key in SchemaGeneratorNames]: SchemaGeneratorFunction; }
|
||||
& { readonly [key in ViewGeneratorNames]: ViewGeneratorFunction; }
|
||||
;
|
||||
|
||||
export type LibraryGenerators =
|
||||
| 'componentsAndroid'
|
||||
| 'componentsIOS'
|
||||
| 'descriptors'
|
||||
| 'events'
|
||||
| 'props'
|
||||
| 'states'
|
||||
| 'tests'
|
||||
| 'shadow-nodes'
|
||||
| 'modulesAndroid'
|
||||
| 'modulesCxx'
|
||||
| 'modulesIOS'
|
||||
;
|
||||
|
||||
export type SchemaGenerators =
|
||||
| 'providerIOS'
|
||||
;
|
||||
|
||||
export interface LibraryOptions {
|
||||
libraryName: string;
|
||||
schema: SchemaType;
|
||||
outputDirectory: string;
|
||||
packageName?: string | undefined;
|
||||
assumeNonnull: boolean;
|
||||
}
|
||||
|
||||
export interface LibraryConfig {
|
||||
generators: LibraryGenerators[];
|
||||
test?: boolean | undefined;
|
||||
}
|
||||
|
||||
export interface SchemasOptions {
|
||||
schemas: { [key: string]: SchemaType };
|
||||
outputDirectory: string;
|
||||
}
|
||||
|
||||
export interface SchemasConfig {
|
||||
generators: SchemaGenerators[];
|
||||
test?: boolean | undefined;
|
||||
}
|
||||
|
||||
export declare const allGenerators: AllGenerators;
|
||||
export declare const libraryGenerators: { readonly [key in LibraryGenerators]: LibraryGeneratorFunction };
|
||||
export declare const schemaGenerators: { readonly [key in SchemaGenerators]: SchemaGeneratorFunction };
|
||||
export declare function generate(options: LibraryOptions, config: LibraryConfig): boolean;
|
||||
export declare function generateFromSchemas(options: SchemasOptions, config: SchemasConfig): boolean;
|
||||
export declare function generateViewConfig(options: LibraryOptions): string;
|
||||
+35
-4
@@ -29,8 +29,8 @@ const generateModuleH = require('./modules/GenerateModuleH.js');
|
||||
const generateModuleCpp = require('./modules/GenerateModuleCpp.js');
|
||||
const generateModuleObjCpp = require('./modules/GenerateModuleObjCpp');
|
||||
const generateModuleJavaSpec = require('./modules/GenerateModuleJavaSpec.js');
|
||||
const GenerateModuleJniCpp = require('./modules/GenerateModuleJniCpp.js');
|
||||
const GenerateModuleJniH = require('./modules/GenerateModuleJniH.js');
|
||||
const generateModuleJniCpp = require('./modules/GenerateModuleJniCpp.js');
|
||||
const generateModuleJniH = require('./modules/GenerateModuleJniH.js');
|
||||
const generatePropsJavaInterface = require('./components/GeneratePropsJavaInterface.js');
|
||||
const generatePropsJavaDelegate = require('./components/GeneratePropsJavaDelegate.js');
|
||||
const generateTests = require('./components/GenerateTests.js');
|
||||
@@ -42,6 +42,33 @@ const generateViewConfigJs = require('./components/GenerateViewConfigJs.js');
|
||||
const path = require('path');
|
||||
const schemaValidator = require('../SchemaValidator.js');
|
||||
|
||||
const ALL_GENERATORS = {
|
||||
generateComponentDescriptorH: generateComponentDescriptorH.generate,
|
||||
generateComponentHObjCpp: generateComponentHObjCpp.generate,
|
||||
generateEventEmitterCpp: generateEventEmitterCpp.generate,
|
||||
generateEventEmitterH: generateEventEmitterH.generate,
|
||||
generatePropsCpp: generatePropsCpp.generate,
|
||||
generatePropsH: generatePropsH.generate,
|
||||
generateStateCpp: generateStateCpp.generate,
|
||||
generateStateH: generateStateH.generate,
|
||||
generateModuleH: generateModuleH.generate,
|
||||
generateModuleCpp: generateModuleCpp.generate,
|
||||
generateModuleObjCpp: generateModuleObjCpp.generate,
|
||||
generateModuleJavaSpec: generateModuleJavaSpec.generate,
|
||||
generateModuleJniCpp: generateModuleJniCpp.generate,
|
||||
generateModuleJniH: generateModuleJniH.generate,
|
||||
generatePropsJavaInterface: generatePropsJavaInterface.generate,
|
||||
generatePropsJavaDelegate: generatePropsJavaDelegate.generate,
|
||||
generateTests: generateTests.generate,
|
||||
generateShadowNodeCpp: generateShadowNodeCpp.generate,
|
||||
generateShadowNodeH: generateShadowNodeH.generate,
|
||||
generateThirdPartyFabricComponentsProviderObjCpp:
|
||||
generateThirdPartyFabricComponentsProviderObjCpp.generate,
|
||||
generateThirdPartyFabricComponentsProviderH:
|
||||
generateThirdPartyFabricComponentsProviderH.generate,
|
||||
generateViewConfigJs: generateViewConfigJs.generate,
|
||||
};
|
||||
|
||||
import type {SchemaType} from '../CodegenSchema';
|
||||
|
||||
type LibraryOptions = $ReadOnly<{
|
||||
@@ -122,8 +149,8 @@ const LIBRARY_GENERATORS = {
|
||||
generateShadowNodeH.generate,
|
||||
],
|
||||
modulesAndroid: [
|
||||
GenerateModuleJniCpp.generate,
|
||||
GenerateModuleJniH.generate,
|
||||
generateModuleJniCpp.generate,
|
||||
generateModuleJniH.generate,
|
||||
generateModuleJavaSpec.generate,
|
||||
],
|
||||
modulesCxx: [generateModuleCpp.generate, generateModuleH.generate],
|
||||
@@ -194,6 +221,10 @@ function checkOrWriteFiles(
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
allGenerators: ALL_GENERATORS,
|
||||
libraryGenerators: LIBRARY_GENERATORS,
|
||||
schemaGenerators: SCHEMAS_GENERATORS,
|
||||
|
||||
generate(
|
||||
{
|
||||
libraryName,
|
||||
|
||||
Reference in New Issue
Block a user