@@ -546,7 +546,11 @@ export class CodeModelBuilder {
546546 }
547547
548548 codeModelClient . apiVersions = [ ] ;
549- for ( const version of this . getFilteredApiVersions ( this . apiVersion , versioning . getVersions ( ) ) ) {
549+ for ( const version of this . getFilteredApiVersions (
550+ this . apiVersion ,
551+ versioning . getVersions ( ) ,
552+ this . options [ "service-version-exclude-preview" ] ,
553+ ) ) {
550554 const apiVersion = new ApiVersion ( ) ;
551555 apiVersion . version = version . value ;
552556 codeModelClient . apiVersions . push ( apiVersion ) ;
@@ -645,19 +649,23 @@ export class CodeModelBuilder {
645649
646650 /**
647651 * Filter api-versions for "ServiceVersion".
648- * TODO(xiaofei) pending TCGC design: https://github.com/Azure/typespec-azure/issues/746
652+ * TODO(xiaofei) pending TCGC design: https://github.com/Azure/typespec-azure/issues/965
649653 *
650654 * @param pinnedApiVersion the api-version to use as filter base
651655 * @param versions api-versions to filter
652656 * @returns filtered api-versions
653657 */
654- private getFilteredApiVersions ( pinnedApiVersion : Version | undefined , versions : Version [ ] ) : Version [ ] {
658+ private getFilteredApiVersions (
659+ pinnedApiVersion : Version | undefined ,
660+ versions : Version [ ] ,
661+ excludePreview : boolean = false ,
662+ ) : Version [ ] {
655663 if ( ! pinnedApiVersion ) {
656664 return versions ;
657665 }
658666 return versions
659667 . slice ( 0 , versions . indexOf ( pinnedApiVersion ) + 1 )
660- . filter ( ( version ) => ! isStable ( pinnedApiVersion ) || isStable ( version ) ) ;
668+ . filter ( ( version ) => ! excludePreview || ! isStable ( pinnedApiVersion ) || isStable ( version ) ) ;
661669 }
662670
663671 /**
0 commit comments