@@ -76,13 +76,23 @@ export default class Tag {
76
76
Offset : offset ,
77
77
TagKeys : tagKeys ,
78
78
} ) ;
79
- if ( TotalCount > limit ) {
79
+ if ( Tags . length > 0 && TotalCount > limit ) {
80
80
return Tags . concat ( await this . getTagList ( tagKeys , offset + limit , limit ) ) ;
81
81
}
82
82
83
83
return Tags ;
84
84
}
85
85
86
+ async getTag ( tag : TagData ) {
87
+ const { Tags } = await this . request ( {
88
+ Action : 'DescribeTags' ,
89
+ TagKey : tag . TagKey ,
90
+ TagValue : tag . TagValue ,
91
+ } ) ;
92
+
93
+ return Tags [ 0 ] ;
94
+ }
95
+
86
96
isTagExist ( tag : TagData , tagList : TagData [ ] = [ ] ) {
87
97
const [ exist ] = tagList . filter (
88
98
( item ) => item . TagKey === tag . TagKey && String ( item . TagValue ) === String ( tag . TagValue ) ,
@@ -109,12 +119,9 @@ export default class Tag {
109
119
ResourcePrefix : resourcePrefix ,
110
120
} ;
111
121
if ( tags && tags . length > 0 ) {
112
- const tagKeys = tags . map ( ( item ) => item . TagKey ) ;
113
- const tagList = await this . getTagList ( tagKeys ) ;
114
-
115
122
for ( let i = 0 ; i < tags . length ; i ++ ) {
116
123
const currentTag = tags [ i ] ;
117
- const tagExist = await this . isTagExist ( currentTag , tagList ) ;
124
+ const tagExist = await this . getTag ( currentTag ) ;
118
125
119
126
// if tag not exsit, create it
120
127
if ( ! tagExist ) {
0 commit comments