frontend-*-api: better error when factories return invalid data

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2025-08-07 00:18:20 +02:00
parent 85af229b00
commit 1c2cc37a70
9 changed files with 159 additions and 1 deletions
@@ -26,8 +26,13 @@ export function createExtensionDataContainer<UData extends ExtensionDataRef>(
? ExtensionDataValue<IData, IId>
: never
>,
contextName: string,
declaredRefs?: ExtensionDataRef<any, any, any>[],
): ExtensionDataContainer<UData> {
if (typeof values !== 'object' || !values?.[Symbol.iterator]) {
throw new Error(`${contextName} did not provide an iterable object`);
}
const container = new Map<string, ExtensionDataValue<any, any>>();
const verifyRefs =
declaredRefs && new Map(declaredRefs.map(ref => [ref.id, ref]));