frontend-plugin-api: make output type parameter optional
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
@@ -919,7 +919,7 @@ export interface ExtensionBlueprint<
|
||||
config?: T['config'];
|
||||
inputs?: ResolveInputValueOverrides<NonNullable<T['inputs']>>;
|
||||
},
|
||||
) => ExtensionDataContainer<T['output']>,
|
||||
) => ExtensionDataContainer<NonNullable<T['output']>>,
|
||||
context: {
|
||||
node: AppNode;
|
||||
apis: ApiHolder;
|
||||
@@ -932,7 +932,9 @@ export interface ExtensionBlueprint<
|
||||
},
|
||||
): Iterable<UFactoryOutput> &
|
||||
VerifyExtensionFactoryOutput<
|
||||
AnyExtensionDataRef extends UNewOutput ? T['output'] : UNewOutput,
|
||||
AnyExtensionDataRef extends UNewOutput
|
||||
? NonNullable<T['output']>
|
||||
: UNewOutput,
|
||||
UFactoryOutput
|
||||
>;
|
||||
}): ExtensionDefinition<{
|
||||
@@ -969,14 +971,14 @@ export type ExtensionBlueprintParameters = {
|
||||
kind: string;
|
||||
namespace?: string;
|
||||
name?: string;
|
||||
params: object;
|
||||
params?: object;
|
||||
configInput?: {
|
||||
[K in string]: any;
|
||||
};
|
||||
config?: {
|
||||
[K in string]: any;
|
||||
};
|
||||
output: AnyExtensionDataRef;
|
||||
output?: AnyExtensionDataRef;
|
||||
inputs?: {
|
||||
[KName in string]: ExtensionInput<
|
||||
AnyExtensionDataRef,
|
||||
@@ -1157,7 +1159,7 @@ export type ExtensionDefinitionParameters = {
|
||||
config?: {
|
||||
[K in string]: any;
|
||||
};
|
||||
output: AnyExtensionDataRef;
|
||||
output?: AnyExtensionDataRef;
|
||||
inputs?: {
|
||||
[KName in string]: ExtensionInput<
|
||||
AnyExtensionDataRef,
|
||||
|
||||
@@ -148,7 +148,7 @@ export type ExtensionDefinitionParameters = {
|
||||
name?: string;
|
||||
configInput?: { [K in string]: any };
|
||||
config?: { [K in string]: any };
|
||||
output: AnyExtensionDataRef;
|
||||
output?: AnyExtensionDataRef;
|
||||
inputs?: {
|
||||
[KName in string]: ExtensionInput<
|
||||
AnyExtensionDataRef,
|
||||
|
||||
@@ -86,10 +86,10 @@ export type ExtensionBlueprintParameters = {
|
||||
kind: string;
|
||||
namespace?: string;
|
||||
name?: string;
|
||||
params: object;
|
||||
params?: object;
|
||||
configInput?: { [K in string]: any };
|
||||
config?: { [K in string]: any };
|
||||
output: AnyExtensionDataRef;
|
||||
output?: AnyExtensionDataRef;
|
||||
inputs?: {
|
||||
[KName in string]: ExtensionInput<
|
||||
AnyExtensionDataRef,
|
||||
@@ -171,7 +171,7 @@ export interface ExtensionBlueprint<
|
||||
config?: T['config'];
|
||||
inputs?: ResolveInputValueOverrides<NonNullable<T['inputs']>>;
|
||||
},
|
||||
) => ExtensionDataContainer<T['output']>,
|
||||
) => ExtensionDataContainer<NonNullable<T['output']>>,
|
||||
context: {
|
||||
node: AppNode;
|
||||
apis: ApiHolder;
|
||||
@@ -184,7 +184,9 @@ export interface ExtensionBlueprint<
|
||||
},
|
||||
): Iterable<UFactoryOutput> &
|
||||
VerifyExtensionFactoryOutput<
|
||||
AnyExtensionDataRef extends UNewOutput ? T['output'] : UNewOutput,
|
||||
AnyExtensionDataRef extends UNewOutput
|
||||
? NonNullable<T['output']>
|
||||
: UNewOutput,
|
||||
UFactoryOutput
|
||||
>;
|
||||
}): ExtensionDefinition<{
|
||||
|
||||
@@ -116,7 +116,6 @@ export type ResolveExtensionId<
|
||||
kind: infer IKind extends string | undefined;
|
||||
namespace: infer INamespace extends string | undefined;
|
||||
name: infer IName extends string | undefined;
|
||||
output: any;
|
||||
}>
|
||||
? [string | undefined] extends [IKind | INamespace | IName]
|
||||
? never
|
||||
|
||||
@@ -37,7 +37,7 @@ export function createExtensionTester<T extends ExtensionDefinitionParameters>(
|
||||
options?: {
|
||||
config?: T['configInput'];
|
||||
},
|
||||
): ExtensionTester<T['output']>;
|
||||
): ExtensionTester<NonNullable<T['output']>>;
|
||||
|
||||
export { ErrorWithContext };
|
||||
|
||||
@@ -78,7 +78,7 @@ export class ExtensionTester<UOutput extends AnyExtensionDataRef> {
|
||||
// (undocumented)
|
||||
query<T extends ExtensionDefinitionParameters>(
|
||||
extension: ExtensionDefinition<T>,
|
||||
): ExtensionQuery<T['output']>;
|
||||
): ExtensionQuery<NonNullable<T['output']>>;
|
||||
// (undocumented)
|
||||
reactElement(): JSX.Element;
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ export class ExtensionTester<UOutput extends AnyExtensionDataRef> {
|
||||
static forSubject<T extends ExtensionDefinitionParameters>(
|
||||
subject: ExtensionDefinition<T>,
|
||||
options?: { config?: T['configInput'] },
|
||||
): ExtensionTester<T['output']> {
|
||||
): ExtensionTester<NonNullable<T['output']>> {
|
||||
const tester = new ExtensionTester();
|
||||
tester.add(subject, options as T['configInput'] & {});
|
||||
return tester;
|
||||
@@ -137,7 +137,7 @@ export class ExtensionTester<UOutput extends AnyExtensionDataRef> {
|
||||
|
||||
query<T extends ExtensionDefinitionParameters>(
|
||||
extension: ExtensionDefinition<T>,
|
||||
): ExtensionQuery<T['output']> {
|
||||
): ExtensionQuery<NonNullable<T['output']>> {
|
||||
const tree = this.#resolveTree();
|
||||
|
||||
const actualId = this.#extensions.find(e => e.definition === extension)?.id;
|
||||
@@ -240,6 +240,6 @@ export class ExtensionTester<UOutput extends AnyExtensionDataRef> {
|
||||
export function createExtensionTester<T extends ExtensionDefinitionParameters>(
|
||||
subject: ExtensionDefinition<T>,
|
||||
options?: { config?: T['configInput'] },
|
||||
): ExtensionTester<T['output']> {
|
||||
): ExtensionTester<NonNullable<T['output']>> {
|
||||
return ExtensionTester.forSubject(subject, options);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user