45 lines
1.6 KiB
TypeScript
45 lines
1.6 KiB
TypeScript
import { HttpRequest, provideHttpClient, withFetch, withInterceptors } from '@angular/common/http';
|
|
import {
|
|
ApplicationConfig,
|
|
provideAppInitializer,
|
|
provideBrowserGlobalErrorListeners,
|
|
} from '@angular/core';
|
|
import { provideRouter, UrlSerializer } from '@angular/router';
|
|
import { provideClientHydration, withHttpTransferCacheOptions } from '@angular/platform-browser';
|
|
|
|
import { routes } from './app.routes';
|
|
import { authBootstrap } from './core/services/auth/auth-bootstrap';
|
|
import { authInterceptor } from './core/services/auth/auth.interceptor';
|
|
import { globalLoadingInterceptor } from './core/services/global-loading/global-loading.interceptor';
|
|
import { tenantBootstrap } from './core/services/tenant-bootstrap';
|
|
import { TenantUrlSerializer } from './core/services/tenant-url.serializer';
|
|
|
|
export function isStoreCatalogRequest(request: HttpRequest<unknown>): boolean {
|
|
return (
|
|
request.method === 'GET' &&
|
|
/\/api\/tenants\/[^/?#]+\/(?:catalog(?:\/featured-groups\/\d+\/items)?|catalog-items(?:\/\d+)?)\/?(?:[?#]|$)/.test(
|
|
request.urlWithParams,
|
|
)
|
|
);
|
|
}
|
|
|
|
export const appConfig: ApplicationConfig = {
|
|
providers: [
|
|
provideBrowserGlobalErrorListeners(),
|
|
provideRouter(routes),
|
|
{ provide: UrlSerializer, useClass: TenantUrlSerializer },
|
|
provideClientHydration(
|
|
withHttpTransferCacheOptions({
|
|
includeRequestsWithAuthHeaders: true,
|
|
filter: isStoreCatalogRequest,
|
|
}),
|
|
),
|
|
provideHttpClient(
|
|
withFetch(),
|
|
withInterceptors([authInterceptor, globalLoadingInterceptor])
|
|
),
|
|
provideAppInitializer(authBootstrap),
|
|
provideAppInitializer(tenantBootstrap),
|
|
],
|
|
};
|