fix(frontend-app-api): fix apis overriding

Signed-off-by: Camila Belo <camilaibs@gmail.com>
This commit is contained in:
Camila Belo
2023-12-11 10:10:14 +01:00
parent 4158ef3301
commit bef798ae72
@@ -388,7 +388,14 @@ function createApiHolder(
(x): x is typeof createTranslationExtension.translationDataRef.T => !!x,
) ?? [];
const apis = new Map<string, AnyApiFactory>();
// removing duplicates by id, overriding the default one with the plugin one
for (const factory of [...defaultApis, ...pluginApis]) {
apis.set(factory.api.id, factory);
}
for (const factory of apis.values()) {
factoryRegistry.register('default', factory);
}
@@ -466,15 +473,6 @@ function createApiHolder(
}),
});
// TODO: ship these as default extensions instead
for (const factory of defaultApis as AnyApiFactory[]) {
if (!factoryRegistry.register('app', factory)) {
throw new Error(
`Duplicate or forbidden API factory for ${factory.api} in app`,
);
}
}
ApiResolver.validateFactories(factoryRegistry, factoryRegistry.getAllApis());
return new ApiResolver(factoryRegistry);