diff --git a/packages/react-native-codegen/src/cli/combine/combine-schemas-cli.js b/packages/react-native-codegen/src/cli/combine/combine-schemas-cli.js index ce8334b199f2..ea9828b3d634 100644 --- a/packages/react-native-codegen/src/cli/combine/combine-schemas-cli.js +++ b/packages/react-native-codegen/src/cli/combine/combine-schemas-cli.js @@ -32,12 +32,21 @@ const argv = yargs .option('s', { alias: 'schema-query', }) + .option('e', { + alias: 'exclude', + }) + .option('f', { + alias: 'filter', + }) .parseSync(); const platform: string = argv.platform.toLowerCase(); const output: string = argv.output; const schemaQuery: string = argv.s; +const exclude: string = argv.e; +const filter: ?Array = argv.filter; + if (!['ios', 'android'].includes(platform)) { throw new Error(`Invalid platform ${platform}`); } @@ -85,10 +94,14 @@ for (const file of schemaFiles) { } } - modules[specName] = module; - specNameToFile[specName] = file; + if (!(exclude && exclude === specName)) { + if (module.type === 'Component' && filter?.includes(specName)) { + continue; + } + modules[specName] = module; + specNameToFile[specName] = file; + } } } } - fs.writeFileSync(output, JSON.stringify({modules}));