make .withOverrides have a simplified result type
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
---
|
||||
'@backstage/plugin-catalog-graph': patch
|
||||
'@backstage/plugin-api-docs': patch
|
||||
'@backstage/plugin-techdocs': patch
|
||||
'@backstage/plugin-catalog': patch
|
||||
'@backstage/plugin-search': patch
|
||||
'@backstage/plugin-app': patch
|
||||
'@backstage/plugin-org': patch
|
||||
---
|
||||
|
||||
Minor extension type updates after frontend API bump
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'@backstage/frontend-plugin-api': patch
|
||||
---
|
||||
|
||||
Made the return type of `.withOverrides` to be simplified.
|
||||
@@ -1006,10 +1006,10 @@ export interface ExtensionBlueprint<
|
||||
},
|
||||
UFactoryOutput extends ExtensionDataValue<any, any>,
|
||||
UNewOutput extends ExtensionDataRef,
|
||||
UParentInputs extends ExtensionDataRef,
|
||||
TExtraInputs extends {
|
||||
[inputName in string]: ExtensionInput;
|
||||
},
|
||||
UParentInputs extends ExtensionDataRef,
|
||||
} = {},
|
||||
>(args: {
|
||||
name?: TName;
|
||||
attachTo?: ExtensionDefinitionAttachTo<UParentInputs> &
|
||||
@@ -1063,26 +1063,30 @@ export interface ExtensionBlueprint<
|
||||
UFactoryOutput
|
||||
>;
|
||||
}): OverridableExtensionDefinition<{
|
||||
config: (string extends keyof TExtensionConfigSchema
|
||||
? {}
|
||||
: {
|
||||
[key in keyof TExtensionConfigSchema]: z.infer<
|
||||
ReturnType<TExtensionConfigSchema[key]>
|
||||
>;
|
||||
}) &
|
||||
T['config'];
|
||||
configInput: (string extends keyof TExtensionConfigSchema
|
||||
? {}
|
||||
: z.input<
|
||||
z.ZodObject<{
|
||||
[key in keyof TExtensionConfigSchema]: ReturnType<
|
||||
TExtensionConfigSchema[key]
|
||||
config: Expand<
|
||||
(string extends keyof TExtensionConfigSchema
|
||||
? {}
|
||||
: {
|
||||
[key in keyof TExtensionConfigSchema]: z.infer<
|
||||
ReturnType<TExtensionConfigSchema[key]>
|
||||
>;
|
||||
}>
|
||||
>) &
|
||||
T['configInput'];
|
||||
}) &
|
||||
T['config']
|
||||
>;
|
||||
configInput: Expand<
|
||||
(string extends keyof TExtensionConfigSchema
|
||||
? {}
|
||||
: z.input<
|
||||
z.ZodObject<{
|
||||
[key in keyof TExtensionConfigSchema]: ReturnType<
|
||||
TExtensionConfigSchema[key]
|
||||
>;
|
||||
}>
|
||||
>) &
|
||||
T['configInput']
|
||||
>;
|
||||
output: ExtensionDataRef extends UNewOutput ? T['output'] : UNewOutput;
|
||||
inputs: T['inputs'] & TExtraInputs;
|
||||
inputs: Expand<T['inputs'] & TExtraInputs>;
|
||||
kind: T['kind'];
|
||||
name: string | undefined extends TName ? undefined : TName;
|
||||
params: T['params'];
|
||||
|
||||
@@ -249,8 +249,8 @@ export interface ExtensionBlueprint<
|
||||
},
|
||||
UFactoryOutput extends ExtensionDataValue<any, any>,
|
||||
UNewOutput extends ExtensionDataRef,
|
||||
TExtraInputs extends { [inputName in string]: ExtensionInput },
|
||||
UParentInputs extends ExtensionDataRef,
|
||||
TExtraInputs extends { [inputName in string]: ExtensionInput } = {},
|
||||
>(args: {
|
||||
name?: TName;
|
||||
attachTo?: ExtensionDefinitionAttachTo<UParentInputs> &
|
||||
@@ -304,26 +304,30 @@ export interface ExtensionBlueprint<
|
||||
UFactoryOutput
|
||||
>;
|
||||
}): OverridableExtensionDefinition<{
|
||||
config: (string extends keyof TExtensionConfigSchema
|
||||
? {}
|
||||
: {
|
||||
[key in keyof TExtensionConfigSchema]: z.infer<
|
||||
ReturnType<TExtensionConfigSchema[key]>
|
||||
>;
|
||||
}) &
|
||||
T['config'];
|
||||
configInput: (string extends keyof TExtensionConfigSchema
|
||||
? {}
|
||||
: z.input<
|
||||
z.ZodObject<{
|
||||
[key in keyof TExtensionConfigSchema]: ReturnType<
|
||||
TExtensionConfigSchema[key]
|
||||
config: Expand<
|
||||
(string extends keyof TExtensionConfigSchema
|
||||
? {}
|
||||
: {
|
||||
[key in keyof TExtensionConfigSchema]: z.infer<
|
||||
ReturnType<TExtensionConfigSchema[key]>
|
||||
>;
|
||||
}>
|
||||
>) &
|
||||
T['configInput'];
|
||||
}) &
|
||||
T['config']
|
||||
>;
|
||||
configInput: Expand<
|
||||
(string extends keyof TExtensionConfigSchema
|
||||
? {}
|
||||
: z.input<
|
||||
z.ZodObject<{
|
||||
[key in keyof TExtensionConfigSchema]: ReturnType<
|
||||
TExtensionConfigSchema[key]
|
||||
>;
|
||||
}>
|
||||
>) &
|
||||
T['configInput']
|
||||
>;
|
||||
output: ExtensionDataRef extends UNewOutput ? T['output'] : UNewOutput;
|
||||
inputs: T['inputs'] & TExtraInputs;
|
||||
inputs: Expand<T['inputs'] & TExtraInputs>;
|
||||
kind: T['kind'];
|
||||
name: string | undefined extends TName ? undefined : TName;
|
||||
params: T['params'];
|
||||
|
||||
@@ -12,7 +12,6 @@ import { EntityCardType } from '@backstage/plugin-catalog-react/alpha';
|
||||
import { EntityPredicate } from '@backstage/plugin-catalog-react/alpha';
|
||||
import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api';
|
||||
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
|
||||
import { ExtensionInput } from '@backstage/frontend-plugin-api';
|
||||
import { ExternalRouteRef } from '@backstage/core-plugin-api';
|
||||
import { IconComponent } from '@backstage/frontend-plugin-api';
|
||||
import { JSX as JSX_2 } from 'react';
|
||||
@@ -472,12 +471,10 @@ const _default: OverridableFrontendPlugin<
|
||||
'page:api-docs': OverridableExtensionDefinition<{
|
||||
config: {
|
||||
initiallySelectedFilter: 'all' | 'owned' | 'starred' | undefined;
|
||||
} & {
|
||||
path: string | undefined;
|
||||
};
|
||||
configInput: {
|
||||
initiallySelectedFilter?: 'all' | 'owned' | 'starred' | undefined;
|
||||
} & {
|
||||
path?: string | undefined;
|
||||
};
|
||||
output:
|
||||
@@ -490,15 +487,7 @@ const _default: OverridableFrontendPlugin<
|
||||
optional: true;
|
||||
}
|
||||
>;
|
||||
inputs: {
|
||||
[x: string]: ExtensionInput<
|
||||
ExtensionDataRef,
|
||||
{
|
||||
singleton: boolean;
|
||||
optional: boolean;
|
||||
}
|
||||
>;
|
||||
};
|
||||
inputs: {};
|
||||
kind: 'page';
|
||||
name: undefined;
|
||||
params: {
|
||||
|
||||
@@ -241,15 +241,7 @@ const appPlugin: OverridableFrontendPlugin<
|
||||
availableLanguages?: string[] | undefined;
|
||||
};
|
||||
output: ExtensionDataRef<AnyApiFactory, 'core.api.factory', {}>;
|
||||
inputs: {
|
||||
[x: string]: ExtensionInput<
|
||||
ExtensionDataRef,
|
||||
{
|
||||
singleton: boolean;
|
||||
optional: boolean;
|
||||
}
|
||||
>;
|
||||
};
|
||||
inputs: {};
|
||||
kind: 'api';
|
||||
name: 'app-language';
|
||||
params: <
|
||||
@@ -726,15 +718,7 @@ const appPlugin: OverridableFrontendPlugin<
|
||||
transientTimeoutMs?: number | undefined;
|
||||
};
|
||||
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
|
||||
inputs: {
|
||||
[x: string]: ExtensionInput<
|
||||
ExtensionDataRef,
|
||||
{
|
||||
singleton: boolean;
|
||||
optional: boolean;
|
||||
}
|
||||
>;
|
||||
};
|
||||
inputs: {};
|
||||
kind: 'app-root-element';
|
||||
name: 'alert-display';
|
||||
params: {
|
||||
@@ -745,15 +729,7 @@ const appPlugin: OverridableFrontendPlugin<
|
||||
config: {};
|
||||
configInput: {};
|
||||
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
|
||||
inputs: {
|
||||
[x: string]: ExtensionInput<
|
||||
ExtensionDataRef,
|
||||
{
|
||||
singleton: boolean;
|
||||
optional: boolean;
|
||||
}
|
||||
>;
|
||||
};
|
||||
inputs: {};
|
||||
kind: 'app-root-element';
|
||||
name: 'dialog-display';
|
||||
params: {
|
||||
|
||||
@@ -11,7 +11,6 @@ import { EntityCardType } from '@backstage/plugin-catalog-react/alpha';
|
||||
import { EntityPredicate } from '@backstage/plugin-catalog-react/alpha';
|
||||
import { ExtensionBlueprintParams } from '@backstage/frontend-plugin-api';
|
||||
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
|
||||
import { ExtensionInput } from '@backstage/frontend-plugin-api';
|
||||
import { ExternalRouteRef } from '@backstage/core-plugin-api';
|
||||
import { JSX as JSX_2 } from 'react';
|
||||
import { OverridableExtensionDefinition } from '@backstage/frontend-plugin-api';
|
||||
@@ -92,7 +91,6 @@ const _default: OverridableFrontendPlugin<
|
||||
curve: 'curveStepBefore' | 'curveMonotoneX' | undefined;
|
||||
title: string | undefined;
|
||||
height: number | undefined;
|
||||
} & {
|
||||
filter: EntityPredicate | undefined;
|
||||
type: 'content' | 'summary' | 'info' | undefined;
|
||||
};
|
||||
@@ -108,7 +106,6 @@ const _default: OverridableFrontendPlugin<
|
||||
mergeRelations?: boolean | undefined;
|
||||
relationPairs?: [string, string][] | undefined;
|
||||
unidirectional?: boolean | undefined;
|
||||
} & {
|
||||
filter?: EntityPredicate | undefined;
|
||||
type?: 'content' | 'summary' | 'info' | undefined;
|
||||
};
|
||||
@@ -135,15 +132,7 @@ const _default: OverridableFrontendPlugin<
|
||||
optional: true;
|
||||
}
|
||||
>;
|
||||
inputs: {
|
||||
[x: string]: ExtensionInput<
|
||||
ExtensionDataRef,
|
||||
{
|
||||
singleton: boolean;
|
||||
optional: boolean;
|
||||
}
|
||||
>;
|
||||
};
|
||||
inputs: {};
|
||||
kind: 'entity-card';
|
||||
name: 'relations';
|
||||
params: {
|
||||
@@ -167,7 +156,6 @@ const _default: OverridableFrontendPlugin<
|
||||
relations: string[] | undefined;
|
||||
relationPairs: [string, string][] | undefined;
|
||||
zoom: 'disabled' | 'enabled' | 'enable-on-click' | undefined;
|
||||
} & {
|
||||
path: string | undefined;
|
||||
};
|
||||
configInput: {
|
||||
@@ -184,7 +172,6 @@ const _default: OverridableFrontendPlugin<
|
||||
selectedRelations?: string[] | undefined;
|
||||
selectedKinds?: string[] | undefined;
|
||||
showFilters?: boolean | undefined;
|
||||
} & {
|
||||
path?: string | undefined;
|
||||
};
|
||||
output:
|
||||
@@ -197,15 +184,7 @@ const _default: OverridableFrontendPlugin<
|
||||
optional: true;
|
||||
}
|
||||
>;
|
||||
inputs: {
|
||||
[x: string]: ExtensionInput<
|
||||
ExtensionDataRef,
|
||||
{
|
||||
singleton: boolean;
|
||||
optional: boolean;
|
||||
}
|
||||
>;
|
||||
};
|
||||
inputs: {};
|
||||
kind: 'page';
|
||||
name: undefined;
|
||||
params: {
|
||||
|
||||
@@ -197,15 +197,7 @@ const _default: OverridableFrontendPlugin<
|
||||
initialFilter?: string | undefined;
|
||||
};
|
||||
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
|
||||
inputs: {
|
||||
[x: string]: ExtensionInput<
|
||||
ExtensionDataRef,
|
||||
{
|
||||
singleton: boolean;
|
||||
optional: boolean;
|
||||
}
|
||||
>;
|
||||
};
|
||||
inputs: {};
|
||||
kind: 'catalog-filter';
|
||||
name: 'kind';
|
||||
params: {
|
||||
@@ -231,15 +223,7 @@ const _default: OverridableFrontendPlugin<
|
||||
initialFilter?: 'all' | 'owned' | 'starred' | undefined;
|
||||
};
|
||||
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
|
||||
inputs: {
|
||||
[x: string]: ExtensionInput<
|
||||
ExtensionDataRef,
|
||||
{
|
||||
singleton: boolean;
|
||||
optional: boolean;
|
||||
}
|
||||
>;
|
||||
};
|
||||
inputs: {};
|
||||
kind: 'catalog-filter';
|
||||
name: 'list';
|
||||
params: {
|
||||
@@ -254,15 +238,7 @@ const _default: OverridableFrontendPlugin<
|
||||
mode?: 'all' | 'owners-only' | undefined;
|
||||
};
|
||||
output: ExtensionDataRef<JSX_2.Element, 'core.reactElement', {}>;
|
||||
inputs: {
|
||||
[x: string]: ExtensionInput<
|
||||
ExtensionDataRef,
|
||||
{
|
||||
singleton: boolean;
|
||||
optional: boolean;
|
||||
}
|
||||
>;
|
||||
};
|
||||
inputs: {};
|
||||
kind: 'catalog-filter';
|
||||
name: 'mode';
|
||||
params: {
|
||||
@@ -995,7 +971,6 @@ const _default: OverridableFrontendPlugin<
|
||||
offset?: number | undefined;
|
||||
limit?: number | undefined;
|
||||
};
|
||||
} & {
|
||||
path: string | undefined;
|
||||
};
|
||||
configInput: {
|
||||
@@ -1007,7 +982,6 @@ const _default: OverridableFrontendPlugin<
|
||||
limit?: number | undefined;
|
||||
}
|
||||
| undefined;
|
||||
} & {
|
||||
path?: string | undefined;
|
||||
};
|
||||
output:
|
||||
@@ -1048,7 +1022,6 @@ const _default: OverridableFrontendPlugin<
|
||||
}
|
||||
>[]
|
||||
| undefined;
|
||||
} & {
|
||||
path: string | undefined;
|
||||
};
|
||||
configInput: {
|
||||
@@ -1060,7 +1033,6 @@ const _default: OverridableFrontendPlugin<
|
||||
}
|
||||
>[]
|
||||
| undefined;
|
||||
} & {
|
||||
path?: string | undefined;
|
||||
};
|
||||
output:
|
||||
|
||||
@@ -7,7 +7,6 @@ import { Entity } from '@backstage/catalog-model';
|
||||
import { EntityCardType } from '@backstage/plugin-catalog-react/alpha';
|
||||
import { EntityPredicate } from '@backstage/plugin-catalog-react/alpha';
|
||||
import { ExtensionDataRef } from '@backstage/frontend-plugin-api';
|
||||
import { ExtensionInput } from '@backstage/frontend-plugin-api';
|
||||
import { ExternalRouteRef } from '@backstage/core-plugin-api';
|
||||
import { JSX as JSX_2 } from 'react';
|
||||
import { OverridableExtensionDefinition } from '@backstage/frontend-plugin-api';
|
||||
@@ -66,14 +65,12 @@ const _default: OverridableFrontendPlugin<
|
||||
config: {
|
||||
initialRelationAggregation: 'direct' | 'aggregated' | undefined;
|
||||
showAggregateMembersToggle: boolean | undefined;
|
||||
} & {
|
||||
filter: EntityPredicate | undefined;
|
||||
type: 'content' | 'summary' | 'info' | undefined;
|
||||
};
|
||||
configInput: {
|
||||
showAggregateMembersToggle?: boolean | undefined;
|
||||
initialRelationAggregation?: 'direct' | 'aggregated' | undefined;
|
||||
} & {
|
||||
filter?: EntityPredicate | undefined;
|
||||
type?: 'content' | 'summary' | 'info' | undefined;
|
||||
};
|
||||
@@ -100,15 +97,7 @@ const _default: OverridableFrontendPlugin<
|
||||
optional: true;
|
||||
}
|
||||
>;
|
||||
inputs: {
|
||||
[x: string]: ExtensionInput<
|
||||
ExtensionDataRef,
|
||||
{
|
||||
singleton: boolean;
|
||||
optional: boolean;
|
||||
}
|
||||
>;
|
||||
};
|
||||
inputs: {};
|
||||
kind: 'entity-card';
|
||||
name: 'members-list';
|
||||
params: {
|
||||
@@ -121,14 +110,12 @@ const _default: OverridableFrontendPlugin<
|
||||
config: {
|
||||
initialRelationAggregation: 'direct' | 'aggregated' | undefined;
|
||||
showAggregateMembersToggle: boolean | undefined;
|
||||
} & {
|
||||
filter: EntityPredicate | undefined;
|
||||
type: 'content' | 'summary' | 'info' | undefined;
|
||||
};
|
||||
configInput: {
|
||||
showAggregateMembersToggle?: boolean | undefined;
|
||||
initialRelationAggregation?: 'direct' | 'aggregated' | undefined;
|
||||
} & {
|
||||
filter?: EntityPredicate | undefined;
|
||||
type?: 'content' | 'summary' | 'info' | undefined;
|
||||
};
|
||||
@@ -155,15 +142,7 @@ const _default: OverridableFrontendPlugin<
|
||||
optional: true;
|
||||
}
|
||||
>;
|
||||
inputs: {
|
||||
[x: string]: ExtensionInput<
|
||||
ExtensionDataRef,
|
||||
{
|
||||
singleton: boolean;
|
||||
optional: boolean;
|
||||
}
|
||||
>;
|
||||
};
|
||||
inputs: {};
|
||||
kind: 'entity-card';
|
||||
name: 'ownership';
|
||||
params: {
|
||||
@@ -176,14 +155,12 @@ const _default: OverridableFrontendPlugin<
|
||||
config: {
|
||||
maxRelations: number | undefined;
|
||||
hideIcons: boolean;
|
||||
} & {
|
||||
filter: EntityPredicate | undefined;
|
||||
type: 'content' | 'summary' | 'info' | undefined;
|
||||
};
|
||||
configInput: {
|
||||
hideIcons?: boolean | undefined;
|
||||
maxRelations?: number | undefined;
|
||||
} & {
|
||||
filter?: EntityPredicate | undefined;
|
||||
type?: 'content' | 'summary' | 'info' | undefined;
|
||||
};
|
||||
@@ -210,15 +187,7 @@ const _default: OverridableFrontendPlugin<
|
||||
optional: true;
|
||||
}
|
||||
>;
|
||||
inputs: {
|
||||
[x: string]: ExtensionInput<
|
||||
ExtensionDataRef,
|
||||
{
|
||||
singleton: boolean;
|
||||
optional: boolean;
|
||||
}
|
||||
>;
|
||||
};
|
||||
inputs: {};
|
||||
kind: 'entity-card';
|
||||
name: 'user-profile';
|
||||
params: {
|
||||
|
||||
@@ -67,12 +67,10 @@ const _default: OverridableFrontendPlugin<
|
||||
'page:search': OverridableExtensionDefinition<{
|
||||
config: {
|
||||
noTrack: boolean;
|
||||
} & {
|
||||
path: string | undefined;
|
||||
};
|
||||
configInput: {
|
||||
noTrack?: boolean | undefined;
|
||||
} & {
|
||||
path?: string | undefined;
|
||||
};
|
||||
output:
|
||||
@@ -187,12 +185,10 @@ export const searchNavItem: OverridableExtensionDefinition<{
|
||||
export const searchPage: OverridableExtensionDefinition<{
|
||||
config: {
|
||||
noTrack: boolean;
|
||||
} & {
|
||||
path: string | undefined;
|
||||
};
|
||||
configInput: {
|
||||
noTrack?: boolean | undefined;
|
||||
} & {
|
||||
path?: string | undefined;
|
||||
};
|
||||
output:
|
||||
|
||||
@@ -308,7 +308,6 @@ const _default: OverridableFrontendPlugin<
|
||||
lineClamp: number;
|
||||
asLink: boolean;
|
||||
asListItem: boolean;
|
||||
} & {
|
||||
noTrack: boolean;
|
||||
};
|
||||
configInput: {
|
||||
@@ -316,7 +315,6 @@ const _default: OverridableFrontendPlugin<
|
||||
lineClamp?: number | undefined;
|
||||
asListItem?: boolean | undefined;
|
||||
asLink?: boolean | undefined;
|
||||
} & {
|
||||
noTrack?: boolean | undefined;
|
||||
};
|
||||
output: ExtensionDataRef<
|
||||
@@ -328,15 +326,7 @@ const _default: OverridableFrontendPlugin<
|
||||
'search.search-result-list-item.item',
|
||||
{}
|
||||
>;
|
||||
inputs: {
|
||||
[x: string]: ExtensionInput<
|
||||
ExtensionDataRef,
|
||||
{
|
||||
singleton: boolean;
|
||||
optional: boolean;
|
||||
}
|
||||
>;
|
||||
};
|
||||
inputs: {};
|
||||
kind: 'search-result-list-item';
|
||||
name: undefined;
|
||||
params: SearchResultListItemBlueprintParams;
|
||||
@@ -352,7 +342,6 @@ export const techDocsSearchResultListItemExtension: OverridableExtensionDefiniti
|
||||
lineClamp: number;
|
||||
asLink: boolean;
|
||||
asListItem: boolean;
|
||||
} & {
|
||||
noTrack: boolean;
|
||||
};
|
||||
configInput: {
|
||||
@@ -360,7 +349,6 @@ export const techDocsSearchResultListItemExtension: OverridableExtensionDefiniti
|
||||
lineClamp?: number | undefined;
|
||||
asListItem?: boolean | undefined;
|
||||
asLink?: boolean | undefined;
|
||||
} & {
|
||||
noTrack?: boolean | undefined;
|
||||
};
|
||||
output: ExtensionDataRef<
|
||||
@@ -372,15 +360,7 @@ export const techDocsSearchResultListItemExtension: OverridableExtensionDefiniti
|
||||
'search.search-result-list-item.item',
|
||||
{}
|
||||
>;
|
||||
inputs: {
|
||||
[x: string]: ExtensionInput<
|
||||
ExtensionDataRef,
|
||||
{
|
||||
singleton: boolean;
|
||||
optional: boolean;
|
||||
}
|
||||
>;
|
||||
};
|
||||
inputs: {};
|
||||
kind: 'search-result-list-item';
|
||||
name: undefined;
|
||||
params: SearchResultListItemBlueprintParams;
|
||||
|
||||
Reference in New Issue
Block a user