frontend-plugin-api: clean up output verification

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2024-08-06 17:32:28 +02:00
parent 51a4ef638b
commit 2212c3ef08
@@ -158,9 +158,7 @@ export interface LegacyCreateExtensionOptions<
/** @ignore */
export type VerifyExtensionFactoryOutput<
UDeclaredOutput extends AnyExtensionDataRef,
UFactoryOutput extends
| ExtensionDataValue<any, any>
| ExtensionDataContainer<any>,
UFactoryOutput extends ExtensionDataValue<any, any>,
> = (
UDeclaredOutput extends any
? UDeclaredOutput['config']['optional'] extends true
@@ -168,29 +166,21 @@ export type VerifyExtensionFactoryOutput<
: UDeclaredOutput['id']
: never
) extends infer IRequiredOutputIds
? (
UFactoryOutput extends ExtensionDataValue<any, any>
? UFactoryOutput['id']
: UFactoryOutput extends ExtensionDataContainer<infer IDataRefs>
? IDataRefs['id']
: never
) extends infer IFactoryOutputIds
? [IRequiredOutputIds] extends [IFactoryOutputIds]
? [IFactoryOutputIds] extends [UDeclaredOutput['id']]
? {}
: {
'Error: The extension factory has undeclared output(s)': Exclude<
IFactoryOutputIds,
UDeclaredOutput['id']
>;
}
? [IRequiredOutputIds] extends [UFactoryOutput['id']]
? [UFactoryOutput['id']] extends [UDeclaredOutput['id']]
? {}
: {
'Error: The extension factory is missing the following output(s)': Exclude<
IRequiredOutputIds,
IFactoryOutputIds
'Error: The extension factory has undeclared output(s)': Exclude<
UFactoryOutput['id'],
UDeclaredOutput['id']
>;
}
: never
: {
'Error: The extension factory is missing the following output(s)': Exclude<
IRequiredOutputIds,
UFactoryOutput['id']
>;
}
: never;
/** @public */