feat: added input types for the config to the extensions
Signed-off-by: blam <ben@blam.sh>
This commit is contained in:
@@ -70,7 +70,7 @@ function createTestExtension(options: {
|
||||
});
|
||||
}
|
||||
|
||||
function routeInfoFromExtensions(extensions: ExtensionDefinition<unknown>[]) {
|
||||
function routeInfoFromExtensions(extensions: ExtensionDefinition<any, any>[]) {
|
||||
const plugin = createPlugin({
|
||||
id: 'test',
|
||||
extensions,
|
||||
|
||||
@@ -25,7 +25,7 @@ import { instantiateAppNodeTree } from './instantiateAppNodeTree';
|
||||
/** @internal */
|
||||
export interface CreateAppTreeOptions {
|
||||
features: FrontendFeature[];
|
||||
builtinExtensions: Extension<unknown>[];
|
||||
builtinExtensions: Extension<any, any>[];
|
||||
config: Config;
|
||||
}
|
||||
|
||||
|
||||
@@ -59,22 +59,22 @@ const simpleExtension = resolveExtensionDefinition(
|
||||
}),
|
||||
);
|
||||
|
||||
function makeSpec<TConfig>(
|
||||
extension: Extension<TConfig>,
|
||||
function makeSpec<TConfig, TConfigInput>(
|
||||
extension: Extension<TConfig, TConfigInput>,
|
||||
spec?: Partial<AppNodeSpec>,
|
||||
): AppNodeSpec {
|
||||
return {
|
||||
id: extension.id,
|
||||
attachTo: extension.attachTo,
|
||||
disabled: extension.disabled,
|
||||
extension,
|
||||
extension: extension as Extension<unknown, unknown>,
|
||||
source: undefined,
|
||||
...spec,
|
||||
};
|
||||
}
|
||||
|
||||
function makeNode<TConfig>(
|
||||
extension: Extension<TConfig>,
|
||||
function makeNode<TConfig, TConfigInput>(
|
||||
extension: Extension<TConfig, TConfigInput>,
|
||||
spec?: Partial<AppNodeSpec>,
|
||||
): AppNode {
|
||||
return {
|
||||
@@ -85,8 +85,8 @@ function makeNode<TConfig>(
|
||||
};
|
||||
}
|
||||
|
||||
function makeInstanceWithId<TConfig>(
|
||||
extension: Extension<TConfig>,
|
||||
function makeInstanceWithId<TConfig, TConfigInput>(
|
||||
extension: Extension<TConfig, TConfigInput>,
|
||||
config?: TConfig,
|
||||
): AppNode {
|
||||
const node = makeNode(extension, { config });
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { createExtension } from '@backstage/frontend-plugin-api';
|
||||
import { createExtension, Extension } from '@backstage/frontend-plugin-api';
|
||||
import { resolveAppTree } from './resolveAppTree';
|
||||
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
|
||||
import { resolveExtensionDefinition } from '../../../frontend-plugin-api/src/wiring/resolveExtensionDefinition';
|
||||
@@ -26,7 +26,7 @@ const extension = resolveExtensionDefinition(
|
||||
output: {},
|
||||
factory: () => ({}),
|
||||
}),
|
||||
);
|
||||
) as Extension<unknown, unknown>;
|
||||
|
||||
const baseSpec = {
|
||||
extension,
|
||||
|
||||
Reference in New Issue
Block a user