From bfea80d19f8f6be31767f7459335b6e781d80b28 Mon Sep 17 00:00:00 2001 From: Andrew Scott Date: Wed, 1 Jun 2022 12:46:03 -0700 Subject: [PATCH] refactor(router): Simplify location strategy providers (#46215) Rather than using a `provideLocationStrategy` function, the `useHash` can simply provide one strategy or another. The current factory function does not change how the dependencies are used. PR Close #46215 --- packages/router/src/router_module.ts | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/packages/router/src/router_module.ts b/packages/router/src/router_module.ts index 5935bf6ba21..85dcd4c3026 100644 --- a/packages/router/src/router_module.ts +++ b/packages/router/src/router_module.ts @@ -136,12 +136,7 @@ export class RouterModule { deps: [[Router, new Optional(), new SkipSelf()]] }, {provide: ROUTER_CONFIGURATION, useValue: config ? config : {}}, - { - provide: LocationStrategy, - useFactory: provideLocationStrategy, - deps: - [PlatformLocation, [new Inject(APP_BASE_HREF), new Optional()], ROUTER_CONFIGURATION] - }, + config?.useHash ? provideHashLocationStrategy() : providePathLocationStrategy(), { provide: RouterScroller, useFactory: createRouterScroller, @@ -187,10 +182,12 @@ export function createRouterScroller( return new RouterScroller(router, viewportScroller, config); } -export function provideLocationStrategy( - platformLocationStrategy: PlatformLocation, baseHref: string, options: ExtraOptions = {}) { - return options.useHash ? new HashLocationStrategy(platformLocationStrategy, baseHref) : - new PathLocationStrategy(platformLocationStrategy, baseHref); +function provideHashLocationStrategy(): Provider { + return {provide: LocationStrategy, useClass: HashLocationStrategy}; +} + +function providePathLocationStrategy(): Provider { + return {provide: LocationStrategy, useClass: PathLocationStrategy}; } export function provideForRootGuard(router: Router): any {