chore: added a replaces option to the extensionInput wrapper
Signed-off-by: blam <ben@blam.sh>
This commit is contained in:
@@ -28,7 +28,9 @@ export const Root = createExtension({
|
||||
app: createExtensionInput([coreExtensionData.reactElement], {
|
||||
singleton: true,
|
||||
}),
|
||||
apis: createExtensionInput([ApiBlueprint.dataRefs.factory]),
|
||||
apis: createExtensionInput([ApiBlueprint.dataRefs.factory], {
|
||||
replaces: [{ id: 'app', input: 'apis' }],
|
||||
}),
|
||||
},
|
||||
output: [],
|
||||
factory: () => [],
|
||||
|
||||
@@ -18,12 +18,13 @@ import { ExtensionDataRef } from './createExtensionDataRef';
|
||||
|
||||
/** @public */
|
||||
export interface ExtensionInput<
|
||||
TExtensionData extends ExtensionDataRef<unknown, string, { optional?: true }>,
|
||||
UExtensionData extends ExtensionDataRef<unknown, string, { optional?: true }>,
|
||||
TConfig extends { singleton: boolean; optional: boolean },
|
||||
> {
|
||||
$$type: '@backstage/ExtensionInput';
|
||||
extensionData: Array<TExtensionData>;
|
||||
extensionData: Array<UExtensionData>;
|
||||
config: TConfig;
|
||||
replaces?: Array<{ id: string; input: string }>;
|
||||
}
|
||||
|
||||
/** @public */
|
||||
@@ -32,7 +33,7 @@ export function createExtensionInput<
|
||||
TConfig extends { singleton?: boolean; optional?: boolean },
|
||||
>(
|
||||
extensionData: Array<UExtensionData>,
|
||||
config?: TConfig,
|
||||
config?: TConfig & { replaces?: Array<{ id: string; input: string }> },
|
||||
): ExtensionInput<
|
||||
UExtensionData,
|
||||
{
|
||||
@@ -71,6 +72,7 @@ export function createExtensionInput<
|
||||
? true
|
||||
: false,
|
||||
},
|
||||
replaces: config?.replaces,
|
||||
} as ExtensionInput<
|
||||
UExtensionData,
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user