@@ -53,6 +53,7 @@ const argv = options({
5353 demandOption : true ,
5454 } ,
5555 skip : { type : "string" } ,
56+ only : { type : "string" } ,
5657} ) . argv ;
5758
5859const extractRequests = async (
@@ -122,16 +123,16 @@ const executeJSONRequest = async (
122123const xmlInsertRegionTags = ( destination : string , regionTag : string ) => {
123124 const contents = readFileSync ( destination , "utf8" ) ;
124125
125- const lines = contents . split ( "\n" ) . filter ( value => value !== "" ) ;
126+ const lines = contents . split ( "\n" ) . filter ( ( value ) => value !== "" ) ;
126127 lines . splice ( 1 , 0 , `<!-- [START ${ regionTag } ] -->` ) ;
127128 lines . push ( `<!-- [END ${ regionTag } ] -->` ) ;
128- lines . push ( '' ) ;
129+ lines . push ( "" ) ;
129130 writeFileSync ( destination , lines . join ( "\n" ) ) ;
130131} ;
131132
132133const response = async ( output , regionTag , request , xml = false ) => {
133134 regionTag += "_response" ;
134- console . log ( `Generating response for: ${ regionTag } ` ) ;
135+ console . log ( `Generating response for: ${ regionTag } , format: ${ xml ? "xml" : "json" } ` ) ;
135136
136137 const captureError = / e r r o r / i. test ( regionTag ) ;
137138 const captureInvalid = / i n v a l i d / i. test ( regionTag ) ;
@@ -175,7 +176,7 @@ const response = async (output, regionTag, request, xml = false) => {
175176 try {
176177 unlinkSync ( destination ) ;
177178 } catch ( e ) { }
178-
179+
179180 const writeStream = createWriteStream ( destination ) ;
180181 response . data . pipe ( writeStream ) ;
181182
@@ -212,12 +213,29 @@ const response = async (output, regionTag, request, xml = false) => {
212213 )
213214 ) ;
214215} ;
216+ const toArray = ( value : string | string [ ] ) : string [ ] => {
217+ return Array . isArray ( value ) ? value : [ value ] ;
218+ } ;
215219
216220const main = async ( argv : any ) => {
217- for ( let [ regionTag , request ] of Object . entries (
218- await extractRequests ( argv . archive )
219- ) ) {
220- if ( argv . skip . indexOf ( regionTag ) != - 1 ) continue ;
221+ const skip = toArray ( argv . skip ?? [ ] ) ;
222+ const only = toArray ( argv . only ?? [ ] ) ;
223+
224+ const requests = Object . entries ( await extractRequests ( argv . archive ) ) . filter (
225+ ( [ regionTag ] ) => {
226+ if ( skip . length && skip . indexOf ( regionTag ) !== - 1 ) {
227+ return false ;
228+ }
229+
230+ if ( only . length && only . indexOf ( regionTag ) === - 1 ) {
231+ return false ;
232+ }
233+ console . log ( regionTag ) ;
234+ return true ;
235+ }
236+ ) ;
237+
238+ for ( let [ regionTag , request ] of requests ) {
221239 await response ( argv . output , regionTag , request , false ) ;
222240
223241 if ( request . match ( / \/ j s o n \? / g) ) {
0 commit comments