diff --git a/packages/cli-types/src/index.ts b/packages/cli-types/src/index.ts index 15eca2521..89dc7f0da 100644 --- a/packages/cli-types/src/index.ts +++ b/packages/cli-types/src/index.ts @@ -74,6 +74,22 @@ interface PlatformConfig< }; } +export interface Dependency { + name: string; + root: string; + platforms: { + android?: AndroidDependencyConfig | null; + ios?: IOSDependencyConfig | null; + [key: string]: any; + }; + assets: string[]; + hooks: { + prelink?: string; + postlink?: string; + }; + params: InquirerPrompt[]; +} + /** * @property root - Root where the configuration has been resolved from * @property reactNativePath - Path to React Native source @@ -93,23 +109,7 @@ export interface Config { [key: string]: any; }; assets: string[]; - dependencies: { - [key: string]: { - name: string; - root: string; - platforms: { - android?: AndroidDependencyConfig | null; - ios?: IOSDependencyConfig | null; - [key: string]: any; - }; - assets: string[]; - hooks: { - prelink?: string; - postlink?: string; - }; - params: InquirerPrompt[]; - }; - }; + dependencies: {[key: string]: Dependency}; platforms: { android: PlatformConfig< AndroidProjectConfig, diff --git a/packages/cli/src/commands/config/config.js b/packages/cli/src/commands/config/config.ts similarity index 75% rename from packages/cli/src/commands/config/config.js rename to packages/cli/src/commands/config/config.ts index eee11c668..e841bcda0 100644 --- a/packages/cli/src/commands/config/config.js +++ b/packages/cli/src/commands/config/config.ts @@ -1,9 +1,6 @@ -/** - * @flow - */ -import {type ConfigT} from 'types'; +import {Config, Dependency} from '@react-native-community/cli-types'; -function isValidRNDependency(config) { +function isValidRNDependency(config: Dependency) { return ( Object.keys(config.platforms).filter(key => Boolean(config.platforms[key])) .length !== 0 || @@ -13,7 +10,7 @@ function isValidRNDependency(config) { ); } -function filterConfig(config) { +function filterConfig(config: Config) { const filtered = {...config}; Object.keys(filtered.dependencies).forEach(item => { if (!isValidRNDependency(filtered.dependencies[item])) { @@ -26,7 +23,7 @@ function filterConfig(config) { export default { name: 'config', description: 'Print CLI configuration', - func: async (argv: string[], ctx: ConfigT) => { + func: async (_argv: string[], ctx: Config) => { console.log(JSON.stringify(filterConfig(ctx), null, 2)); }, }; diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index 7601bc17e..8fedc63f0 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -14,8 +14,8 @@ import install from './install/install'; import uninstall from './install/uninstall'; import upgrade from './upgrade/upgrade'; import info from './info/info'; +import config from './config/config'; // @ts-ignore - JS file -import config from './config/config'; // eslint-disable-line import/namespace, import/default import init from './init'; // @ts-ignore - JS file import doctor from './doctor';