diff --git a/src/dev/plugin_discovery/get_plugin_deps.ts b/src/dev/plugin_discovery/get_plugin_deps.ts index 5aec9387c5a15..498feefd97094 100644 --- a/src/dev/plugin_discovery/get_plugin_deps.ts +++ b/src/dev/plugin_discovery/get_plugin_deps.ts @@ -17,11 +17,11 @@ * under the License. */ import { KibanaPlatformPlugin } from '@kbn/dev-utils'; -import { SearchOptions, findPlugins } from './find_plugins'; -type AllOptions = SearchOptions & { +interface AllOptions { id: string; -}; + pluginMap: Map; +} interface CircularRefsError { from: string; @@ -37,8 +37,8 @@ interface State { errors: Map; } -function traverse(pluginTree: Map, state: State, id: string) { - const plugin = pluginTree.get(id); +function traverse(pluginMap: Map, state: State, id: string) { + const plugin = pluginMap.get(id); if (plugin === undefined) { throw new Error(`Unknown plugin id: ${id}`); } @@ -69,27 +69,21 @@ function traverse(pluginTree: Map, state: State, i ...plugin.manifest.optionalPlugins, ...plugin.manifest.requiredBundles, ]).forEach((depId) => { - state.deps.add(pluginTree.get(depId)!); - traverse(pluginTree, state, depId); + state.deps.add(pluginMap.get(depId)!); + traverse(pluginMap, state, depId); }); state.stack.pop(); } -export function getPluginDeps({ - oss = false, - examples = false, - extraPluginScanDirs = [], - id, -}: AllOptions): State { - const pluginTree = findPlugins({ oss, examples, extraPluginScanDirs }); +export function getPluginDeps({ pluginMap, id }: AllOptions): State { const state: State = { deps: new Set(), errors: new Map(), stack: [], }; - traverse(pluginTree, state, id); + traverse(pluginMap, state, id); return state; } diff --git a/src/dev/run_find_plugin_circular_deps.ts b/src/dev/run_find_plugin_circular_deps.ts index 9f4f43bb17726..501e2c4fed048 100644 --- a/src/dev/run_find_plugin_circular_deps.ts +++ b/src/dev/run_find_plugin_circular_deps.ts @@ -29,20 +29,19 @@ run( async ({ flags, log }) => { const { examples = false, extraPluginScanDirs = [] } = flags as AllOptions; - const plugins = findPlugins({ + const pluginMap = findPlugins({ oss: false, examples, extraPluginScanDirs, }); const allErrors = new Map(); - for (const pluginId of plugins.keys()) { + for (const pluginId of pluginMap.keys()) { const { errors } = getPluginDeps({ - oss: false, - examples, - extraPluginScanDirs, + pluginMap, id: pluginId, }); + for (const [errorId, error] of errors) { if (!allErrors.has(errorId)) { allErrors.set(errorId, error); diff --git a/src/dev/run_find_plugins_without_ts_refs.ts b/src/dev/run_find_plugins_without_ts_refs.ts index c1ccdca3fa5a5..ad63884671e24 100644 --- a/src/dev/run_find_plugins_without_ts_refs.ts +++ b/src/dev/run_find_plugins_without_ts_refs.ts @@ -21,7 +21,7 @@ import Path from 'path'; import Fs from 'fs'; import { get } from 'lodash'; import { run } from '@kbn/dev-utils'; -import { getPluginDeps } from './plugin_discovery'; +import { getPluginDeps, findPlugins } from './plugin_discovery'; interface AllOptions { id?: string; @@ -37,10 +37,14 @@ run( throw new Error('Plugin id required'); } - const result = getPluginDeps({ + const pluginMap = findPlugins({ oss: false, examples, extraPluginScanDirs, + }); + + const result = getPluginDeps({ + pluginMap, id, });