arch(sprint1): add runtime provider selection strategy

This commit is contained in:
sdarbinyan
2026-07-03 02:08:51 +04:00
parent 8d47920fa3
commit 6dfe1291ae
3 changed files with 55 additions and 2 deletions

View File

@@ -1,8 +1,23 @@
import { InjectionToken, inject } from '@angular/core';
import { ConfigProvider } from './config-provider.interface';
import { MockBootstrapProvider } from '../bootstrap/providers/mock-bootstrap.provider';
import { ApiBootstrapProvider } from '../bootstrap/providers/api-bootstrap.provider';
import { RuntimeProviderStrategyService } from '../providers/runtime-provider-strategy.service';
export const CONFIG_PROVIDER = new InjectionToken<ConfigProvider>('CONFIG_PROVIDER', {
providedIn: 'root',
factory: () => inject(MockBootstrapProvider)
factory: () => {
const strategy = inject(RuntimeProviderStrategyService);
const mockProvider = inject(MockBootstrapProvider);
const apiProvider = inject(ApiBootstrapProvider);
switch (strategy.getBootstrapProviderMode()) {
case 'mock':
return mockProvider;
case 'remote-config':
case 'api':
default:
return apiProvider;
}
}
});