fix(frontend-app-api): fix apis overriding
Signed-off-by: Camila Belo <camilaibs@gmail.com>
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user