@@ -2,22 +2,34 @@ import { readFileSync } from "fs";
22import { Component , RendererComponent } from "typedoc/dist/lib/output/components" ;
33import { RendererEvent } from "typedoc/dist/lib/output/events" ;
44
5+ import { getCurrentClientDirectory } from "./utils" ;
6+
57/**
68 * Correct the package name in the navigator.
79 */
810@Component ( { name : "SdkClientRenameProject" } )
911export class SdkClientRenameProjectPlugin extends RendererComponent {
12+ private projectName : string | undefined = undefined ;
1013 initialize ( ) {
1114 this . listenTo ( this . owner , {
1215 [ RendererEvent . BEGIN ] : this . onRenderedBegin ,
1316 } ) ;
1417 }
1518
1619 onRenderedBegin ( event : RendererEvent ) {
17- const { fullFileName } = event . project . files . filter ( ( sourceFile ) =>
18- sourceFile . fileName . endsWith ( "/package.json" )
19- ) [ 0 ] ;
20- const { name } = JSON . parse ( readFileSync ( fullFileName ) . toString ( ) ) ;
21- event . project . name = name ;
20+ if ( ! this . projectName ) {
21+ const clientDirectory = getCurrentClientDirectory ( event ) ;
22+ const metadataDir = clientDirectory . files . filter ( ( sourceFile ) =>
23+ sourceFile . fileName . endsWith ( "/package.json" )
24+ ) ?. [ 0 ] ?. fullFileName ;
25+ const { name } = metadataDir || JSON . parse ( readFileSync ( metadataDir ) . toString ( ) ) ;
26+ const serviceIdReflection = clientDirectory . files
27+ ?. filter ( ( sourceFile ) => sourceFile . fileName . endsWith ( "/runtimeConfig.shared.ts" ) ) ?. [ 0 ]
28+ . reflections . filter ( ( reflection ) => reflection . name === "serviceId" ) ?. [ 0 ] ;
29+ this . projectName = serviceIdReflection /* serviceIdReflection.defaultValue looks like '"S3"' */
30+ ? `${ ( serviceIdReflection as any ) . defaultValue . match ( / " ( .* ) " / ) [ 1 ] } Client - AWS SDK for JavaScript v3`
31+ : name ;
32+ }
33+ event . project . name = this . projectName ;
2234 }
2335}
0 commit comments