refactor(ivy): create lazy route keys that are similar to ngtools lazy routes (#28542)
This will make it easier to retrieve routes for specific entry points in `listLazyRoutes()` (which is necessary for CLI integration but not yet implemented). PR Close #28542
This commit is contained in:
parent
5db3a6b198
commit
f358188ec1
|
@ -12,7 +12,7 @@ import {ModuleResolver} from '../../imports';
|
|||
import {PartialEvaluator} from '../../partial_evaluator';
|
||||
|
||||
import {scanForRouteEntryPoints} from './lazy';
|
||||
import {RouterEntryPointManager} from './route';
|
||||
import {RouterEntryPointManager, entryPointKeyFor} from './route';
|
||||
|
||||
export interface NgModuleRawRouteData {
|
||||
sourceFile: ts.SourceFile;
|
||||
|
@ -38,9 +38,9 @@ export class NgModuleRouteAnalyzer {
|
|||
|
||||
add(sourceFile: ts.SourceFile, moduleName: string, imports: ts.Expression|null,
|
||||
exports: ts.Expression|null, providers: ts.Expression|null): void {
|
||||
const key = `${sourceFile.fileName}#${moduleName}`;
|
||||
const key = entryPointKeyFor(sourceFile.fileName, moduleName);
|
||||
if (this.modules.has(key)) {
|
||||
throw new Error(`Double route analyzing ${key}`);
|
||||
throw new Error(`Double route analyzing for '${key}'.`);
|
||||
}
|
||||
this.modules.set(
|
||||
key, {
|
||||
|
|
|
@ -47,11 +47,15 @@ export class RouterEntryPointManager {
|
|||
}
|
||||
|
||||
fromNgModule(sf: ts.SourceFile, moduleName: string): RouterEntryPoint {
|
||||
const absoluteFile = sf.fileName;
|
||||
const key = `${absoluteFile}#${moduleName}`;
|
||||
const key = entryPointKeyFor(sf.fileName, moduleName);
|
||||
if (!this.map.has(key)) {
|
||||
this.map.set(key, new RouterEntryPointImpl(absoluteFile, moduleName));
|
||||
this.map.set(key, new RouterEntryPointImpl(sf.fileName, moduleName));
|
||||
}
|
||||
return this.map.get(key) !;
|
||||
}
|
||||
}
|
||||
|
||||
export function entryPointKeyFor(filePath: string, moduleName: string): string {
|
||||
// Drop the extension to be compatible with how cli calls `listLazyRoutes(entryRoute)`.
|
||||
return `${filePath.replace(/\.tsx?$/i, '')}#${moduleName}`;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue