diff --git a/packages/cli/src/commands/config/schema.ts b/packages/cli/src/commands/config/schema.ts index 6badec6b6d..17525ec48b 100644 --- a/packages/cli/src/commands/config/schema.ts +++ b/packages/cli/src/commands/config/schema.ts @@ -17,7 +17,10 @@ import { Command } from 'commander'; import { stringify as stringifyYaml } from 'yaml'; import { loadCliConfig } from '../../lib/config'; -import { mergeConfigSchemas } from '@backstage/config-loader'; +import { + mergeConfigSchemas, + ConfigSchemaPackageEntry, +} from '@backstage/config-loader'; export default async (cmd: Command) => { const { schema } = await loadCliConfig({ @@ -26,7 +29,9 @@ export default async (cmd: Command) => { mockEnv: true, }); - const { schema: data } = mergeConfigSchemas(schema.serialize().schemas); + const { schema: data } = mergeConfigSchemas( + schema.serialize().schemas as ConfigSchemaPackageEntry[], + ); if (cmd.format === 'json') { process.stdout.write(`${JSON.stringify(data, null, 2)}\n`); diff --git a/packages/config-loader/src/index.ts b/packages/config-loader/src/index.ts index d9e5ae1350..4878e9d098 100644 --- a/packages/config-loader/src/index.ts +++ b/packages/config-loader/src/index.ts @@ -15,6 +15,10 @@ */ export { readEnvConfig, loadConfigSchema, mergeConfigSchemas } from './lib'; -export type { ConfigSchema, ConfigVisibility } from './lib'; +export type { + ConfigSchema, + ConfigSchemaPackageEntry, + ConfigVisibility, +} from './lib'; export { loadConfig } from './loader'; export type { LoadConfigOptions } from './loader'; diff --git a/packages/config-loader/src/lib/schema/compile.ts b/packages/config-loader/src/lib/schema/compile.ts index 0cbd075893..0ac1ea8045 100644 --- a/packages/config-loader/src/lib/schema/compile.ts +++ b/packages/config-loader/src/lib/schema/compile.ts @@ -72,7 +72,11 @@ export function compileConfigSchemas( */ export function mergeConfigSchemas( schemas: ConfigSchemaPackageEntry[], -): { schema: JSONSchema; parser: Ajv } { +): { + schema: JSONSchema; + parser: Ajv; + visibilityByPath: Map; +} { // The ajv instance below is stateful and doesn't really allow for additional // output during validation. We work around this by having this extra piece // of state that we reset before each validation. diff --git a/packages/config-loader/src/lib/schema/index.ts b/packages/config-loader/src/lib/schema/index.ts index 00bb5c7d10..dc2e471a28 100644 --- a/packages/config-loader/src/lib/schema/index.ts +++ b/packages/config-loader/src/lib/schema/index.ts @@ -16,4 +16,8 @@ export { mergeConfigSchemas } from './compile'; export { loadConfigSchema } from './load'; -export type { ConfigSchema, ConfigVisibility } from './types'; +export type { + ConfigSchema, + ConfigSchemaPackageEntry, + ConfigVisibility, +} from './types';